命令說明
Partition Table,也叫分區表。父表按分區鍵(Partition Key)的值劃分為不同的子表,子表對外可見。下文無特殊說明的父表和子表皆指分區父表和子表。
分區表在使用時,需要提前建立子表。create partition table
命令被用於建立分區表。也可以使用動態分區表管理功能自動建立分區子表。
分區表的不同分區子表採用不同的檔案儲存體,查詢時帶上分區條件,指定所需查詢的分區,避免全表掃描,快速定位隱藏檔,提高處理效率。通常將事實表按照日期劃分為不同的分區。分區表的任何一個子表在中繼資料存放區上等同於一個非分區表,因此分區多會造成一定程度的中繼資料膨脹,以及小檔案片段。
如果您的資料來源於資料庫,不建議使用分區表。過多的分區會引起額外的IO資源浪費,為改善此問題並實現索引過濾加速查詢的效果,您可以將常用分區條件作為segment_key。
查看所有分區子表
您可以通過如下兩種方法查看當前分區父表下所有的分區子表:
分區子表和父資料表條件約束一覽表
分區子表在綁定父表時,其約束關係如下表所示。其中:
與父表保持一致:即對應的屬性分區子表必須和父表保持一致,若不一致,在分區子表綁定(ATTACH)父表時會報錯,需要重新建立分區子表。
不要求與父表一致:即對應的屬性分區子表可以與父表不一致,如果子表沒有顯式指定屬性,則會繼承父表的屬性,若是子表顯式指定屬性,則會保留子表的屬性。
索引列必須包含父表的索引列:即分區子表的索引列必須包含父表的索引列,還能顯式再指定其他列。
分類 | 表屬性 | 描述 | create table partition of 時是否繼承父表屬性 | ATTACH時與父表的約束關係 |
分類 | 表屬性 | 描述 | create table partition of 時是否繼承父表屬性 | ATTACH時與父表的約束關係 |
表屬性 | orientation | 表格儲存體格式。 | 繼承 | 與父表保持一致。 |
table_group | Table Group屬性包含Shard Count。 | 繼承 | 與父表保持一致。 |
time_to_live_in_seconds | 表資料生命週期。 | 繼承 | 不要求與父表一致。 子表屬性未賦值,繼承父表屬性。 子表屬性已賦值,保留子表屬性。
|
索引 | primary key | 主鍵。 | 繼承 | 與父表保持一致。 |
distribution_key | 分布鍵。 | 繼承 | 與父表保持一致。 |
clustering_key | 聚簇索引。 | 繼承 | 與父表保持一致。 |
event_time_column | 分段鍵。 | 繼承 | 與父表保持一致。 |
bitmap_columns | 位元編碼。 | 繼承 | 不要求與父表一致。 |
dictionary_encoding_columns | 欄位編碼。 | 繼承 | 不要求與父表一致。 |
binlog_level | 是否開啟Binlog。 | 繼承 | 與父表保持一致。 |
proxima_vectors | 向量檢索索引。 | 繼承 | 與父表保持一致。 |
列約束 | nullable | 非空約束。 | 繼承 | 與父表保持一致。 |
default value | 預設值。 | 繼承 | 與父表保持一致。 |