摘要:選型指標(biāo)支持容量及性能的水平彈性擴縮支持對使用協(xié)議的應(yīng)用程序的便捷穩(wěn)定的遷移,無需修改程序滿足業(yè)務(wù)故障自恢復(fù)的高可用,且易維護強一致的分布式事務(wù)處理支持,可支撐機器學(xué)習(xí)應(yīng)用集群狀態(tài)可視化監(jiān)控,方便運行維護。
?公司簡介??
西安銳益達風(fēng)電技術(shù)有限公司成立于 2012 年 1 月 4 日,是一家專業(yè)化的工業(yè)測量儀器系統(tǒng)、機電產(chǎn)品和計算機軟件研發(fā)、設(shè)計和制造公司,是北京威銳達測控系統(tǒng)有限公司在西安成立的全資子公司。依托大學(xué)的科研實力,矢志不渝地從事儀器儀表及測量系統(tǒng)的研究和應(yīng)用開發(fā),積累了豐富的專業(yè)知識和實踐經(jīng)驗,具備自主開發(fā)高端儀器系統(tǒng)和工程實施的完整技術(shù)能力。
為了適應(yīng)我國大型風(fēng)電運營商設(shè)備維護管理的需求,破解風(fēng)電監(jiān)測技術(shù)難題,經(jīng)過多年艱苦研發(fā),研制了一種具有完全自主知識產(chǎn)權(quán)的網(wǎng)絡(luò)化、模塊化、集成化的風(fēng)電機組狀態(tài)監(jiān)測與故障診斷系統(tǒng),為風(fēng)電機組全生命周期的運行維護管理提供一套完整的解決方案。
業(yè)務(wù)描述威銳達 WindRDS 遠程診斷與運維中心,是以設(shè)備健康監(jiān)測為核心,實現(xiàn)企業(yè)設(shè)備全生命周期的健康監(jiān)測和基于狀態(tài)的預(yù)知性設(shè)備運營維護的管理平臺。
本平臺以多維、豐富的數(shù)據(jù)為基礎(chǔ),結(jié)合傳統(tǒng)的診斷分析方法,并充分發(fā)揮利用大數(shù)據(jù)智能化的技術(shù)手段,快速及時的發(fā)現(xiàn)、分析定位設(shè)備運轉(zhuǎn)及企業(yè)運維過程中的問題,并以流程化、自動化的軟件系統(tǒng)輔助用戶高效的跟蹤、處理問題,目標(biāo)提升企業(yè)設(shè)備運維管理的能力,節(jié)約運維成本,為企業(yè)創(chuàng)造價值。
圖 1:WindRDS 系統(tǒng)交互圖痛點、選型指標(biāo) 痛點
WindRDS 的數(shù)據(jù)平臺,對于數(shù)據(jù)的存儲當(dāng)前選用流行的 MySQL 數(shù)據(jù)庫,面對每年 T 級的數(shù)據(jù)增長量,以及隨著數(shù)據(jù)量的快速增長導(dǎo)致訪問性能的急劇下降,目前也只是通過傳統(tǒng)的分表、分庫等解決方案進行優(yōu)化,但性能提升未達到預(yù)期,且后續(xù)維護升級復(fù)雜麻煩,不能很好的滿足存儲和性能彈性水平擴展的需求。
本項目同時具有 OLTP 和 OLAP 應(yīng)用需求,也曾設(shè)計構(gòu)建混合型的數(shù)據(jù)存儲方案(MySQL+ HDFS + Hive + Kylin + HBase + Spark),功能上可同時滿足 OLTP 和 OLAP 應(yīng)用需求,但問題也很明顯,如:
要滿足一定程度的實時在線分析,還需要做一些數(shù)據(jù)遷移同步工作,需要開發(fā)實時同步 ETL 中間件,實時從存儲事務(wù)數(shù)據(jù)的關(guān)系數(shù)據(jù)庫向存儲面向分析的 Hive、HBase 數(shù)據(jù)庫同步數(shù)據(jù),實時性及可靠性不能保證;
對于基于 SQL 數(shù)據(jù)訪問的應(yīng)用程序的切換到該數(shù)據(jù)平臺構(gòu)成很大挑戰(zhàn),應(yīng)用程序的數(shù)據(jù)訪問層都需要進行修改適配,工作量大,切換成本高;
對于面向大數(shù)據(jù)的的分布式數(shù)據(jù)庫產(chǎn)品(Hive、HBase 等)投入成本高且維護復(fù)雜,容易出錯,可維護性差。
選型指標(biāo)支持容量及性能的水平彈性擴縮;
支持對使用 MySQL 協(xié)議的應(yīng)用程序的便捷穩(wěn)定的遷移,無需修改程序;
滿足業(yè)務(wù)故障自恢復(fù)的高可用,且易維護;
強一致的分布式事務(wù)處理;
支持 Spark,可支撐機器學(xué)習(xí)應(yīng)用;
集群狀態(tài)可視化監(jiān)控,方便運行維護。
我們大部分應(yīng)用程序數(shù)據(jù)訪問用的是 MySQL 的協(xié)議,TiDB 數(shù)據(jù)庫完美的支持了 MySQL 的 SQL 語法,我們現(xiàn)有的應(yīng)用程序幾乎不用做任何修改,就可直接切換到 TiDB 上使用,并且能夠很好的滿足我們的 OLTP 需求和復(fù)雜 OLAP 的需求。另外,TiSpark 是建立在 Spark 引擎之上的,Spark 在機器學(xué)習(xí)領(lǐng)域上還是比較成熟的。考慮到未來我們的平臺也會用到機器學(xué)習(xí)的一些業(yè)務(wù)應(yīng)用,綜合上述方面,TiDB + TiSpark 成為了我們首選的技術(shù)解決方案。
TiDB 上線前測試TiDB 在我司的數(shù)據(jù)中心部署的應(yīng)用情況如下:
部署架構(gòu)改造之前,主要用 MySQL 多實例的方式承載 WindRDS 所有的業(yè)務(wù)數(shù)據(jù)存儲和應(yīng)用,隨著數(shù)據(jù)增長,存儲容量接近單機的磁盤極限,單機的磁盤 IO 繁忙且易阻塞,查詢性能難以滿足業(yè)務(wù)增長的需求。數(shù)據(jù)量大了以后,傳統(tǒng)的 MySQL 水平擴展能力弱,性能和穩(wěn)定性容易產(chǎn)生問題,現(xiàn)有傳統(tǒng)關(guān)系數(shù)據(jù)庫已不能滿足業(yè)務(wù)的擴展和應(yīng)用,已成為制約業(yè)務(wù)發(fā)展的瓶頸。
而為了滿足大數(shù)據(jù)可視化 BI 分析、機器學(xué)習(xí)的 OLAP 場景,選用了多種數(shù)據(jù)中間件產(chǎn)品 HBase、Hive、Kylin 及 Spark 進行組合,形成一個復(fù)雜的多種數(shù)據(jù)中間件產(chǎn)品混合型集群,一定程度滿足了 OLAP 的需求,但不同的產(chǎn)品之間存在資源爭搶和制約,集群非常難于維護,非一步到位的最佳方案。
圖 2:改造前 WindRDS 系統(tǒng)架構(gòu)
改造之后,TiDB + TiSpark 的解決方案,解決了之前方案的不足,系統(tǒng)數(shù)據(jù)中間件產(chǎn)品種類簡化,OLTP + OLAP 一攬子解決方案,系統(tǒng)數(shù)據(jù)存儲和查詢計算集群結(jié)構(gòu)簡單,較少人工參與系統(tǒng)節(jié)點維護,降低運維復(fù)雜度,是一個比較理想的解決方案。
圖 3:改造后 WindRDS 部署架構(gòu)測試集群配置
TiDB 測試集群總體配置如下:
TiSpark 測試集群總體配置如下:
我們使用 TiDB 1.0 版本搭建測試集群,然后我們進行了簡單的查詢性能測試,我們對 WindRDS 的 5 種類型的數(shù)據(jù)進行查詢測試,從業(yè)務(wù)應(yīng)用中選擇了針對每種數(shù)據(jù)類型的耗時、復(fù)雜的關(guān)聯(lián) SQL 語句,分別在 MySQL 上和 TiDB 上進行執(zhí)行,多次執(zhí)行取平均值,如下圖所示,明顯的,TiDB 的響應(yīng)時間要小于 MySQL,可見 TiDB 的查詢性在我們業(yè)務(wù)模型中表現(xiàn)明顯優(yōu)于 MySQL 。
圖 4:測試數(shù)據(jù)關(guān)鍵操作對比 MySQL vs TiDB
圖 5:測試數(shù)據(jù)關(guān)鍵操作 MySQL vs TiDB 耗時對比 (越低越好)TiDB 上線
從 1 月初測試環(huán)境搭建完成到上線,TiDB 穩(wěn)定運行四個多月,平均 QPS 穩(wěn)定在數(shù)千。TiDB 在性能、可用性、穩(wěn)定性上完全超出了我們的預(yù)期。
測試及上線過程中的一些問題由于前期我們對 TiDB 的了解還不深,在此遷移期間碰到的一些兼容性的問題,簡單列舉如下:
比如 TiDB 的自增 ID 的機制;
表外鍵級聯(lián)機制;
排序的時候需要使用字段名等。
以上問題咨詢 TiDB 的工程師后,很快的得到了解決,非常感謝 TiDB 團隊的支持以及快速響應(yīng)。
另外,在使用 TiDB 1.0 版本的過程中我們也遇到過如下問題:
集群中某個 TiKV 節(jié)點的 SSD 滿了,但是集群不認(rèn)為滿了,繼續(xù)要求該節(jié)點寫入數(shù)據(jù),導(dǎo)致進程宕機。
集群中任何一個節(jié)點 IO 能力下降,都會導(dǎo)致整個集群若依賴他的操作都受到影響,因此,該分布式的數(shù)據(jù)庫等組件,雖然提高了性能和擴展性,但是維護也一樣比較棘手,任何瓶頸,都有可能拉低整個集群的性能。
以上問題再升級到 TiDB 2.0 版本后解決,咨詢 TiDB 官方團隊答復(fù)如下:
第一個問題,在 TiDB 2.0 版本有對應(yīng)的優(yōu)化,TiDB 在空間不足時會根據(jù)剩余空間進行調(diào)度,降低此問題發(fā)生的概率。
第二個問題,TiDB 2.0 版本會充分考慮機器負載,響應(yīng)時間等維度進行調(diào)度,盡可能避免單點成為整個系統(tǒng)的瓶頸。
后續(xù)和展望我們對 TiDB 越來越了解,后續(xù)我們計劃對 TiDB 進行大規(guī)模推廣使用,具體包括:
公司后續(xù)關(guān)于風(fēng)電領(lǐng)域大數(shù)據(jù)中心的開發(fā)建設(shè),考慮選型 TiDB 作為數(shù)據(jù)存儲,并推薦給我們的合作客戶。
公司 WindRDS、WindCMS 等既有應(yīng)用系統(tǒng)將考慮逐步切換到 TiDB 上來。
WindRDS 后續(xù)關(guān)于大數(shù)據(jù)多維度可視化分析、專家系統(tǒng)及機器學(xué)習(xí)等應(yīng)用功能的開發(fā),對于數(shù)據(jù)的存儲和查詢應(yīng)用,計劃選用 TiDB + TiSpark 進行底層中間件的支持。
最終通過 TiDB 形成一個同時兼容分析型和事務(wù)型(HTAP)的統(tǒng)一數(shù)據(jù)庫平臺解決方案。
作者介紹:郭凱樂,應(yīng)用軟件工程師,從公司成立入職工作至今共 6 年半時間,起初主要負責(zé)公司的應(yīng)用系統(tǒng)的服務(wù)器端程序的設(shè)計開發(fā),對于公司的核心業(yè)務(wù)及系統(tǒng)架構(gòu)非常熟悉。2015 年到 2016 年,主持開發(fā)了基于規(guī)則的智能診斷系統(tǒng)(專家系統(tǒng)),該系統(tǒng)的開發(fā),使自身對于專家系統(tǒng)有了深刻的了解和認(rèn)識,并積累了豐富的經(jīng)驗,成為該領(lǐng)域的資深工程師。2016 年第至今,參與公司大數(shù)據(jù)平臺項目的研發(fā),該項目主要是圍繞著大數(shù)據(jù)、工業(yè)物聯(lián)網(wǎng)及分布式系統(tǒng)進行一些方法、中間件及解決方案的一些研究,而作者本身參與該項目關(guān)于數(shù)據(jù)的接入及治理方法及方案的研究工作,過程中對于數(shù)據(jù)接入融合及數(shù)據(jù)治理所面臨的問題、痛點深有體會,積累了豐富經(jīng)驗及心得。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/17759.html
閱讀 1075·2021-10-14 09:42
閱讀 1368·2021-09-22 15:11
閱讀 3284·2019-08-30 15:56
閱讀 1242·2019-08-30 15:55
閱讀 3611·2019-08-30 15:55
閱讀 888·2019-08-30 15:44
閱讀 2027·2019-08-29 17:17
閱讀 2070·2019-08-29 15:37