首页 > 其他分享 >智慧水务系统如何进行有效的数据架构整改?三个企业的改造实践分享

智慧水务系统如何进行有效的数据架构整改?三个企业的改造实践分享

时间:2023-05-26 18:14:15浏览次数:50  
标签:架构 TDengine 整改 写入 查询 MySQL 数据 水务

在智慧水务系统中,往往需要对设备中产生的液位、电流、水量等实时指标数据进行存储、分析及监控操作,而这些都是典型的时序数据。面对这些数据的处理时,很多企业在前期选择的大都是传统的实时数据库甚至关系型数据库,随着设备数量的增加,数据量也达到了百万、千万量级,传统的数据库解决方案已经无法满足业务需求。为了帮助有以上问题的企业更好地进行数据架构整改,本篇文章汇总了三个典型智慧水务场景下的数据架构升级实践,给到大家参考。

禹为科技 x TDengine

“TDengine 的消息订阅、缓存、流式计算等诸多特性,可以代替 Kafka、OpenTSDB 和 Flink,减少业务代码中定时计算(如用水量)等功能,简化了整体架构。在架构简化以后,排查和定位问题也能得到快速响应,开发和运维成本大大节约。同时,TDengine 替代了 OpenTSDB+Redis+MySQL,提高了数据实时性和一致性,其表结构设计合理,可以节省存储空间,进而节省存储费用。”
  业务背景 相较于水利信息化系统,禹为科技灌区信息化平台具有设备厂家多、数据多且存储周期长、数据类型较为集中、需要实时展示的指标较多等特点。为了解耦系统中的数据接入和数据分析,禹为科技将数据的接入和计算分析拆分为独立的通用物联网平台及大数据平台,在现代灌区信息化平台的建设过程中,经历了数据库&定时任务的架构、以流式计算为核心的架构和以 TDengine 为核心的架构三个阶段,最终选用 TDengine 帮助其对水位、流量、水量等实时指标数据分析。   架构图 点击案例查看更多技术细节

鼎蓝水务 x TDengine

“使用感受就是 TDengine 的数据处理性能非常高。现在的接入网关的设备数是 23 个液位、9 个频率计、9 个电流计、10个拦蓄盾、3个泵站、3个截留井、1个泵闸,总共有 40 张表,每张表每天新增 6 万条数据,现在每张表的大约三百万条数据。使用 TDengine 带来的最大好处是不用再考虑 SQLServer 中的分库分表操作,数据不断写入一个月后,查询时延也没有增加。而且我们发现 TDengine 在处理 13 个设备、百万量级的数据量写入任务时,内存开销只有 1.5GB,查询时内存增长也觉察不出来,整体内存开销比 SQLServer 降低了 50%。”
  业务背景 鼎蓝水务智慧排水系统需要处理来自拦蓄盾检测设备上报的数据。在这些监测数据的处理流程上,数据从网关推送过来后会有一个判断是否实时数据。此前所有数据都是使用 SQL Server 存储,数据量达到 2000 万后 SQL Server 的查询时延就变得非常慢,不得不做分库分表操作来提高查询速度,但这个解决方法遇到跨库跨表的查询非常不便。架构改造后,对于非实时数据,则会流经 Redis 去重,做报警判断然后写入 SQL Server;对于实时数据则直接写入TDengine,不需要再经过 Redis,之后前端需要的一些类似液位电流数据等就可以直接从 TDengine 访问。   数据处理流程图 点击案例查看更多技术细节

万朗智水 x TDengine

“设置参数为十万张点表,每个点表 1s 需要存储 1 条记录。在实际测试过程中,使用 HTTP 接口,采用单机 4C16GB 的配置,8 线程每次写 500 条记录,10 万条记录写入只需要 300ms(如果使用 java 客户端更快);单变量采样查询基本在 2ms 内完成。整个测试持续了 48 小时,测试期间 CPU 在 20%-30% 之间,内存维持在 6GB 左右,写入相当稳定,没有出现超时。查询方面,我们使用 MySQL 查询 3 个点一年的数据直接请求超时,使用 TDengine 基本 2s 左右就能返回给页面进行渲染。写入和查询速度比 OpenTSDB 都还高一个级别。”
  业务背景 万朗智水水环境综合治理运维系统需要对截流井设备中的液位、电流、硫化氢等进行监测,并通过 PLC 程序进行自动化管理设备的启停与报警短信推送。系统前期版本使用了 MySQL 来存储设备上报数据。但接入系统的设备量日益增长、用户对数据实时性反馈的要求也越来越高,MySQL已经无法满足业务需求——随着业务在不断扩张,站点在不断增加的情况下,频繁的跨表操作 MySQL 查询出现了延时甚至超时死锁的情况。随后在数据库调研中,万朗智水发现将设备数据转移到时序数据库(Time Series Database) TDengine 中存储是个更好的解决方案。   数据传输路径 传感器采集的信息通过 MQTT 协议传到网关,网关收集到信息后会定时推送到业务后台服务,由服务层来做数据存储和实时分析。设备运行业务数据放在 MySQL 中,液位、电流频率、硫化氢、雨量物联网数据则存储在 TDengine 中。 点击案例查看更多技术细节

结语

从以上案例不难看出,在智慧水务场景下,面对不断增长的设备数量、庞大的时序数据处理需求,专业的时序数据库显然比传统数据库解决方案效果更加明显,不管是在写入还是查询抑或是存储上都有很大改善,资源开销成本也变得更低。如果你有同样的困扰,欢迎添加小T vx:tdengine1,我们会邀请你进入TDengine 用户交流群,和志同道合的研发小伙伴共同解决数据难题。  
 

标签:架构,TDengine,整改,写入,查询,MySQL,数据,水务
From: https://www.cnblogs.com/taosdata/p/17435471.html

相关文章

  • SimpleAdmin手摸手教学之:项目架构设计2.1
    一、说明在2.0的架构设计中引用了插件式开发的概念,将功能模块插件化,以实现更清晰的目录结构,更灵活的解决方案,减少代码的臃肿性。随着2.0版本的使用,也随之暴露出一些问题,之前讲究的插件化并没有完全的实现插件化,我理想的插件化应该是需要某个业务或者功能模块,直接引用该项目既可,不......
  • 如何在架构活动中持续创造价值
    架构活动的四个核心角色,分别是决策者、赞助者、执行者和架构师。架构师的作用贯穿架构活动的整个过程,是架构活动的设计者、规划者和执行保障者。一般来说,架构活动有八个大节点,依次是环境搭建、目标确认、可行性探索、规划确认、项目启动、阶段交付、项目上线和总结复盘。1、一个大......
  • 【MCA】Java互联网高级架构师马SB
    【MCA】Java互联网高级架构师马SBdownload:3w51xuebccomgRPC云原生微服务开发随着企业信息化建设的不断深入,以及互联网技术的快速发展,微服务架构已经成为当前比较热门的一种架构风格。而gRPC则是一种基于HTTP/2协议的高性能、低延迟的RPC框架,非常适合用于构建微服务。什么是gRPC?gR......
  • 架构活动复盘过程的六个环节
    1、回顾架构活动回顾过程指的是以时间顺序对事实进行多维度的客观描述,包括主要决策的环境、最终的决策,以及由此推演而来的规划。在架构活动的进行过程中,如果一直遵循沉淀知识的建议。那么在这个环节,就不需要做太多的准备工作,只把线上文档中记录的重要决策和相关背景提炼出来即可。......
  • WPF三层架构的搭建
    小编首先来给大家介绍一下,什么是三层架构:三层架构就是为了符合“高内聚,低耦合”思想,把各个功能模块划分为表示层(UI)、业务逻辑层(BLL)和数据访问层(DAL)三层架构,各层之间采用接口相互访问,并通过对象模型的实体类(Model)作为数据传递的载体,不同的对象模型的实体类一般对应于数据库的不同表,......
  • 【Kafka从成神到升仙系列 五】面试官问我 Kafka 生产者的网络架构,我直接开始从源码背
    ......
  • 架构活动复盘前的准备工作
    在进入复盘环节之前,我们需要做一些准备工作:建设复盘氛围:为参与者提供一个安全且平衡的复盘环境。梳理错失的机会点:从公司层面的宏观视角看,错失的最可惜的机会点是什么?提前梳理重大机会点,可以帮助我们控制复盘节奏,避免复盘成为一个裸心会,被一个麦霸引导到他个人的心灵独白中去。设定......
  • 微服务架构基本原理学习笔记(一)
    一、什么是微服务微服务是一种技术架构,通常我们可以把它理解为一组可以相互之间协同工作的应用程序或服务,这些应用程序或服务能够被单独部署到不同的服务器中,并且能够自主运行和维护。微服务技术只是一个名称而已,或许我们在日常工作中已经或多或少在使用其中的一种或几......
  • 01_MySQL基础架构
    01_MySQL基础架构MySQL45讲Note:课程专栏名称:《MySQL实战45讲》课程笔记参考:MYSQL45讲01_基础架构:一条SQL查询语句是如何执行的?一条SQL查询是如何执行的先看一下下面这个图​​我们首先理解一下Mysql的基础架构,理解如果执行一条简单的查询语句,Mysql进行了哪些操作。......
  • 【Kafka从入门到成神系列 一】Kafka基本概述和架构
    ......