腾讯云数据仓库 TCHouse-X PARTITIONED BY 子句

PARTITIONED BY 子句用于在建表时定义表的分区策略。TCI 基于 Iceberg 的隐藏分区(Hidden Partitioning)机制,支持通过变换表达式对数据进行分区。

相关产品
腾讯云数据仓库 TCHouse-X 产品页,含版本规格、价格与购买入口。

一、语法

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;

赞 (0)
上一篇 4天前
下一篇 4天前