TiDB 在威锐达 WindRDS 远程诊断及运维中心的应用
## 公司简介
西安锐益达风电技术有限公司成立于 2012 年 1 月 4 日,是一家专业化的工业测量仪器系统、机电产品和计算机软件研发、设计和制造公司,是北京威锐达测控系统有限公司在西安成立的全资子公司。依托大学的科研实力,矢志不渝地从事仪器仪表及测量系统的研究和应用开发,积累了丰富的专业知识和实践经验,具备自主开发高端仪器系统和工程实施的完整技术能力。
为了适应我国大型风电运营商设备维护管理的需求,破解风电监测技术难题,经过多年艰苦研发,研制了一种具有完全自主知识产权的网络化、模块化、集成化的风电机组状态监测与故障诊断系统,为风电机组全生命周期的运行维护管理提供一套完整的解决方案。
业务描述
威锐达 WindRDS 远程诊断与运维中心,是以设备健康监测为核心,实现企业设备全生命周期的健康监测和基于状态的预知性设备运营维护的管理平台。
本平台以多维、丰富的数据为基础,结合传统的诊断分析方法,并充分发挥利用大数据智能化的技术手段,快速及时的发现、分析定位设备运转及企业运维过程中的问题,并以流程化、自动化的软件系统辅助用户高效的跟踪、处理问题,目标提升企业设备运维管理的能力,节约运维成本,为企业创造价值。
图 1:WindRDS 系统交互图
痛点、选型指标
痛点
WindRDS 的数据平台,对于数据的存储当前选用流行的 MySQL 数据库,面对每年 T 级的数据增长量,以及随着数据量的快速增长导致访问性能的急剧下降,目前也只是通过传统的分表、分库等解决方案进行优化,但性能提升未达到预期,且后续维护升级复杂麻烦,不能很好的满足存储和性能弹性水平扩展的需求。
本项目同时具有 OLTP 和 OLAP 应用需求,也曾设计构建混合型的数据存储方案(MySQL+ HDFS + Hive + Kylin + HBase + Spark),功能上可同时满足 OLTP 和 OLAP 应用需求,但问题也很明显,如:
要满足一定程度的实时在线分析,还需要做一些数据迁移同步工作,需要开发实时同步 ETL 中间件,实时从存储事务数据的关系数据库向存储面向分析的 Hive、HBase 数据库同步数据,实时性及可靠性不能保证;
对于基于 SQL 数据访问的应用程序的切换到该数据平台构成很大挑战,应用程序的数据访问层都需要进行修改适配,工作量大,切换成本高;
对于面向大数据的的分布式数据库产品(Hive、HBase 等)投入成本高且维护复杂,容易出错,可维护性差。
选型指标
支持容量及性能的水平弹性扩缩;
支持对使用 MySQL 协议的应用程序的便捷稳定的迁移,无需修改程序;
满足业务故障自恢复的高可用,且易维护;
强一致的分布式事务处理;
支持 Spark,可支撑机器学习应用;
集群状态可视化监控,方便运行维护。
我们大部分应用程序数据访问用的是 MySQL 的协议,TiDB 数据库完美的支持了 MySQL 的 SQL 语法,我们现有的应用程序几乎不用做任何修改,就可直接切换到 TiDB 上使用,并且能够很好的满足我们的 OLTP 需求和复杂 OLAP 的需求。另外,TiSpark 是建立在 Spark 引擎之上的,Spark 在机器学习领域上还是比较成熟的。考虑到未来我们的平台也会用到机器学习的一些业务应用,综合上述方面,TiDB + TiSpark 成为了我们首选的技术解决方案。
TiDB 上线前测试
TiDB 在我司的数据中心部署的应用情况如下:
部署架构
改造之前,主要用 MySQL 多实例的方式承载 WindRDS 所有的业务数据存储和应用,随着数据增长,存储容量接近单机的磁盘极限,单机的磁盘 IO 繁忙且易阻塞,查询性能难以满足业务增长的需求。数据量大了以后,传统的 MySQL 水平扩展能力弱,性能和稳定性容易产生问题,现有传统关系数据库已不能满足业务的扩展和应用,已成为制约业务发展的瓶颈。
而为了满足大数据可视化 BI 分析、机器学习的 OLAP 场景,选用了多种数据中间件产品 HBase、Hive、Kylin 及 Spark 进行组合,形成一个复杂的多种数据中间件产品混合型集群,一定程度满足了 OLAP 的需求,但不同的产品之间存在资源争抢和制约,集群非常难于维护,非一步到位的最佳方案。
图 2:改造前 WindRDS 系统架构
改造之后,TiDB + TiSpark 的解决方案,解决了之前方案的不足,系统数据中间件产品种类简化,OLTP + OLAP 一揽子解决方案,系统数据存储和查询计算集群结构简单,较少人工参与系统节点维护,降低运维复杂度,是一个比较理想的解决方案。
图 3:改造后 WindRDS 部署架构
测试集群配置
TiDB 测试集群总体配置如下:
TiSpark 测试集群总体配置如下:
测试数据查询性能对比
我们使用 TiDB 1.0 版本搭建测试集群,然后我们进行了简单的查询性能测试,我们对 WindRDS 的 5 种类型的数据进行查询测试,从业务应用中选择了针对每种数据类型的耗时、复杂的关联 SQL 语句,分别在 MySQL 上和 TiDB 上进行执行,多次执行取平均值,如下图所示,明显的,TiDB 的响应时间要小于 MySQL,可见 TiDB 的查询性在我们业务模型中表现明显优于 MySQL 。
图 4:测试数据关键操作对比 MySQL vs TiDB 图 5:测试数据关键操作 MySQL vs TiDB 耗时对比 (越低越好)
TiDB 上线
从 1 月初测试环境搭建完成到上线,TiDB 稳定运行四个多月,平均 QPS 稳定在数千。TiDB 在性能、可用性、稳定性上完全超出了我们的预期。
测试及上线过程中的一些问题
由于前期我们对 TiDB 的了解还不深,在此迁移期间碰到的一些兼容性的问题,简单列举如下:
比如 TiDB 的自增 ID 的机制;
表外键级联机制;
排序的时候需要使用字段名等。
以上问题咨询 TiDB 的工程师后,很快的得到了解决,非常感谢 TiDB 团队的支持以及快速响应。
另外,在使用 TiDB 1.0 版本的过程中我们也遇到过如下问题:
集群中某个 TiKV 节点的 SSD 满了,但是集群不认为满了,继续要求该节点写入数据,导致进程宕机。
集群中任何一个节点 IO 能力下降,都会导致整个集群若依赖他的操作都受到影响,因此,该分布式的数据库等组件,虽然提高了性能和扩展性,但是维护也一样比较棘手,任何瓶颈,都有可能拉低整个集群的性能。
以上问题再升级到 TiDB 2.0 版本后解决,咨询 TiDB 官方团队答复如下:
第一个问题,在 TiDB 2.0 版本有对应的优化,TiDB 在空间不足时会根据剩余空间进行调度,降低此问题发生的概率。
第二个问题,TiDB 2.0 版本会充分考虑机器负载,响应时间等维度进行调度,尽可能避免单点成为整个系统的瓶颈。
后续和展望
我们对 TiDB 越来越了解,后续我们计划对 TiDB 进行大规模推广使用,具体包括:
公司后续关于风电领域大数据中心的开发建设,考虑选型 TiDB 作为数据存储,并推荐给我们的合作客户。
公司 WindRDS、WindCMS 等既有应用系统将考虑逐步切换到 TiDB 上来。
WindRDS 后续关于大数据多维度可视化分析、专家系统及机器学习等应用功能的开发,对于数据的存储和查询应用,计划选用 TiDB + TiSpark 进行底层中间件的支持。
最终通过 TiDB 形成一个同时兼容分析型和事务型(HTAP)的统一数据库平台解决方案。
作者介绍:郭凯乐,应用软件工程师,从公司成立入职工作至今共 6 年半时间,起初主要负责公司的应用系统的服务器端程序的设计开发,对于公司的核心业务及系统架构非常熟悉。2015 年到 2016 年,主持开发了基于规则的智能诊断系统(专家系统),该系统的开发,使自身对于专家系统有了深刻的了解和认识,并积累了丰富的经验,成为该领域的资深工程师。2016 年第至今,参与公司大数据平台项目的研发,该项目主要是围绕着大数据、工业物联网及分布式系统进行一些方法、中间件及解决方案的一些研究,而作者本身参与该项目关于数据的接入及治理方法及方案的研究工作,过程中对于数据接入融合及数据治理所面临的问题、痛点深有体会,积累了丰富经验及心得。
TiDB 在威锐达 WindRDS 远程诊断及运维中心的应用相关推荐
- UML及需求建模(智慧水电站运维中心技术博客)
1.项目名称 智能水电站运行维护系统 2.项目背景 近年来,水力发电站的建设规模正在不断扩大.水力发电不仅能够减少对环境造成的污染,还能减少对不可再生资源的耗费.我国水电站的装机容量日益增加,但与此同 ...
- 运维中心建设--数据管理
1.数据管理总体设计 1) 基础数据: 有哪些设备.设备在哪里.设备外观信息.设备功能性能信息等物理信息 2) 系统数据: 设备什么用途,在运行什么,用户/服务/等管理数据 3 ...
- 运维中心建设--服务台建设一期
本期建设事件管理,含问题管理.知识管理.监控管理.报表管理的部分内容,通过流程串联部门内基础工作,明确职能职责:提高处理事务效率.解决问题的质量. 1.总体设计 2.工单生成 2.1 监控工 ...
- 智慧城市运维中心——智慧纽约
如今,智慧之城的浪潮席卷全球,我国已有几百个城市提出建设智慧城市,而可视化系统是智慧城市建设成果和价值的集中体现,可视化让智慧城市变得可知可感. 本文以"纽约曼哈顿岛"为例,以纽约 ...
- 大数据开发套件—调度运维常见问题
我们在进行大数据开发过程中,会遇到各种问题,本文将定期收集整理一些在使用阿里云数加 大数据开发套件 时遇到的常见问题,供大家参考~ Q. 如果之前提交的任务修改后再次提交,是否会影响当天的任务调度? ...
- mysql 触发器不能同时 insert or update or delete_运维日记|SQL server 那点事——DML触发器...
11月19日,21点,小编正六指霸屏,决赛圈1V4,忽然,电话响了,这种感觉很熟悉,不错,上次差点推掉对面水晶的那一幕又上演了--作为一名美创的员工,客户才是第一位,我毫不犹豫的摁下了接听键. X ...
- 数据中心的运维管理原则(二)
随着大数据分析以及人工智能技术的应用,使得数据呈现爆发式增长,这也促使了数据中心的数量和规模成几何倍数增长.相信在数据中心基础设施部门运维工作者,应该都能体会到设备对运行环境要求苛刻,试想一下,在一个 ...
- oracle最新版本是多少_运维日记|关于Oracle的补丁你需要知道的事
各位新朋友-记得先点蓝字关注我哦- 之前一起熟悉了Oracle数据库的软件版本,服务周期,今天我们一起来了解下,Oracle发布的基础版本之上,常说的补丁到底是什么,有什么分类,经历了怎样的迭代. c ...
- sqlserver 触发器 update_运维日记| SQL server 那点事——DML触发器
各位新朋友-记得先点蓝字关注我哦- 11月19日,21点,小编正六指霸屏,决赛圈1V4,忽然,电话响了,这种感觉很熟悉,不错,上次差点推掉对面水晶的那一幕又上演了--作为一名美创的员工,客户才是第一位 ...
最新文章
- 长知识啦!字符也可以作为下标!_只愿与一人十指紧扣_新浪博客
- tomcat 7/8 启动非常慢的解决方法
- C++中类的多态与虚函数的使用
- 【opencv系列05】OpenCV4.X鼠标回调函数
- Python 代码便利并行,这个操作秀啊!
- python日记----2017.8.1
- 关于Element UI中页面样式小问题
- 百度开撕离职前高管:侵犯商业机密索赔 5000 万!
- zynq开发系列2:GPIO连接MIO控制LED闪烁
- python学习浅谈(python2.x以及python3.x的区别、IDE)
- ppt复制切片器_切片器? 听说比筛选好用100倍
- 如何用excel做正交分析_excel表格分析正交数据处理-excel中怎么对正交试验进行F值检验...
- 计算机合成图像的过程码,专转本计算机习题
- 注册用户数破亿 平安金管家APP成全球寿险首个过亿应用
- Redis学习笔记(B站狂神说)(自己总结方便复习)
- norflash 分析
- php程序员的自白,程序员考试前的内心独白
- js实现点击图片在屏幕中间弹出放大效果
- 懂得感恩的人,运气都不会太差
- 梦里不知身是客,一晌贪欢。—第五十一天
热门文章
- 学python多长时间能够精通-学Python多长时间?老男孩Python技术培训
- python不想学了-学习 Python 很吃力,我是不是可以放弃编程了?
- php和python交互-PHP与Python进行数据交互
- python脚本实例手机端-python调用adb脚本来实现群控安卓手机初探
- python大学课程-大学只安排了C和Python课程,是否有必要学习一下Java
- python趣味编程10例-达人迷 Python趣味编程10例
- python好学嘛-Python好学吗?Python学习路线
- NVIDIA Jetson Xavier NX上导入tensorflow报错:AttributeError: module ‘wrapt‘ has no attribute ‘ObjectProxy‘
- 光流Optical Flow介绍与OpenCV实现
- redis中的intset