热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

关于tdengine:从-InfluxDB-到-TDengine阳光氢能为什么会做出这个选择

小T导读:为了更好地反对阳光氢能PEM绿电制氢零碎,本文作者所在的部门须要寻找一套满足业务和性能需求、而且具备国产知识产权的时序数据库,来代替本来

小 T 导读:为了更好地反对阳光氢能 PEM 绿电制氢零碎,本文作者所在的部门须要寻找一套满足业务和性能需求、而且具备国产知识产权的时序数据库,来代替本来应用的 InfluxDB。本文分享了他们将 InfluxDB 替换为 TDengine 的具体起因,以及相干的实际思路。

企业简介

阳光电源成立于 1997 年,专一于逆变器的自主研发与制作。通过二十多年的技术积攒,团体逐步确立在光伏逆变器畛域的龙头位置,打造了风、光、储、氢的新能源残缺格局,做到传统业务和翻新业务并行不悖、协同倒退。

我的项目介绍

在碳中和这个大背景下,氢能是新能源畛域中与油气行业现有业务联合最严密的一类,也是帮忙油气行业早日实现碳达峰、碳中和的最佳门路之一。2022 年 7 月 16 日,阳光氢能 200Nm³/h PEM 绿电制氢零碎启运发货。该套零碎采纳国内当先的 PEM 电解水制氢技术和 IGBT 制氢电源,工艺简单,波及多项国内专利技术。为了更好地监测整体生产流程数据,咱们须要寻找一套满足业务和性能需求,而且具备国产知识产权的时序数据库(Time Series Database),以响应国家信创号召。

时序数据库选型之 InfluxDB vs TDengine

在 InfluxDB 和 TDengine 之间,之所以抉择 TDengine ,其实我很早之前就写过一篇文章,题目是《从 InfluxDB 到 TDengine,咱们为什么会做出这个抉择》,在其中表述的比较清楚了。这里能够再简略总结一下:

第一,TDengine 超级表和一般表的概念十分符合咱们我的项目的业务场景。此前咱们的我的项目是一个站点一个单元对应多个测点,当初利用超级表-一般表的模型,业务模型会更加清晰。

第二,查问更具备劣势。在应用老版 InfluxDB 的历史数据查问性能时,只有操作略微频繁一点(比方抉择一个时间段之后,曲线很久还没有渲染进去,又去换了一个时间段),就会导致页面卡死,取不到数据,这时候须要重启浏览器,极度影响客户体验。

然而在应用 TDengine 之后,不论是大批量拉取范畴数据,还是应用函数计算,查问再也没有呈现过浏览器卡死的状况。TDengine 拉取单设施大范畴工夫数据查问的 SQL 以及耗时状况,如以下截图如下:

不得不说,这些查问的性能都非常杰出,齐全满足咱们的利用场景。

第三,搭建集群的老本更低廉。家喻户晓,InfluxDB 集群性能是闭源的,如果后续业务倒退须要用到集群时会带来很大的不便。然而 TDengine 的集群性能是开源的,且扩大不便,因而能够显著升高运维老本。

最初,从用户反对的角度来说,选用国外的 Database 有很大的不确定性,但在应用 TDengine 时如果须要反对,就能够间接通过微信/邮箱等工具随时和技术人员进行交换,更加无效不便。如果对产品性能性能、业务保障要求高的话,就能够随时降级到企业级的服务。

TDengine 落地实际

在咱们的这套零碎中利用的 TDengine 版本为 2.4.0.0,次要用于存储大量设施产生的时序数据,咱们整个我的项目的智能化都是基于这些数据开展。采集设施次要为碱液循环泵、脱氧塔、纯水机、电解槽等制氢设施。

该套制氢零碎除 PEM 制氢劣势外,还具备智能化水平高的特点,采纳的智能控制算法与可再生能源稳定、间歇性特点相符合,兼具高效、经济、平安、智能等劣势,实用于制、储、加一体化制氢我的项目。在这个过程中,咱们会对 TDengine 存储的设施数据进行剖析计算,最初通过大屏展现以达到实时监控、剖析等需要。

整个业务架构大抵如下:以咱们本人编写的 mosbusTCP 驱动,联合数采硬件设施采集设施数据,而后通过 JDBC-RESTful 的形式将数据写入 TDengine。数据采集点总共有 9000 多个,频率为大略每秒写入一次。

目前单列模型下,最大的超级表曾经保留了几百亿行的的数据,以后磁盘占用 55GB 左右的空间,压缩比大略在 10-15% 之间。

教训分享

值得一提的是,TDengine 是依据表来做数据分片的,vnode 就是最小单位,在这种状况下,保障数据量平衡的前提是写入量平均,否则如果某些设施过热,某些设施过冷,就会呈现某个 vnode 极大,某个 vnode 极小的状况。

这一点在建表之初是须要思考的,避免工夫过久后,数据过于歪斜。具体调整形式能够参考这篇文章。比方,如果初期的设施热度比拟高的话,就能够调小 minTablesPerVnode,在第一波建表时便把表平均开到不同 vnode 里,这样能够针对性地利用起每个 vnode 有独立写入线程的特点,充分利用计算资源。(上文中的 vnode 截图并不是我的写入不平均,只是单纯的新建表不久还没有写入太多数据。)

此外,在咱们的应用过程中,也有遇到过一些问题。比方应用超级表的 select * 查问时,时间跨度比拟久的数据返回会有些慢,这跟以后版本的架构无关,一个该类查问会生成多个子查问,每个 vnode 的子查问是在服务端串形解决的,即在一个 vnode 中检索查问结束后再查下一个,最初汇总。解决方案是把时间段拆开成多段,应用多线程来查问。依据 TDengine 的布局,在后续的 3.x 版本中,此类查问将会和聚合查问一样变成并行处理,查问效率会大大晋升。而其余问题多为配置部署相干,仔细阅读文档,都能够失去很好的解决。

对于 TDengine 在现有业务体系下的体现,咱们还比较满意,前面也会尝试摸索更多的单干可能,一直为客户发明价值,以技术驱动绿氢产业倒退。


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


推荐阅读
  • 墨天轮国产数据库沙龙 | 许力:阿里云原生Lindorm TSDB数据库,驱动工业IT&OT超融合数字化系统升级
    墨天轮国产数据库沙龙|许力:阿里云原生LindormTSDB数据库,驱动工业IT&OT超融合数字化系统升级-分享嘉宾:许力阿里云Lindorm数据库产品经理整理:墨天轮导读大家好, ... [详细]
  • QQ推出新功能:个性化QID身份卡
    您是否还记得曾经风靡一时的即时通讯工具QQ?近日,QQ悄然上线了一项新功能——QID身份卡。这项功能将如何改变用户的社交体验?本文为您详细解读。 ... [详细]
  • 深入理解Dockerfile及其作用
    Dockerfile是一种文本格式的配置文件,用于定义构建Docker镜像所需的步骤。通过使用`docker build`命令,用户可以将Dockerfile中的一系列指令转换成一个可执行的Docker镜像。 ... [详细]
  • 本文来自微信公众号:界面新闻(ID:wowjiemian),作者:席菁华,头图来自:视觉中国海底打桩,安装基座,吊装塔筒、机舱、叶片……北至山东,南至广东,在中国东部广袤的海域上, ... [详细]
  • pypy 真的能让 Python 比 C 还快么?
    作者:肖恩顿来源:游戏不存在最近“pypy为什么能让python比c还快”刷屏了,原文讲的内容偏理论,干货比较少。我们可以再深入一点点,了解pypy的真相。正式开始之前,多唠叨两句 ... [详细]
  • 本文介绍了读写锁(RWMutex)的基本概念、实现原理及其在Go语言中的应用。读写锁允许多个读操作并发执行,但在写操作时确保互斥,从而提高并发性能。 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 从运维繁忙到屡获殊荣:一位CIO的辉煌转型之路
    企业首席信息官(CIO)常常面临一个棘手的问题:如何有效推动公司的数字化转型?尽管数字化转型已成为企业未来发展的重要共识,但如何具体实施依然是许多CIO面临的重大挑战。在日常运营中,企业需要处理大量的业务问题和制定各种发展规划,这使得数字化转型往往被排在较低的优先级。此外,不断涌现的新问题和新规划也常常打乱原有的计划,进一步增加了转型的难度。 ... [详细]
  • 本题要求实现一个名为fun的函数,该函数的功能是从给定的字符串s中移除所有ASCII码为偶数值的字符,并将剩下的字符组成的新字符串存储在由t指向的数组中。 ... [详细]
  • 本文详细介绍了在 Python 中如何有效去除浮点数末尾的无意义零及不必要的点,提供多种实现方法,并深入探讨了浮点数在计算机中的表示方式及其可能带来的精度问题。 ... [详细]
  • 从键盘输入年、月、日,要求输出当前日期为当年的第多少天。今天凯凯君又去参加了笔试,碰到了这样一个题目,从键盘输入年、月、日,要求输出当前日期为当年的第多少天。面对这个题目你首先想到 ... [详细]
  • C盘无法格式化的原因及解决方法
    本文探讨了C盘无法格式化的原因,并提供了详细的解决方案,帮助用户顺利进行系统维护。 ... [详细]
  • PTArchiver工作原理详解与应用分析
    PTArchiver工作原理及其应用分析本文详细解析了PTArchiver的工作机制,探讨了其在数据归档和管理中的应用。PTArchiver通过高效的压缩算法和灵活的存储策略,实现了对大规模数据的高效管理和长期保存。文章还介绍了其在企业级数据备份、历史数据迁移等场景中的实际应用案例,为用户提供了实用的操作建议和技术支持。 ... [详细]
  • 在分析和解决 Keepalived VIP 漂移故障的过程中,我们发现主备节点配置如下:主节点 IP 为 172.16.30.31,备份节点 IP 为 172.16.30.32,虚拟 IP 为 172.16.30.10。故障表现为监控系统显示 Keepalived 主节点状态异常,导致 VIP 漂移到备份节点。通过详细检查配置文件和日志,我们发现主节点上的 Keepalived 进程未能正常运行,最终通过优化配置和重启服务解决了该问题。此外,我们还增加了健康检查机制,以提高系统的稳定性和可靠性。 ... [详细]
  • 这篇文章 | 夕阳下的防火墙命令全解 ... [详细]
author-avatar
qiuyaji4379
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有