2022-08-04 21:48:59
IoTDB 的分区机制通过序列和时间双维度划分数据,同步机制支持集群内外两种模式,备份则依赖流处理框架实现毫秒级容灾,三者共同保障了时序数据的高效管理、可靠传输与持久化存储。
一、数据分区的重要性及特征测点规模庞大:储能行业单站传感器数量可达百万级,全国范围测点达百亿级;汽车行业某品牌车辆测点超 10 亿。
存储代价高昂:钢铁制造超大型炼钢装置与新能源风机数据产生量大、采集频率高,磁盘需求达 PB 级。


序列分区槽:纵向管理时间序列,默认数据库级配置,每个数据库分配 1,000 个槽位,通过哈希算法分配序列,避免内存映射资源过度占用。
时间分区槽:横向按固定时间范围(默认 7 天)切分数据,优化查询效率。

节点角色:ConfigNode 负责集群管理与协调,DataNode 处理读写请求。
负载均衡:源数据分区与数据分区存储于 DataNode,通过算法确保分区均匀分布,提升存储与写入效率。

写入流程:客户端请求经负载均衡确定目标节点,再根据时间判断所属分区。
查询流程:查询引擎通过设备 ID 定位节点,生成计划后仅扫描目标时间分区,避免全量扫描。

集群内同步:基于一致性协议实现节点间数据同步,保障高可用性与副本一致性。
集群外同步:支持跨集群数据协同,应用于热备份、容灾及端边云协同等场景。

协议类型:
强一致性(Ratis):确保所有副本更新成功,但可能引入延迟。
弱一致性(IoTConsensus):允许数据先本地写入再异步同步,提升写入性能。
同步流程:请求经共识层处理后,由状态机下发至 DataRegion,日志分发线程异步同步至副本节点,并维护待同步队列保障数据最终一致性。

流处理框架:涵盖数据抽取、处理与发送三阶段,支持自定义逻辑与内置插件。
应用场景:
备份与容灾:毫秒级延迟异地容灾。
实时计算:实时告警、流计算、聚合与写回。
跨集群协作:双活集群、降采样同步、跨网闸传输。
外部系统集成:数据订阅、消息队列发送、Flink 加工、离线备份。
