Hologres相容PostgreSQL,支援您設定資料庫和表的屬性。
函數 | 功能 |
用於設定資料庫的Table Group和Shard Count屬性。 | |
用於設定表的屬性,包括索引、分布列、行儲存、列儲存以及生命週期等屬性。 |
HG_UPDATE_DATABASE_PROPERTY
描述:用於設定資料庫的Table Group和Shard Count屬性。
CALL HG_UPDATE_DATABASE_PROPERTY ('property', 'value');使用限制
僅執行個體的Superuser和資料庫的Owner可以調用
HG_UPDATE_DATABASE_PROPERTY函數。參數說明
property:屬性名稱。當前僅支援default_table_group和shard_count兩個屬性,屬性說明如下:
default_table_group:設定某個Table Group為預設Table Group。
說明僅Hologres V0.10及以上版本支援使用此參數。如果您的執行個體是V0.10以下版本,您可以進行執行個體升級或加入HologresDingTalk交流群反饋,詳情請參見如何擷取更多的線上支援?。
shard_count:設定預設Table Group的Shard Count(不建議使用)。
value:屬性值。
樣本
設定預設Table Group為
TG120的Table Group,語句如下。CALL HG_UPDATE_DATABASE_PROPERTY ( 'default_table_group', 'TG120' );
SET_TABLE_PROPERTY
描述:用於設定表的屬性,包括索引、分布列、行儲存、列儲存以及生命週期等屬性。
CALL SET_TABLE_PROPERTY ('table_name', 'property', 'value') WHERE PROPERTY IN orientation clustering_key segment_key bitmap_columns dictionary_encoding_columns time_to_live_in_seconds distribution_key說明如果您需要對建立的表進行修改、更新和刪除,具體操作請參見ALTER TABLE或DROP TABLE。
參數說明
參數
描述
table_name
表名稱。您也可以使用Schema限定表名稱。
說明表名稱只能是小寫英文字母
a~z、大寫英文字母A~Z、數字以及底線(_)的組合,並且以字母開頭。如果表名稱有特殊字元,則需要使用雙引號
""轉義。由於系統對大小寫不敏感,大寫字母A~Z會被認為是小寫字母a~z。
property
屬性名稱。
orientation
用於指定資料庫的表在Hologres中是列儲存、行儲存還是行列共存。
說明該參數僅支援和
CREATE TABLE在同一事務中執行。clustering_key
用於在指定的列建立聚簇索引。
說明該參數僅支援和
CREATE TABLE在同一事務中執行。segment_key
用於指定某些列作為分段鍵,例如,指定時間列作為分段鍵。當查詢條件包含分段列時,查詢可以通過分段鍵快速找到相應資料對應的儲存位置。
說明該參數僅支援和
CREATE TABLE在同一事務中執行。bitmap_columns
用於在指定列構建位元編碼,快速過濾分段內部的資料。
說明該參數可單獨使用數。
dictionary_encoding_columns
用於為指定列的值構建字典映射。
說明字典編碼可以轉換字串的比較為數位比較,加速Group By、Filter等查詢。您可以單獨使用該參數。
distribution_key
用於指定資料庫中表的分布策略。
說明該參數僅支援和
CREATE TABLE在同一事務中執行。time_to_live_in_seconds
表資料的生命週期,取值為:非負數、整數或浮點數,單位為秒(s)。
說明該參數可單獨使用數。
value
屬性值,如果該參數包含列名,並且列名包含大寫字母,則需要添加雙引號
""。樣本
BEGIN; CREATE TABLE ORDERS ( O_ORDERKEY INTEGER NOT NULL, O_CUSTKEY INTEGER NOT NULL, O_ORDERSTATUS TEXT NOT NULL, O_TOTALPRICE DECIMAL(15,2) NOT NULL, O_ORDERDATE DATE NOT NULL, O_ORDERPRIORITY TEXT NOT NULL, O_CLERK TEXT NOT NULL, O_SHIPPRIORITY INTEGER NOT NULL, O_COMMENT TEXT NOT NULL); CALL SET_TABLE_PROPERTY ('ORDERS', 'clustering_key', 'O_ORDERKEY:asc,O_CUSTKEY:asc'); CALL SET_TABLE_PROPERTY ('ORDERS', 'segment_key', 'O_ORDERDATE'); CALL SET_TABLE_PROPERTY ('ORDERS', 'bitmap_columns', 'O_ORDERSTATUS,O_ORDERPRIORITY,O_CLERK,O_SHIPPRIORITY'); CALL SET_TABLE_PROPERTY ('ORDERS', 'dictionary_encoding_columns', 'O_ORDERSTATUS,O_ORDERPRIORITY,O_CLERK,O_SHIPPRIORITY'); CALL SET_TABLE_PROPERTY ('ORDERS', 'time_to_live_in_seconds', '172800'); COMMIT;