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

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

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

为了有更深入的理解,让我们来看一个例子。

首先,让我们创建一个表:

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” 字段表示其分布策略,如果采用了哈希分布策略,则分布键将显示在括号中。

当然, 您也可能遇到显示“Randomly”或 “Replicated”的情况。

在这里插入图片描述

分区

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

要查看其所有分区表,您可以单击 “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中文社区网站

在这里插入图片描述


Greenplum
156 声望69 粉丝

Greenplum 是全球领先的开源、多云大数据分析平台,被广泛运用于大规模商业智能和分析中,具有极高的稳定性。