建分区表

  1. 命令介绍

    CREATE PARTITION TABLE:创建分区表。

  2. 命令格式
    //创建分区父表
    CREATE TABLE [IF NOT EXISTS] [schema_name.]table_name PARTITON BY list (column_name) ([
      {
       column_name column_type [column_constraints, [...]]
       | table_constraints
       [, ...]
      }
    ]);
    
    //创建分区子表
    CREATE TABLE [IF NOT EXISTS] [schema_name.]table_name PARTITION OF <parent_table>
        FOR VALUES IN (string_literal);
  3. 使用说明
    1. 不能向父表插入任何数据。
    2. 删除父表将默认同时删除子表。
    3. 只有text/varchar/int类型才能作为分区键(partition key)。
    4. 一个分区规则只能创建一个分区表。
    5. partition by类型仅支持list,切分partition list只能有一个值。
  4. 使用示例
    BEGIN;
    CREATE TABLE hologres_parent(a text primary key,
     b int NOT NULL , 
     c TIMESTAMPTZ NOT NULL , 
     d text)
     PARTITION BY list(a);
    call set_table_property('hologres_parent', 'orientation', 'column');
    call set_table_property('hologres_parent', 'clustering_key', 'a,b'); 
    call set_table_property('hologres_parent', 'segment_key', 'c');
    call set_table_property('hologres_parent', 'bitmap_columns', 'a,d'); 
    call set_table_property('hologres_parent', 'dictionary_encoding_columns', 'a,d'); 
    call set_table_property('hologres_parent', 'time_to_live_in_seconds', '86400');
    
    CREATE TABLE hologres_child2 PARTITION of hologres_parent FOR VALUES IN('b');
    CREATE TABLE hologres_child3 PARTITION of hologres_parent FOR VALUES IN('c');
    CREATE TABLE hologres_child1 PARTITION of hologres_parent FOR VALUES IN('a');
    COMMIT;

删除分区表

删除分区表的命令语法与删除普通表的命令语法一致,详情可以参见DROP TABLE

使用示例:
DROP TABLE hologres_child2;