当前位置:网站首页>玉溪卷烟厂通过正确选择时序数据库 轻松应对超万亿行数据
玉溪卷烟厂通过正确选择时序数据库 轻松应对超万亿行数据
2022-08-02 13:37:00 【InfoQ】
公司简介
业务背景
实践经验




- 创建一张超级表存储所有采集点的数据,一个采集点一张子表。超级表采用单列模型,采集值类型为字符串。优点:在获取某个 MES 业务计算所需要的 n 个测点全量数据时,可以用一条 SQL 查出,不需 join缺点:布尔、浮点数也会作为字符串存储,压缩比会受影响,且无法使用预计算,还可能需要对结果集做列转行操作
- 创建多张超级表,单列模式,针对每一种数据类型创建一张超级表,一个采集点一张子表,采集点根据对应数据类型使用对应类型超级表。优点:采集点增减可以灵活匹配,且数值型采集值有预聚和优化缺点:获取某个 MES 业务计算所需要的 n 个测点全量数据时,需要分别从三个超级表中查询,后期考虑用 join,但仍会有结果集列转行的工作
- 为每个 MES 业务计算任务(比如产品质量计算)所涉及的采集点建超级表(也可能是普通表),采用多列模式。优点:MES 业务涉及到的查询可以直接从对应表按时间段查出来,且不同测点的数据类型可以保留,预计算优化也会被保留缺点:表结构固定,不同 MES 业务系统之间的超级表可能会用到相同的指标,这些指标的数据就会反复存储。如果 MES 业务计算需求变化,则需要修改表结构,写入时要求所有采集点字段同时写入
- 单列模式可以保证其他业务使用数据的灵活性,而 MES 业务需要的指标组合几乎不变,针对性建表就可以保证计算的便捷性;
- 超级表可以加数据标签,单列模式便于对数采点进行管理,能够将制丝数采点表的 BOM 结构延袭到 TDengine 中,从而能够实现基于标签的快速查询和筛选;
- 得益于 TDengine 强大的压缩能力,多出的数据并不会带来很多成本;
- 根据数据的重要程度和采集频率分库存储,对每一个进行采集存储程序的单独维护,互不干扰,有效保障存储稳定性,一个库的存储故障不会影响其他库。
落地过程&应用展示


存储方面





查询方面
select * from yjpzsa_phm_opc.voltage_prop where ts >'2022-06-22 10:00:000' and ts <'2022-06-22 15:10:000';




写在最后
边栏推荐
猜你喜欢
This binding to detailed answers
Enterprise Network Planning Based on Huawei eNSP
Singleton pattern of seven kinds of writing, you know?
软件测试和硬件测试的区别及概念
乐心湖‘s Blog——MySQL入门到精通 —— 囊括 MySQL 入门 以及 SQL 语句优化 —— 索引原理 —— 性能分析 —— 存储引擎特点以及选择 —— 面试题
图论之Floyd,多源图最短路如何暴力美学?
FreeBSD bnxt以太网驱动源码阅读记录三:
【C语言】细品分支结构——switch语句
【ONE·Data || 排序入门】
【C语言】剖析函数递归(1)
随机推荐
【C语言】手撕循环结构 ——do...while语句及循环练习题(1)
CSDN(成长一夏竞赛)- 最大数
【C语言】剖析函数递归(1)
How to improve the originality of self-media creation and create popular works?
Automatically generate code generator recommendation-code-gen
js array recursively use
冰箱“扩容”的战事,在今夏格外猛烈
wx-wow(微信小程序动效库)
二叉树的类型、构建、遍历、操作
Article 48 - Analysis of timestamp2 parameters【2022-08-01】
二极管及其应用
使用Amazon SageMaker 构建基于自然语言处理的文本摘要应用
tinymce-plugins
WPF效果第一百九十三篇之登录实现
【ONE·Data || 排序入门】
First acquaintance of scrapy framework 1
微信小程序getPhoneNumber接口code=40013
基于flask商城的管理员功能
SQL函数 UPPER
图论之Floyd,多源图最短路如何暴力美学?