<input id="eggkk"></input>
  • <input id="eggkk"><samp id="eggkk"></samp></input>
  • 首頁 > IT業界 > 正文

    中國郵政郵科院 X DorisDB:統一OLAP平臺,大幅降低運維成本

    2021-08-19 17:28:19  來源:

    摘要: 郵政科學研究規劃院有限公司(以下簡稱“郵科院”),作為中國郵政集團有限公司的科研智庫單位,專注于戰略規劃、企業管理、工程設計、物流裝備、智能終端、質量檢測、標準化研究等領域,在助力中國郵政戰略轉型和經營發展中發揮著重要支撐作用。
    關鍵詞: 中國郵政
     郵政科學研究規劃院有限公司(以下簡稱“郵科院”),作為中國郵政集團有限公司的科研智庫單位,專注于戰略規劃、企業管理、工程設計、物流裝備、智能終端、質量檢測、標準化研究等領域,在助力中國郵政戰略轉型和經營發展中發揮著重要支撐作用。
      郵科院數據組負責全院大數據體系架構的建設,支撐日常BI運營分析、科研數據產品、物流數據、網點畫像等業務場景。郵科院數據組通過使用DorisDB,統一了實時和離線的分析場景,替換了ClickHouse、Presto、MySQL等系統,解決了原有多套系統帶來的運維和使用復雜性,簡化了數據ETL流程,同時大幅提升OLAP、Adhoc等場景的查詢效率。本文主要介紹郵科院數據組基于新一代極速全場景MPP數據庫DorisDB,在數據服務體系和數據應用場景中的實踐和探索。
      “作者:謝翔 郵政科學研究規劃院有限公司寄遞研究所數據組負責人,專注于數倉建設、數據分析等領域研究。”
      一、業務背景
      隨著科研數據積累越來越大,數據規模和體量也急劇膨脹??蒲械脑紨祿ǔ碓从谘袌蟪槿?、日志埋點文件、業務數據庫、三方接口等。過去通?;贑DH/Hadoop等大數據分布式計算框架和數據集成工具,構建離線的數據倉庫,并對數據進行適當的分層、建模、加工和管理,構建各類分析主題。郵科院數據體系中沉淀了諸多研報主題數據,例如:電商流量數據,物流企業財務數據,行業報告相關的數據等。
      上層數據應用對查詢的響應延遲和時效性要求高,會將數據通過數據同步工具同步到MySQL、ElasticSearch、Presto、HBase、ClickHouse等數據庫系統中,來支撐上層數據應用的查詢要求。
      郵科院的大數據總體架構如下圖所示,從下到上可以分為數據接入層、數據計算層、數據服務層和數據應用層。
    \
      數據計算層使用科研工作各分析場景下產生的模型/方案/業務的明細數據,進行離線數據計算,對TB級別的明細數據進行調度、聚合、計算,在數倉里沉淀出大量明細表、聚合表和最終的數據報表。
      數據計算層生成的各類數據表,會同步到數據服務層,由數據服務層提供接口給數據應用層使用,滿足不同的數據業務需求。
      二、業務痛點
      數據服務層的愿景是開放數倉能力,建立統一的數據服務出口,針對不同的數據業務分析場景(數據規模、QPS、UDF支持、運維成本等),原有架構在底層使用了不同的查詢引擎:
      ·大數據量、低QPS:使用Hive、Presto、ClickHouse等基于Hadoop生態的離線批任務計算框架和MPP數據庫來解決。
      ·小數據量、高QPS:使用MySQL、ElasticSearch、HBase、MongoDB等關系型/非關系型數據庫來解決。
      使用多套查詢引擎,我們遇到如下問題和挑戰:
      ·離線/實時ETL任務過多,處理邏輯大部分為簡單聚合/去重,聚合表數量龐大,導致運營和運維上的成本增加;
      ·針對中等數據量、中等QPS的查詢場景,如何能兼顧數據規模的同時,有較友好的查詢響應延遲;
      ·大數據量下插入、更新的實時數據場景無法得到支持,例如:網點畫像、實時數據導入、郵路路徑、研報數據匯總等。
      三、OLAP引擎選型
      針對如上的問題和挑戰,我們的目標是尋求盡可能少的OLAP引擎,利用在明細表上現場計算來解決ETL任務、數倉表過多問題,同時需要兼顧在數據規模、查詢QPS、響應耗時、查詢場景方面的權衡。
      目前市面上OLAP引擎百花齊放,諸如Impala、Druid、ClickHouse、DorisDB。經過一番調研,我們最終選擇了DorisDB。DorisDB是基于MPP架構的分析型數據庫,自帶數據存儲,整合了大數據框架的優勢,支持主鍵更新、支持現代化物化視圖、支持高并發和高吞吐的即席查詢等諸多優點,天然能解決我們上述的問題。
    \
      四、DorisDB應用實踐
      DorisDB已經投入生產環境,主要作為離線/實時數據的OLAP數據庫使用。離線數據主要存儲于HDFS中,通過DataX任務批量同步數據到DorisDB;另一部分實時數據主要存儲于Kafka中,使用DorisDB的routine load功能實時將數據從kafka寫入到DorisDB。
      在沒有引入DorisDB之前,我們使用的底層引擎是MySQL、Presto on HDFS和ClickHouse等系統,對明細表/聚合表進行查詢。這幾種方式都存在著不少問題:
      ·MySQL處理上億規模的數據,無論使用分庫分表、分區表、集群化部署的PolarDB方案,都會存在慢查詢、數據庫扛不住、運維困難的窘境;
      ·Presto on HDFS的方案更偏向于分析型數據業務,雖然能存儲海量的數據,計算能力不錯,唯一致命的在于無法滿足在線業務的高吞吐QPS,查詢比較難做到毫秒級。
      ·ClickHouse對Join支持較弱,通常使用大寬表建模,不夠靈活,另外運維也比較復雜。
      ·在引入DorisDB替換MySQL、Presto和ClickHouse后,DorisDB帶來的業務效果如下:
      ·支撐了在線報表查詢+數據分析業務,服務于對內運營+對外行業分析的數據產品,報表業務查詢大部分耗時在毫秒級別,分析型業務查詢大部分耗時在秒級別;
      ·支持10億規模的明細表查詢,月、季、年等維度統計數據現場算聚合統計、精準去重等,查詢耗時都能控制在500ms以內;
      ·千萬級別的多表的Join和union查詢,經過Colocate Join特性優化,查詢響應在秒級。
      另外,我們還將DorisDB應用到實時數據分析場景,DorisDB在實時數據分析主要有如下優勢:
      ·實時寫入性能:目前DorisDB支持HTTP方式的Stream Load,可以自定義的分鐘級別微批寫入,以及Routine Load功能,可以將Kafka的數據實時同步到DorisDB中,滿足當前實時數據分析業務;
      ·統一離線和實時分析:實時數據和離線數據更好的在DorisDB中進行融合,靈活支撐應用,數據存儲策略通過DorisDB動態分區的功能進行自動管理;
      ·SQL Online Serving:高效的SQL即席查詢能力,能夠兼容業界標準的SQL規范,支撐業務靈活復雜的訪問,提高取數開發的效率。
      五、總結和規劃
      郵科院數據組引入DorisDB生產集群,解決了數據服務層單表億級別規模、高QPS數據場景下引擎的空白,直接開放明細表準實時查詢的能力,給各項目組上層數據業務和BI系統提供了更多的選擇和自由度,同時將大大減少數倉中大量ETL任務、聚合表、報表,降低了數倉ETL的運維壓力和維護成本,DorisDB綜合性價比較原有的MySQL、Presto、ClickHouse等同類產品提升數倍以上。
      未來,郵科院在DorisDB的應用和實踐上還有不少規劃:
      ·除了unique和duplicate數據模型,未來會將符合的數據場景遷移至aggregation模型,并使用物化視圖,進一步降低數倉開發維護成本,降低查詢延遲;
      ·DorisDB on ES的功能也值得我們深挖和探索,解決原生ES集群無法支持跨索引Join的能力;
      ·更多數據應用層的場景接入DorisDB,例如網點畫像服務、郵路路徑分析等,將進一步拓展DorisDB在實時數據寫入、批量數據更新場景中的應用;
      ·與科研數據分析平臺、數倉平臺深度打通,完善數據整體架構,作為數據團隊的基礎設施去保障穩定性和服務;
      ·考慮使用多云架構,自主可控的數倉架構可以靈活的在多云間切換遷移,降低單一云廠商的依賴,控制成本提高可用性。
      ·......
      最后的最后,感謝DorisDB技術團隊給予的熱情、靠譜的答疑解惑和技術支持?。?!

    第三十三屆CIO班招生
    北達軟EXIN網絡空間與IT安全基礎認證培訓
    北達軟EXIN DevOps Professional認證培訓
    責編:baxuedong

    免責聲明:本網站(http://www.liqingmei.com/)內容主要來自原創、合作媒體供稿和第三方投稿,凡在本網站出現的信息,均僅供參考。本網站將盡力確保所提供信息的準確性及可靠性,但不保證有關資料的準確性及可靠性,讀者在使用前請進一步核實,并對任何自主決定的行為負責。本網站對有關資料所引致的錯誤、不確或遺漏,概不負任何法律責任。
    本網站刊載的所有內容(包括但不僅限文字、圖片、LOGO、音頻、視頻、軟件、程序等)版權歸原作者所有。任何單位或個人認為本網站中的內容可能涉嫌侵犯其知識產權或存在不實內容時,請及時通知本站,予以刪除。