当前位置: 首页 > news >正文

TDengine 数据库建模最佳实践

在这里插入图片描述

核心建模原则

一个数据采集点一张表 :每个数据采集点(如传感器、设备)对应一张子表,存储其时间序列数据;同类型数据采集点通过 “超级表”(Stable)进行逻辑聚合管理。超级表定义表结构(时间戳 + 采集指标列)和标签(静态属性,如设备型号、位置),子表通过继承超级表并指定标签值创建。

建模方式选择

多列模型

  • 适用场景 : 相同类型设备采集指标完全相同、各指标同时采集(时间戳一致)、数据同一消息上报。

  • 建模方法 : 为设备类型创建多列超级表(时间戳 + 各采集指标列),为每个设备创建子表(继承超级表,子表列对应采集指标)。
    扩展场景(采集指标不完全相同) :若设备有少量个性化指标(总列数≤4096,建议≤500),创建包含所有指标的 “大宽表” 超级表,子表中不具备的指标填 NULL。

单列模型

  • 适用场景 :设备采集指标不固定 / 个性化指标总数 + 共有指标>1024、各指标采集时间戳不同、数据分消息上报。
  • 建模方法 :创建单列超级表(时间戳 + 采集值),标签增加 “采集指标 ID”;每个设备的每个指标单独创建子表,不同数据类型(数值 / 布尔 / 字符串)分不同超级表。

多列与单列模型对比

  • 多列模型 :插入 / 存储效率更高,适合固定指标、同时间戳采集的场景。
  • 单列模型 :灵活性更高,适合指标频繁变化、不同时间戳采集的场景。

标签与查询优化

  • 标签支持事后增删改,建模时可先不确定分析维度;标签可设计为树状结构(如 “北京・朝阳・望京”),缩小查询范围。
  • 超级表支持通过标签过滤(如WHERE loc=“BJ.chaoyang”),实现多维分析。

数据分层设计

  • 贴源层 :数据模型与数据源(如设备上报格式)1:1 对齐,简化采集流程。
  • 整合层 :对贴源层数据进行时间戳对齐、关联整合、汇聚转换,衔接采集与应用需求。
  • 访问层 :按业务主题(如车间、产品线)分类建模,支持实时监控与批量查询。

分库分表原则

分表条件 :列数>4096、列间无关联需联合查询、采集频率不一致。
分库条件 :采集点采集频率相差百倍以上、不同库采集点无业务关联。

边界限制

  • 表名:仅支持英文字符、数字、下划线,不允许数字开头,不区分大小写。
  • 列限制:每行最多 4096 列(建议≤200 列),总长度≤64KB;SELECT 结果最多 4096 列。
  • 标签限制:最多 128 个标签,标签值总长度≤16KB。

关键注意事项

  • 标签与子表 :鼓励多使用标签(最多 128 个)和子表(百万级子表属正常),避免单表管理所有数据
  • 数据类型优化 :能设为int类型的标签 / 指标,避免使用字符串
  • 资源规划 :子表数量大时需多分配虚拟节点(vnode),避免百万级子表仅用 2 个 vnode。

总结

TDengine 建模需根据设备类型、指标特性(是否固定、时间戳是否一致)选择多列或单列模型,通过超级表管理同类型设备,合理分库分表,并利用标签优化查询效率;同时可结合数据分层设计满足采集与应用需求。

关于 TDengine

TDengine 是一款专为物联网、工业互联网等场景设计并优化的大数据平台,其核心模块是高性能、集群开源、云原生、极简的时序数据库。它能安全高效地将大量设备每天产生的高达 TB 甚至 PB 级的数据进行汇聚、存储、分析和分发,并提供 AI 智能体对数据进行预测与异常检测,提供实时的商业洞察。

http://www.lryc.cn/news/584069.html

相关文章:

  • Spring--04--1--AOP自定义注解,记录用户操作日志
  • 【MSSQL】如何清理SQL SERVER内存解决内存占用高的问题
  • 【免费数据】2020年中国高精度耕地范围矢量数据
  • Docker:安装命令笔记
  • 智慧城市网络架构升级与SD-WAN技术应用实践
  • 上海交大医学院张维拓老师赴同济医院做R语言训练营培训
  • QT Android 如何打包大文件到目录下?
  • 【牛客刷题】活动安排
  • 华为鸿蒙HarmonyOpenEye项目:开眼App的鸿蒙实现之旅
  • OpenGL 4. 变换
  • 【STM32 学习笔记】SPI通信协议
  • 《PyQt6-3D应用开发技术文档》
  • 【Note】Linux Kernel 之 内核架构、源码文件、API/ABI 、FHS
  • JVM 基础 - JVM 内存结构
  • 龙迅#LT7911E适用于TPYE-C/DP/EDP转MIPIDSI/LVDS应用功能,支持DSC 分辨率缩放,分辨率高达4K60HZ!
  • 基于联邦学习的医疗数据隐私保护模型设计与实现
  • 【深度学习新浪潮】什么是持续预训练?
  • 网安系列【16】之Weblogic和jboss漏洞
  • Linux驱动06 --- UDP
  • 货车车架和悬架设计cad【7张】+设计说明书
  • 前端面试专栏-算法篇:21. 链表、栈、队列的实现与应用
  • 分布式ID 与自增区别
  • 【spring boot】三种日志系统对比:ELK、Loki+Grafana、Docker API
  • 膨胀卷积介绍
  • XGBoosting算法详解(Boosting思想的代表算法)
  • 字节 Seed 团队联合清华大学智能产业研究院开源 MemAgent: 基于多轮对话强化学习记忆代理的长文本大语言模型重构
  • 深度学习中的常见损失函数详解及PyTorch实现
  • PyTorch Tensor 操作入门:转换、运算、维度变换
  • pytorch 神经网络
  • PyTorch自动微分:从基础到实战