在做一个物联网平台,原来使用的是 tdengine , 通过一个产品一张超级表,一个设备一张子表的概念进行设计的,子表的表名做为设备 id 。 参考: https://docs.taosdata.com/basic/model/
现在被要求使用 clickhouse ,看了一下网上 没有特别统一的方案。 问的 AI 方案是单表
CREATE TABLE device_metrics (
event_time DateTime64(3) CODEC(DoubleDelta), -- 时间戳(毫秒级)
device_type Enum8('water_meter'=1, 'electric_meter'=2, 'cnc_machine'=3), -- 设备类型标签
device_id UInt32, -- 设备唯一 ID
location String, -- 位置标签
metrics Nested( -- 动态指标(兼容不同设备)
key String, -- 指标名(如"voltage")
value Float32 -- 指标值
)
) ENGINE = MergeTree()
PARTITION BY toYYYYMM(event_time) -- 按月分区
ORDER BY (device_type, device_id, event_time) -- 排序键(加速设备时序查询)
TTL event_time + INTERVAL 2 YEAR; -- 自动清理过期数据
想问下大家针对时序数据,clickHouse 的表是如何设计的?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.