手把手教您借助GPCC查看表的分布和分区策略

Greenplum是一个大规模并行处理数据库,由一个master和多个segment组成。在以前推送的文章《Greenplum数据分布和分区策略》中,咱们介绍了在Greenplum上,数据是按照什么样的分布策略分布于各个segment上。数据库

既然表的这些分布和分区策略如此重要,您可能会问:咱们如何监控这些状况,以及及早发现异常。Greenplum Command Cente(GPCC)能够很好的解决这个问题,今天咱们将为您详细解答。app

在最新的GPCC中, 您能够轻松查看表的分布和分区策略。dom

为了有更深刻的理解,让咱们来看一个例子。网站

首先,让咱们建立一个表:spa

CREATE TABLE sales1 (trans_id int, date date, amount decimal(9,2), region text) 
DISTRIBUTED BY (trans_id)
PARTITION BY RANGE (date)
SUBPARTITION BY LIST (region)
SUBPARTITION TEMPLATE
( SUBPARTITION usa VALUES ('usa'), 
SUBPARTITION asia VALUES ('asia'), 
SUBPARTITION europe VALUES ('europe'), 
DEFAULT SUBPARTITION other_regions)
( START (date '2011-01-01') INCLUSIVE
END (date '2012-01-01') EXCLUSIVE
  EVERY (INTERVAL '1 month'), 
  DEFAULT PARTITION outlying_dates );

分布策略

在GPCC的table详情页上,“Distributed By” 字段表示其分布策略,若是采用了哈希分布策略,则分布键将显示在括号中。3d

固然, 您也可能遇到显示“Randomly”或 “Replicated”的状况。code

在这里插入图片描述

分区

上图中的Partitions字段显示table有多少个分区(包括全部级别的分区)。blog

要查看其全部分区表,您能够单击 “Show” 连接,分区信息将从页面右侧飞出。 排序

介绍图片

到目前为止,最多只显示100个分区表。(之后会显示更多分区)

默认状况下,分区表按建立时间排列。由于咱们认为您可能更关心最新建立的分区。

具体来讲,下图中的第一行的“sales_1_prt_13_2_prt_other_regions”表是最新建立的,其次是 “sales_1_prt_13_2_prt_europe”,“sales_1_prt_13_2_prt_asia” 和 “ sales_1_prt_13_2_prt_usa” 表,第四行是在更早以前建立 “sales_1_prt_13”表。

你是否注意到 ,有些行的背景颜色与其它行有所不一样?

是的,为了清楚起见,咱们将叶子分区表(再也不切分为更小分区的表)的背景设置为白色,而其余非叶子表则设置为灰色,以便轻松区分它们。

只有叶子分区保存实际数据,所以非叶子分区将没有“Table Size”。

在这里插入图片描述

分区标准(Criteria)

上图的“Partition criteria”列告诉咱们分区数据是如何存储的。

若是在这个列中有好几行,那靠上的行是此分区的祖先分区的criteria。

例如, sales_1_prt_13_2_prt_europe 表:

  • date = [2011-12-01,2012-01-01)

首先经过“date”列进行分区(分区类型为RANGE),范围从2011-12-01(包含)到2012 -01-01(不包含),这个是其父分区表(sales_1_prt_13) 的criteria;

  • region = europe

而后按“region”列进行分区(分区类型为LIST),若是某行数据的region字段为2011-12-04,而region为Europe,则它属于此表 sales_1_prt_13_2_prt_europe。

有两点要注意:

  • date = [2011-12-01,2012-01-01)

“ [”表示包含,“)”表示不包含,与数学开/闭区间概念很是类似。

  • region = DEFAULT

若是您看到加粗的 DEFAULT 单词, 则表示此分区表是默认分区。

存储和压缩

如今让咱们看一下“Storage”(存储)和“Compression”(压缩):

存储能够是如下几种中的一种:

  • AO
  • AO/CO
  • Heap
  • Virtual
  • External

当表的存储类型为AO或AO/CO,咱们称这个表是“appendonly”的。

只有当一个表是appendonly的,才可能有blocksize和compression。

在这里插入图片描述

compression列如上图所示,格式为:
type = <压缩类型>
level = <压缩级别>

按分区表的大小排序

您可能没有注意到:您能够按分区表的大小排序!

只需单击“Table Size”列标题,您就会发现这个功能。

咱们认为您可能须要按分区表的大小排序,排序后才会更容易的找到太大的或根本没有使用过的分区。才能进一步采起相应措施,例如拆分大的分区。;)

欢迎下载最新的GPCC,并进行更多探索!

若是您对如何在GPCC中展现数据有很好的想法,请发送电子邮件至gpcc@pivotal.io

得到更多关于Greenpum的技术干货,请访问Greenplum中文社区网站

在这里插入图片描述

相关文章
相关标签/搜索