2 个回答
处理时序数据的方案主要有:
1、存储层使用时间分区与分桶,例如:
1、存储层使用时间分区与分桶,例如:
CREATE TABLE metrics (
ts DATETIME,
device_id BIGINT,
value DOUBLE
)
PARTITION BY RANGE(ts)(
PARTITION p202308 VALUES [('2023-08-01'), ('2023-09-01'))
)
DISTRIBUTED BY HASH(device_id) BUCKETS 32
PROPERTIES ("storage_medium" = "SSD");
2、存储层使用Rollup提前预聚合#按时间窗口预计算指标
ALTER TABLE metrics ADD ROLLUP r_5min (
date_trunc(ts, 'MINUTE', 5), -- 5分钟窗口
device_id,
SUM(value)
);
发布于:17小时前 IP属地:
3、查询时使用前缀索引优化时间范围查询
#将时间列放在排序键首位
ORDER BY (ts, device_id) -- 时间列前置
发布于:17小时前 IP属地:
我来回答
您需要 登录 后回答此问题!