乐趣区

关于tdengine:蓝格赛中国用-TDengine-落地聚合查询场景效果如何

作者:曲春辉,负责工业数字化平台架构

小 T 导读: 作为全球性的电气产品和服务经销商,蓝格赛于 2000 年进驻中国市场,始终致力于帮忙中国更无效地应用能源。通过 20 年的一直壮大,现在蓝格赛在中国国内电气产品和服务经销商中曾经成为重要的市场参与者之一,通过 6 家业务实体、全国 53 个销售网点服务工业、商业及楼宇客户,为它们提供多样化的工业自动化产品及解决方案。

本次我的项目为某市政供水水厂的数字化我的项目,数据来源于包含水泵、阀门、电表、液位计、流量计等多种设施近 6000 测点。该平台须要实现以下性能:数据秒级采集,历史数据留存 3 年,为下层利用提供数据撑持,包含所有测点的刹时数据、聚合剖析、数据报表等。值得注意的是,在本我的项目中聚合查问的应用场景十分的多,页面上图表不管大小有上百张之多,因而聚合查问的实现也是本我的项目的要害之处。

依据本我的项目特点,从整体架构的具体实现成果登程,咱们对存储技术提出了很高的要求,甚至能够说,存储技术的抉择会间接影响我的项目后续的推动乃至成败,这是一个决定平台“脊梁”硬不硬的组件。思考到这一问题,团队在技术选型上着实破费了一些功夫,本次选型也绝对更加谨慎。

在选型过程中咱们共调研了 20 多个开源存储技术,从开源组织、受权协定、数据模型、社区成熟度、开发语言、组件依赖、性能、稳定性、聚合敌对、操作系统、集群撑持、正本策略等多个角度进行了比照, 最终抉择了 TDengine 作为海量数据存储引擎。

一、从 7 个长处看抉择 TDengine 的起因

事实上,咱们最后抉择的是单纯以 InfluxDB 作为本次我的项目的外围存储组件,不过这一构想在进行技术验证时却发现难以持续推动。

次要起因是在技术验证的过程中,咱们发现了 InfluxDB 存在的几个问题,其中最重要的两个是:

  • 首先,社区版本仅反对单节点。这个能够说是 InfluxDB 十分不敌对的一个点了,少数我的项目采纳的都是集群设计方案,如果数据只能在其中一个节点上存储,节约其余节点存储空间不说,一旦所在节点呈现故障,对整个我的项目的影响是劫难级的。
  • 其次,随着数据量及存储时长的晋升,InfluxDB 的聚合性能呈现了微小的瓶颈,咱们在理论测试的时候,模仿了百万测点近 1 年的数据,当聚合申请比拟多的时候,基本上就很慢了,这点也对本我的项目影响很大。

因为以上两个问题的存在,从架构实现的角度来讲,咱们必须对存储技术进行从新抉择。恰好此时 TDengine 也凋谢了集群版本,偶尔的契机下又听到了陶老师对于时序数据的特点总结,感觉钻研的十分深刻,总结的也很全面。

后经与团队沟通,在技术选型调研时就一并把 TDengine 蕴含在了调研范畴之内。简略尝试之后,咱们发现 TDengine 的数据模型真的非常适合工业场景,总结来说有以下几个长处。

长处:

  1. 社区版本反对集群: 能够比拟好的利用集群的存储空间,数据也能够分散开来。
  2. 聚合性能优越: 因为 TDengine 的数据模型特定及对集群的撑持,在模仿测试过程中,基本上没有遇到聚合瓶颈。随着数据量的减少及存储时长的缩短,聚合性能也十分稳固。
  3. 简略易用: 在工业场景中,组件低耦合是很必要的,TDengine 开箱即用的个性很“香”,学习成本低,上手疾速。
  4. 数据模型优良: 在工业场景中,设施及测点的增减十分的广泛,TDengine 的超级表及子表的概念很好地解决了这个问题,单列模式的场景对本我的项目来说十分敌对。
  5. 查问语义具备普适性: TDengine 的查问语句与 InfluxDB 十分靠近,这点也十分好。
  6. 版本升级简略: 卸载原有版本,装置新版本即可,无需数据迁徙。
  7. 社区反对: 一般的问题基本上都能够在 issue 上失去回答,遇到紧急问题的时候,涛思数据的共事甚至能够亲自近程解决,为他们点赞,在应用的时候释怀不少。

二、10 个看板页面,近百个聚合申请

选型确定之后,咱们就正式开始了搭建。搭载 TDengine 之后的架构图如下所示:

采纳该计划的很大一部分起因是 InfluxDB 和 TDengine 在查问语义上的人造一致性。咱们为 TDengine 外层包装了一层 SDK,对应用层凋谢 SDK,使应用层对存储技术无感,在 SDK 外部通过查问的时间跨度、组件衰弱水平等多个因素主动抉择查问引擎,这样能够保障其中一个技术在呈现问题的时候,另一个技术随时顶上来,大大降低了因为技术稳定性所带来的危险。

在数据处理的具体分工上,以后咱们次要应用 TDengine 反对数据聚合的场景。 在本次我的项目中,数据看板是性能的外围,同时也是用户最看中的中央,而这部分的数据聚合基本上都依赖于 TDengine——目前其共反对利用端约 10 个看板页面,共计近百个聚合申请,是本项我的项目落地的要害。

TDengine 在本我的项目中运行稳固,为我的项目的具体性能实现提供了要害助力。将来,随着 TDengine 技术的一直成熟稳固,团队筹备将其作为工业数据库的存储引擎使用在其余我的项目中。在接下来的产品线布局上,TDengine 也将作为首选的重要技术组件。


✨想理解更多 TDengine 的具体细节,欢送大家在 GitHub 上查看相干源代码。✨

退出移动版