手把手教您藉助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中文社區網站

在這裏插入圖片描述

相關文章
相關標籤/搜索