腾讯云数据仓库 TCHouse-X WRITE ORDERED BY

ALTER TABLE … WRITE ORDERED BY 语句用于为表设置写入时的排序顺序。当数据写入该表时(例如通过 MERGE INTO),引擎会按照指定的排序顺序组织数据,从而提升查询性能。

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

一、描述

注意:表的写入排序仅影响数据如何被写入存储,不保证查询结果的排序。如需查询有序结果,需在 SELECT 中使用 ORDER BY。

二、语法

— 设置全局排序(跨任务排序)ALTER TABLE table_name WRITE ORDERED BY col1 [ ASC | DESC ] [ NULLS FIRST | NULLS LAST ] [, col2 [ ASC | DESC ] … ];– 设置局部排序(任务内排序)ALTER TABLE table_name WRITE LOCALLY ORDERED BY col1, col2;– 取消排序ALTER TABLE table_name WRITE UNORDERED;

三、参数说明

关键字 说明
ASC 升序排列(默认)
DESC 降序排列
NULLS FIRST 空值排在最前(默认)
NULLS LAST 空值排在最后
LOCALLY ORDERED BY 仅在单个任务内部排序,不跨任务重分布
UNORDERED 取消所有写入排序

四、注意事项

·写入排序是一种优化手段,用于提升点查询和范围扫描性能。

·排序会带来额外的写入开销,需根据实际查询模式权衡。

五、创建基础表

DROP TABLE IF EXISTS tci_write_ordered;CREATE TABLE tci_write_ordered ( id BIGINT NOT NULL, category STRING, name STRING, amount DOUBLE) USING tciTBLPROPERTIES ('primary-key' = 'id');

六、数据写入排序规则定义(基本用法)

ALTER TABLE tci_write_orderedWRITE ORDERED BY category ASC, id DESC;

七、数据写入排序规则定义(指定 NULL 值排序行为)

ALTER TABLE tci_write_orderedWRITE ORDERED BY category ASC NULLS LAST, id DESC NULLS FIRST;

八、局部排序规则定义

ALTER TABLE tci_write_orderedWRITE LOCALLY ORDERED BY category, name;

九、验证排序规则

INSERT INTO tci_write_orderedVALUES (3, 'B', 'Charlie', 100.0), (1, 'A', 'Alice', 200.0), (2, 'A', 'Bob', 150.0), (4, NULL, NULL, 0.0);SELECT * FROM tci_write_ordered;DESCRIBE EXTENDED tci_write_ordered;

十、取消排序规则

ALTER TABLE tci_write_orderedWRITE UNORDERED;

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