描述
使用
USING tci 子句在 TCI catalog 中创建 TCI 表。支持设置主键(Primary Key)和排序键(Sort Order)等 TCI 特有属性。语法
CREATE TABLE [ IF NOT EXISTS ] table_identifier[ ( col_name1 col_type1 [ NOT NULL ] [ COMMENT col_comment1 ], ... ) ]USING tci[ PARTITIONED BY ( partition_expr [ , ... ] ) ][ COMMENT table_comment ][ TBLPROPERTIES ( 'key' = 'value', ... ) ]
参数说明
子句/关键字 | 用途 | 语法/示例 | 说明 |
table_identifier | 表名标识 | [ database_name. ] table_name | 可选数据库名限定,指定目标表 |
USING tci | 数据源格式 | USING tci | 必要子句,指定以 TCI 格式创建表 |
PARTITIONED BY | 分区策略 | TCI 仅支持 identity 和 bucket(N, col) 两种变换 | |
COMMENT | 表描述 | COMMENT '表描述文本' | 可选,记录表的业务含义或备注 |
TBLPROPERTIES | 表属性键值对 | TBLPROPERTIES ('key'='value', ...) | 设置主键、排序键 TCI 特性等配置 |
TCI 特有属性
通过
TBLPROPERTIES 可配置以下 TCI 特有参数:属性 | 说明 | 示例 |
primary-key | 指定主键列,用于保证行级唯一性 | 'primary-key' = 'id' |
sort-order | 指定排序键,写入数据时按该列自动排序 | 'sort-order' = 'name' |
注意:
主键列必须定义为
NOT NULL。排序键和主键可以在建表时通过
TBLPROPERTIES 设置,也可以后续通过 ALTER TABLE 修改。TCI 会将 Spark 列类型自动转换为对应的 Iceberg 类型。
不支持
EXTERNAL 关键字 — 所有表均为内部管理表。不支持
LOCATION 子句 — 存储路径由 TCHouse-X 自动分配和管理。示例
创建 TCI 表基本用法
CREATE TABLE tci_create_basic (id BIGINT,name STRING,age INT) USING tci;
创建 TCI 表时指定主键和排序键
CREATE TABLE tci_create_pk_sort (id BIGINT NOT NULL,name STRING) USING tciTBLPROPERTIES ('sort-order' = 'name','primary-key' = 'id');
创建 TCI 表时指定按列值分区
CREATE TABLE tci_partition_identity (id BIGINT,category STRING,data STRING) USING tciPARTITIONED BY (category);
创建 TCI 表时指定分桶规则
CREATE TABLE tci_partition_bucket (id BIGINT,name STRING,ts TIMESTAMP) USING tciPARTITIONED BY (bucket(16, id));
创建 TCI 表时增加 IF NOT EXISTS 幂等性检查
CREATE TABLE IF NOT EXISTS tci_create_if_not_exists (id BIGINT) USING tci;
创建 TCI 表时设置 COMMENT 和 TBLPROPERTIES
CREATE TABLE tci_create_with_comment (id BIGINT NOT NULL COMMENT '唯一标识',name STRING COMMENT '名称') USING tciCOMMENT 'TCI 测试表'TBLPROPERTIES ('primary-key' = 'id');
TCI 复杂 DDL 建表语法示例
CREATE TABLE tci_create_multi_col (id BIGINT NOT NULL,username STRING NOT NULL,score DOUBLE,active BOOLEAN,created_at TIMESTAMP) USING tciTBLPROPERTIES ('primary-key' = 'id','sort-order' = 'username');
TCI 表结构查询与验证
DESCRIBE tci_create_pk_sort;SHOW CREATE TABLE tci_create_pk_sort;SELECT * FROM tci_create_basic LIMIT 0;