Apache IoTDB 介绍
Apache IoTDB 专为物联网场景设计的开源时序数据库,高效存储、管理和分析海量物联网设备产生的时序数据,由 Apache 软件基金会孵化并托管,具有高写入性能、低存储成本、灵活的查询能力和良好的可扩展性,广泛应用于工业物联网、智能家居、智慧城市等领域。
- 极致的时序数据处理效率:针对物联网高频产生的时序数据深度优化,支持每秒数百万级写入,同时通过列式存储和时间分区技术实现 5-10 倍于传统数据库的压缩率,大幅降低存储成本,兼顾高吞吐与低存储开销。
- 灵活且强大的时序查询能力:提供类 SQL 的查询语言,支持数据筛选、聚合、时间窗口分析、降采样等时序特有的操作,同时支持多设备数据对齐,满足实时监控与历史数据分析的双重需求。
- 边缘与云端协同的高扩展性:轻量级设计可部署于边缘设备,实现本地化数据存储;同时支持分布式集群部署,通过水平扩展提升存储与计算能力,结合数据分片和副本机制,保障数据可靠性与负载均衡,适配从边缘到云端的全场景需求。
前提准备
- K8s 集群:版本≥1.24,至少 3 节点(4 核 8G 起),网络互通。
- 存储:配置支持动态 PV 的 StorageClass(推荐 SSD)。
- 网络:部署高性能 CNI 插件(如 Calico),规划外部访问方式。
- 镜像:准备 IoTDB 镜像(版本≥1.3.3.2)。
- 权限:创建专用命名空间(如 iotdb)及必要 RBAC 权限。
IoTDB Kubernetes 部署
- 创建命名空间
- 查看命名空间
- 创建 PV 配置文件
- pv.yaml 示例
- 应用 PV 配置
- 查看 PV
- 手动创建文件夹
- 克隆 IoTDB Kubernetes 部署代码
- 修改 YAML 文件
- 从私有仓库拉取镜像,创建 secret 使 k8s 可访问 iotdb-helm 的私有仓库
- 安装 IoTDB
- 查看 Helm 安装列表
- 查看 Pods
- 发现故障的排除方式
- 激活 IoTDB,进入 confignode 的容器中激活
- 验证 IoTDB(查看 iotdb-ns 命名空间内的 IP、状态等信息,确定全部运行正常)
- 查看命名空间内的端口映射情况
- 在任意服务器启动 CLI 脚本验证 IoTDB 集群状态(端口即 jdbc-balancer 的端口,服务器为 k8s 任意节点的 IP)
- 扩容,新增 PV
- 扩容 confignode:修改 iotdb-cluster-k8s/helm 的 values.yaml 文件,将 confignode 的 3 改成 4
- 扩容 datanode(修改 iotdb-cluster-k8s/helm 的 values.yaml 文件,将 datanode 的 3 改成 4)
- 验证 IoTDB 状态
Apache IoTDB CRUD 操作
创建时间序列(Schema)
-- 创建存储组(逻辑分区)
CREATE STORAGE GROUP root.device;
TIMESERIES root.device.temperature DATATYPE, ENCODINGRLE;
TIMESERIES root.device.humidity DATATYPEINT32, ENCODINGPLAIN;


