一、语法
CREATE TABLE table_name ( columns )USING tciPARTITIONED BY ( partition_expression [ , … ] )
二、TCI 支持的分区变换
| 变换 | 语法 | 说明 |
| Identity(恒等变换) | column_name | 按列的原始值进行分区 |
| Bucket(哈希分桶) | bucket(N, column_name) | 按列值的哈希模 N 分为 N 个桶 |
三、注意事项
·分区字段不需要出现在 SELECT 查询中,Iceberg 会在读写时自动处理分区变换。
·添加或删除分区字段是元数据操作,不会改变已有数据。
·分区策略可以通过 ALTER TABLE … ADD/DROP PARTITION FIELD 动态调整。
·不支持 EXTERNAL 和 LOCATION 子句。
四、Identity 分区
CREATE TABLE tci_part_identity ( id BIGINT, category STRING, data STRING) USING tciPARTITIONED BY (category);
五、Bucket 分区
CREATE TABLE tci_part_bucket ( id BIGINT, name STRING, ts TIMESTAMP) USING tciPARTITIONED BY (bucket(16, id));
六、混合分区
CREATE TABLE tci_part_mixed ( id BIGINT, region STRING, category STRING) USING tciPARTITIONED BY (region, bucket(8, id));
七、多个 Bucket 分区列
CREATE TABLE tci_part_multi_bucket ( user_id BIGINT, order_id BIGINT, amount DOUBLE) USING tciPARTITIONED BY (bucket(32, user_id), bucket(16, order_id));
八、写入查询验证
INSERT INTO tci_part_identityVALUES (1, 'A', 'data_a'), (2, 'B', 'data_b'), (3, 'A', 'data_c');SELECT * FROM tci_part_identity;SELECT category, count(*) FROM tci_part_identity GROUP BY category;
九、分区信息验证(DESCRIBE / SHOW PARTITIONS)
DESCRIBE tci_part_identity;SHOW PARTITIONS tci_part_identity;