分布式系统如何做到海量数据边云协同?看 TDengine 油气领域解决方案
在某大型油田生产管理方案中,用户需要实现生产现场的自动化采集与控制、生产视频系统、工业物联网、生产数据服务、智能化生产管控应用以及各个环节的信息化采集标准建设等内容。在 TDengine 的帮助下,该大型项目成功完成了技术优化升级。本篇文章将就本次优化工作进行进一步的分析解读,给到大家参考。
TDengine 应用历程
这个项目此前的应用系统主要采用 Oracle 来存储和处理时序数据,但随着使用时间的增加,数据存储量越来越大,实时数据存储和处理的问题日益凸显,技术优化也遇到了瓶颈:
在处理复杂查询和聚合大数据集时写入和查询效率大幅衰减,系统出现明显的性能下降;
数据占用了越来越多的磁盘空间,给运维资源带来较大压力;
分布式的企业管理模式下基于应用本身的数据协同效率低下,无法满足企业应用的数据同步需求。
为了解决这些问题,用户进行了多方技术方案验证,并最终选择使用 TDengine 替换 Oracle 来存储时序数据。通过 TDengine 的边云协同技术,实现了边缘数据向云端的实时汇聚。
接下来,我们将对 TDengine 应用的主要场景进行深入分析。通过详细探讨 TDengine 在各个应用场景下的优势和应用效果,大家可以更好地了解其在实际项目中的价值和作用。
场景一:数据质量提升
一般来说,在实际应用中,生产现场采集的大量实时数据主要存储在工控系统中,对于支撑应用的数据质量难以保障。架构优化之后,现场实时数据将批量写入 TDengine(同批次数据包含不同井或设备的数据)。这一优化措施显著提高了数据的准确性和一致性,进一步优化系统性能,确保数据的可靠性和完整性。
此外,TDengine 也实现了对非实时数据的补录,补录中如果产生数据碎片,以及日常使用中产生的数据碎片,均可以通过 compact 功能在线重整数据文件解决。
场景二:数据服务性能优化
我们依托多个参数的历史曲线查询功能,通过数据分析和可视化能力,实现了对单井生产设备的实时监控与历史数据查询。该功能主要基于多参数的数据源,涵盖了涉及 TDengine 和关系型数据库的多个数据源取值,通过 TDengine 快速高效的查询,获取历史数据并生成曲线图。
通过自定义指标配置项,用户可以根据实际需求调整指标计算公式,生成个性化的结果数据,满足不同层级管理人员对数据展示的需求。
场景三:数据同步效率和存储优化
在这个重要环节,我们利用到了 TDengine 边云协同的重要特性——即对多个不同的 TDengine 服务的全量历史数据以及后续新增的数据,实时同步至云端 TDengine。
作为 TDengine 的一部分,taosX 工具仅需要在数据接收方一侧部署,仅需一行命令便可以完成实时同步、历史数据迁移,以及二者混合的三种数据处理方案。
例如:同步某台服务器的 db1 的历史数据以及实时数据到本地的 db2 数据库仅需执行如下一条命令即可。
另外,taosX 也提供了基于数据订阅方式(利用 TDengine 的 wal 日志)实时数据同步,以事件到达顺序处理数据,无论是实时数据还是历史数据的写入,都会实时同步到目标集群,不会丢失补录的历史数据。
通过该方案的实施,多个 TDengine 服务通过 taosX 跨省实时同步数据至云端总部集群。目前 TDengine 总部集群存储的数据量已经达到了 36 TB,总数据量 1034 亿+条,压缩率达到了 10% 以内。
写在最后
对于该项目来说,在将 Oracle 整体切换至 TDengine 之后优化效果明显,主要体现在如下几个方面:
数据插入性能变高,硬件资源减少;
集群支持在线水平扩展,轻松应对未来扩容需求;
灵活定义数据的生命周期,方便过期数据管理;
秒级 500 万测点的同步速率,满足了用户边云协同场景需求。
随着边云协同功能在各个复杂庞大的业务场景下成功落地,TDengine 也展现出了更强大的数据处理能力和更灵活的架构,能够更好地适应工业物联网环境下复杂多变的数据处理和存储需求,为工业物联网的发展提供有力支持和保障。
评论