分布式系统如何做到海量数据边云协同?看 TDengine 油气领域解决方案

在某大型油田生产管理方案中,用户需要实现生产现场的自动化采集与控制、生产视频系统、工业物联网、生产数据服务、智能化生产管控应用以及各个环节的信息化采集标准建设等内容。在 TDengine 的帮助下,该大型项目成功完成了技术优化升级。本篇文章将就本次优化工作进行进一步的分析解读,给到大家参考。

TDengine 应用历程

这个项目此前的应用系统主要采用 Oracle 来存储和处理时序数据,但随着使用时间的增加,数据存储量越来越大,实时数据存储和处理的问题日益凸显,技术优化也遇到了瓶颈:

  1. 在处理复杂查询和聚合大数据集时写入和查询效率大幅衰减,系统出现明显的性能下降;
  2. 数据占用了越来越多的磁盘空间,给运维资源带来较大压力;
  3. 分布式的企业管理模式下基于应用本身的数据协同效率低下,无法满足企业应用的数据同步需求。

为了解决这些问题,用户进行了多方技术方案验证,并最终选择使用 TDengine 替换 Oracle 来存储时序数据。通过 TDengine 的边云协同技术,实现了边缘数据向云端的实时汇聚。

接下来,我们将对 TDengine 应用的主要场景进行深入分析。通过详细探讨 TDengine 在各个应用场景下的优势和应用效果,大家可以更好地了解其在实际项目中的价值和作用。

场景一:数据质量提升

一般来说,在实际应用中,生产现场采集的大量实时数据主要存储在工控系统中,对于支撑应用的数据质量难以保障。架构优化之后,现场实时数据将批量写入 TDengine(同批次数据包含不同井或设备的数据)。这一优化措施显著提高了数据的准确性和一致性,进一步优化系统性能,确保数据的可靠性和完整性。

此外,TDengine 也实现了对非实时数据的补录,补录中如果产生数据碎片,以及日常使用中产生的数据碎片,均可以通过 compact 功能在线重整数据文件解决。

场景二:数据服务性能优化

我们依托多个参数的历史曲线查询功能,通过数据分析和可视化能力,实现了对单井生产设备的实时监控与历史数据查询。该功能主要基于多参数的数据源,涵盖了涉及 TDengine 和关系型数据库的多个数据源取值,通过 TDengine 快速高效的查询,获取历史数据并生成曲线图。

通过自定义指标配置项,用户可以根据实际需求调整指标计算公式,生成个性化的结果数据,满足不同层级管理人员对数据展示的需求。

场景三:数据同步效率和存储优化

在这个重要环节,我们利用到了 TDengine 边云协同的重要特性——即对多个不同的 TDengine 服务的全量历史数据以及后续新增的数据,实时同步至云端 TDengine。

作为 TDengine 的一部分,taosX 工具仅需要在数据接收方一侧部署,仅需一行命令便可以完成实时同步、历史数据迁移,以及二者混合的三种数据处理方案。

例如:同步某台服务器的 db1 的历史数据以及实时数据到本地的 db2 数据库仅需执行如下一条命令即可。

taosx run -f 'taos://192.168.1.101:6030/db1?mode=all' -t 'taos://localhost:6030/db2' -v

另外,taosX 也提供了基于数据订阅方式(利用 TDengine 的 wal 日志)实时数据同步,以事件到达顺序处理数据,无论是实时数据还是历史数据的写入,都会实时同步到目标集群,不会丢失补录的历史数据。

通过该方案的实施,多个 TDengine 服务通过 taosX 跨省实时同步数据至云端总部集群。目前 TDengine 总部集群存储的数据量已经达到了 36 TB,总数据量 1034 亿+条,压缩率达到了 10% 以内。

写在最后

对于该项目来说,在将 Oracle 整体切换至 TDengine 之后优化效果明显,主要体现在如下几个方面:

  1. 数据插入性能变高,硬件资源减少;
  2. 集群支持在线水平扩展,轻松应对未来扩容需求;
  3. 灵活定义数据的生命周期,方便过期数据管理;
  4. 秒级 500 万测点的同步速率,满足了用户边云协同场景需求。

随着边云协同功能在各个复杂庞大的业务场景下成功落地,TDengine 也展现出了更强大的数据处理能力和更灵活的架构,能够更好地适应工业物联网环境下复杂多变的数据处理和存储需求,为工业物联网的发展提供有力支持和保障。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/28584.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

椭圆曲线加密算法中公钥与私钥互换性分析

PrimiHub一款由密码学专家团队打造的开源隐私计算平台,专注于分享数据安全、密码学、联邦学习、同态加密等隐私计算领域的技术和内容。 在现代密码学中,椭圆曲线加密算法(Elliptic Curve Cryptography, ECC)因其高效的加密速度、较…

如何通过墙面互动投影打造全新娱乐体验?

随着展厅设计技术的飞速发展,我们见证了无数令人惊叹的创意墙面互动设计形式的涌现。其中,墙面互动投影凭借其独特的魅力,成为了备受欢迎的创意墙面设计典范。它巧妙地融合了展示内容与互动体验,彻底革新了观众与数字内容的交流方…

通过向量叉乘计算姿态充电桩朝向

通过向量叉乘计算姿态充电桩朝向 需求: 通过geometry_msgs::PointStamped intersection_ros_line1; geometry_msgs::PointStamped intersection_ros_line2;geometry_msgs::PointStamped intersection_ros_point;其中 intersection_ros_line1与intersec…

【编程语言】Python平台化为何比Java差?

人不走空 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌赋:斯是陋室,惟吾德馨 目录 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌…

代码随想录算法训练营day59 | 115.不同的子序列、583. 两个字符串的删除操作、72. 编辑距离

115.不同的子序列 1、确定dp数组以及下标的含义 dp[i][j]:以i-1为结尾的s子序列中出现以j-1为结尾的t的个数为dp[i][j] 2、确定递推公式 这一类问题,基本是要分析两种情况 s[i - 1] 与 t[j - 1]相等s[i - 1] 与 t[j - 1] 不相等 (1&…

ROS 机器人运动控制(C++实现)

ROS 机器人运动控制(C实现) 实现思路 构建一个新的软件包,报名叫做vel_pkg在软件包中新建一个节点,节点名叫做vel_node在节点中,向ROS大管家NodeHandle申请发布话题/cmd_vel,并拿到发布对象vel_pub构建一…

C语言学习系列:初识C语言

前言,C语言是什么 语言,比如中文、英语、法语、德语等,是人与人交流的工具。 C语言也是语言,不过是一种特殊的语言,是人与计算机交流的工具。 为什么叫C语言呢? 这就要从C语言的历史说起了。 一&#…

【电脑小白】装机从认识电脑部件开始

前言 在 B 站上刷到了一个很牛逼的电脑装机视频,很适合电脑小白学习,故用文本记录下。 推荐对组装台式电脑有兴趣的小伙伴都去看看这个视频: 原视频链接:【装机教程】全网最好的装机教程,没有之一_哔哩哔哩_bilibil…

Transformer模型:未来的改进方向与潜在影响

Transformer模型:未来的改进方向与潜在影响 自从2017年Google的研究者们首次提出Transformer模型以来,它已经彻底改变了自然语言处理(NLP)领域的面貌。Transformer的核心优势在于其“自注意力(Self-Attention&#xf…

做好程序前设计

不要小看任何一道编程题目!一定一定一定要想好之后再动手!!! 带上你的草稿本!!!!!!!!!!!&#xf…

Java 循环结构

Java 循环结构 Java 循环结构是编程语言中的一种基本控制结构,它允许我们重复执行一段代码多次。在 Java 中,主要有四种类型的循环结构:for 循环、while 循环、do-while 循环和增强 for 循环。每种循环结构都有其特定的用途和语法。 1. for 循环 for 循环是 Java 中最常用…

Vite使用unplugin-auto-import实现vue3中的自动导入

unplugin-auto-import 是基于 unplugin 写的,支持 Vite、Webpack、Rollup、esbuild 多个打包工具。我们可以使用unplugin-auto-import实现依赖的自动导入,不用再频繁导入依赖包,从而提交我们的开发效率。如下,以vue3vite中使用改插…

Linux系统之Ward服务器监控工具

Linux系统之Ward服务器监控工具 文章目录 Linux系统之Ward服务器监控工具介绍资源列表基础环境一、安装Java环境二、下载ward的jar包2.2、下载软件包 三、安装ward工具3.1、启动ward服务3.2、查看你后台启动任务3.3、监听ward服务端口 四、访问ward服务4.1、进入ward初始界面4.…

Ubuntu20.04.6操作系统安装教程

一、VMware Workstation16安装 选择安装VMware Workstation,登录其官网下载安装包,链接如下: 下载 VMware Workstation Pro 下载后运行安装向导,一直Next即可。 二、Ubuntu镜像下载 ubuntu20.04 选择需要下载的镜像类型下载即…

猜测Tomcat如何实现WebSocket协议

一、WebSocket协议的实现 (一)WebSocket是官方的协议接口标准。 (二)如果一门编程语言可以网络连接和并发,就能创建一种WebSocket实现。 (三)同一种编程语言,有不同的协议实现版本和框架。 二、Tomcat实现 在Tomcat容器中实现了对应的WebSocket版本&am…

keras 和 tensorflow主要组件

Keras 是一个高级神经网络 API,其主要组件包括: 1. 层(Layers) 1. 全连接层(Dense Layer) 全连接层(也称为密集层)是最常用的一种层,它对输入和输出的每一个神经元都进…

采集罗克韦尔AB、西门子等PLC数据发布成HTTP接口

智能网关IGT-DSER集成了多种PLC的原厂协议,方便实现各种PLC的原厂协议转换为HTTP协议的服务端,通过网关的参数配置软件绑定JSON文件的字段与PLC寄存器地址,即可接收来自客户端的GET、PUT和POST命令,解析和打包JSON文件(JSON文件格…

【深度学习】Precision、Accuracy的区别,精确率与准确率:深度学习多分类问题中的性能评估详解

在深度学习的多分类问题中,Precision(精确率)和Accuracy(准确率)是两种常用的性能评估指标,它们各自有不同的定义和用途。 Precision(精确率)的中文发音是:pǔ rēi xī…

vscode 调试

VScode 调试教程 tasks.json和launch.json的设置(超详细)_vscode launch.json在哪-CSDN博客 launch.json {// Use IntelliSense to learn about possible attributes.// Hover to view descriptions of existing attributes.// For more information, v…

路劲抛出的最后一根稻草,还是要用力抓住

6月11日,路劲发布公告,主要内容是对旗下存续的5笔美元高级债及1笔美元永续债提出展期,债务压力显性化,拿出诚意预付一部分现金,同时给部分债权人提供离场机会,最大化保障其权益。 路劲的这一动作皆在意料之…