西安銳益達風電技術有限公司成立於 2012 年 1 月 4 日,是一家專業化的工業測量儀器系統、機電產品和計算機軟件研發、設計和製造公司,是北京威銳達測控系統有限公司在西安成立的全資子公司。依託大學的科研實力,矢志不渝地從事儀器儀表及測量系統的研究和應用開發,積累了豐富的專業知識和實踐經驗,具有自主開發高端儀器系統和工程實施的完整技術能力。數據庫
爲了適應我國大型風電運營商設備維護管理的需求,破解風電監測技術難題,通過多年艱苦研發,研製了一種具備徹底自主知識產權的網絡化、模塊化、集成化的風電機組狀態監測與故障診斷系統,爲風電機組全生命週期的運行維護管理提供一套完整的解決方案。服務器
威銳達 WindRDS 遠程診斷與運維中心,是以設備健康監測爲核心,實現企業設備全生命週期的健康監測和基於狀態的預知性設備運營維護的管理平臺。網絡
本平臺以多維、豐富的數據爲基礎,結合傳統的診斷分析方法,並充分發揮利用大數據智能化的技術手段,快速及時的發現、分析定位設備運轉及企業運維過程當中的問題,並以流程化、自動化的軟件系統輔助用戶高效的跟蹤、處理問題,目標提高企業設備運維管理的能力,節約運維成本,爲企業創造價值。架構
圖 1:WindRDS 系統交互圖
咱們大部分應用程序數據訪問用的是 MySQL 的協議,TiDB 數據庫完美的支持了 MySQL 的 SQL 語法,咱們現有的應用程序幾乎不用作任何修改,就可直接切換到 TiDB 上使用,而且可以很好的知足咱們的 OLTP 需求和複雜 OLAP 的需求。另外,TiSpark 是創建在 Spark 引擎之上的,Spark 在機器學習領域上仍是比較成熟的。考慮到將來咱們的平臺也會用到機器學習的一些業務應用,綜合上述方面,TiDB + TiSpark 成爲了咱們首選的技術解決方案。運維
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 耗時對比 (越低越好)
從 1 月初測試環境搭建完成到上線,TiDB 穩定運行四個多月,平均 QPS 穩定在數千。TiDB 在性能、可用性、穩定性上徹底超出了咱們的預期。
因爲前期咱們對 TiDB 的瞭解還不深,在此遷移期間碰到的一些兼容性的問題,簡單列舉以下:
以上問題諮詢 TiDB 的工程師後,很快的獲得瞭解決,很是感謝 TiDB 團隊的支持以及快速響應。
另外,在使用 TiDB 1.0 版本的過程當中咱們也遇到過以下問題:
以上問題再升級到 TiDB 2.0 版本後解決,諮詢 TiDB 官方團隊答覆以下:
咱們對 TiDB 愈來愈瞭解,後續咱們計劃對 TiDB 進行大規模推廣使用,具體包括:
最終經過 TiDB 造成一個同時兼容分析型和事務型(HTAP)的統一數據庫平臺解決方案。
做者介紹:郭凱樂,應用軟件工程師,從公司成立入職工做至今共 6 年半時間,起初主要負責公司的應用系統的服務器端程序的設計開發,對於公司的核心業務及系統架構很是熟悉。2015 年到 2016 年,主持開發了基於規則的智能診斷系統(專家系統),該系統的開發,使自身對於專家系統有了深入的瞭解和認識,並積累了豐富的經驗,成爲該領域的資深工程師。2016 年第至今,參與公司大數據平臺項目的研發,該項目主要是圍繞着大數據、工業物聯網及分佈式系統進行一些方法、中間件及解決方案的一些研究,而做者自己參與該項目關於數據的接入及治理方法及方案的研究工做,過程當中對於數據接入融合及數據治理所面臨的問題、痛點深有體會,積累了豐富經驗及心得。