簡介: 本文將會講述共享充電寶開創企業來電科技如何基於 Flink + Hologres 構建統一數據服務加速的實時數倉。數據庫
做者:陳健新,來電科技數據倉庫開發工程師,目前專一於負責來電科技大數據平臺離線和實時架構的整合。安全
深圳來電科技有限公司(如下簡稱 「來電科技」)是共享充電寶行業開創企業,主要業務覆蓋充電寶自助租賃、定製商場導航機開發、廣告展現設備及廣告傳播等服務。來電科技擁有業內立體化產品線,大中小機櫃以及桌面型,目前全國超過 90% 的城市實現業務服務落地,註冊用戶超 2 億人,實現全場景用戶需求。服務器
來電科技大數據平臺的發展歷程主要分爲如下三個階段:架構
1)離散 0.X Greenplum併發
爲何說離散?由於以前沒有一個統一的大數據平臺來支持數據服務,而是由每一個業務開發線自行取數或者作一些計算,並用一個低配版的 Greenplum 離線服務來維持平常的數據需求。框架
2)離線 1.0 EMR運維
以後架構升級爲離線 1.0 EMR,這裏的 EMR 指的是阿里雲由大數據組成的彈性分佈式混合集羣服務,包括 Hadoop、HiveSpark 離線計算等常見組件。編輯器
阿里雲 EMR 主要解決咱們三個痛點:分佈式
3)實時、統一 2.0 Flink + Hologres高併發
當前正經歷的 「Flink + Hologres」 實時數倉,這也是本文分享的核心。它爲咱們大數據平臺帶來了兩個質的改變,一是實時計算,二是統一數據服務。基於這兩點,咱們加速知識數據探索,促進業務快速發展。
總的歸納來講,2.0 版本的大數據平臺提供瞭如下能力:
數據集成
平臺如今支持使用實時或者離線的方式集成業務數據庫或業務數據的日誌。
數據開發
平臺現已支持基於 Spark 的離線計算以及基於 Flink 的實時計算。
數據服務
數據服務主要由兩部分組成:
數據應用
同時平臺能夠直接對接常見的 BI 工具,業務系統也能快速地集成對接。
大數據平臺提供的能力給咱們帶來了很多成就,總結爲如下五點:
橫向擴展
大數據平臺的核心就是分佈式架構,這樣咱們可以低成本地水平擴展存儲或者計算資源。
資源共享
能夠整合全部服務器可用的資源。之前的架構是每一個業務部門本身維護一套集羣,這樣會形成一些浪費,難以保證可靠性,並且運費成本較高,如今由平臺統一調度。
數據共享
整合了業務部門全部的業務數據以及業務日誌等其餘異構數據源數據,由平臺統一清洗對接。
服務共享
數據共享以後就由平臺統一對外輸出服務,各個業務線無需自行重複開發,就能快速獲得平臺提供的數據支撐。
安全保障
由平臺提供統一的安全認證等受權機制,能夠作到對不一樣人進行不一樣程度的細粒度受權,保證數據安全。
隨着業務的快速發展,構建統一的實時數倉迫在眉睫,綜合 0.x、1.0 版本的平臺架構,綜合業務的如今發展和將來趨勢判斷,構建 2.x 版本數據平臺的需求主要集中在如下幾個方面:
實時大屏
實時大屏須要替換舊的準實時大屏,採用更可靠、低延遲的技術方案。
統一數據服務
高性能、高併發和高可用的數據服務成爲企業數字化轉型統一數據門戶的關鍵,須要構建一個統一的數據門戶,統一對外輸出。
實時數倉
數據時效性在企業運營中的重要性日益凸現,須要響應更快更及時。
技術架構主要分爲四個部分,分別是數據 ETL、實時數倉、離線數倉和數據應用。
如上所示,實時數倉和離線數倉有一些類似的地方,只不過少一些其它層的鏈路。
下面的數據流圖能夠具象加深總體架構的規劃和數倉模型總體的數據流向。
從圖中能夠看出,主要分爲三個模塊:
從數據的流入流出看到主要的核心有兩點:
方案執行分爲兩個部分:實時與服務分析。實時方面咱們選擇了阿里雲 Flink 全託管的方式,它主要有如下幾方面優勢:
服務分析方面咱們選擇了阿里雲 Hologres 交互式分析,它帶來了幾點好處:
上圖爲業務實時大屏新舊方案對比。
以訂單爲例,舊方案中的訂單是從訂單從庫經過 DTS 同步到另外一個數據庫,這雖然是實時的,可是在計算與處理這方面,主要是經過定時任務,好比調度間隔時間設爲 1 分鐘或者 5 分鐘來完成數據的實時更新,而銷售層、管理層須要更實時地掌握業務動態,,所以並不能算真正意義上的實時。除此以外,響應慢且不穩定也是很大的問題。
新方案採用的是 Flink 實時計算 + Hologres 架構。
開發方式徹底是能夠利用 Flink 的 SQL 支持,對於咱們以前的 MySQL 計算開發方式,能夠說是一個無縫的遷移,實現快速落地。數據分析和服務統一使用 Hologres。仍是以訂單爲例,好比今日訂單營收額,今日訂單用戶數或者今日訂單用戶量,隨着業務多樣性的增長,可能須要增長城市維度。經過 Hologres 的分析能力,能夠完美支撐營收額、訂單量、訂單用戶數以及城市維度的一些指標作快速展現。
以某塊業務場景爲例,好比量級比較大的業務日誌,日均數據量在 TB 級別。下面先來分析一下舊方案的痛點:
如今經過 2.0 Flink+Hologres 架構,能夠將業務日誌進行改造。
經過 Flink+Hologres 的新方案,咱們支撐了三大場景:
實時大屏
業務層面更高效地迭代多樣化需求,同時下降了開發、運維維護開銷。
統一數據服務
經過一個 HSAP 系統來實現服務/分析一體化,避免數據孤島以及一致性、安全性等問題。
實時數倉
知足企業運營中對於數據時效性愈來愈高的要求,秒級響應。
伴隨着業務的迭代,咱們將來在大數據平臺的規劃主要有兩點:流批一體和完善實時數倉。
經過將來的規劃,咱們但願同 Flink 全託管和 Hologres 一塊兒共建更加完善的實時數倉,但也在此對其有着更近一步的需求:
Flink 全託管中的 SQL 編輯器編寫 FlinkSQL 做業很高效方便,而且也提供了不少常見的 SQL 上下游 Connector 知足開發需求。可是仍有一些需求但願Flink全託管在後續的迭代中支持:
Hologres 不只可以支持高併發地實時寫入和查詢,而且兼容 PostgreSQL 生態,方便接入使用統一數據服務。可是仍有一些需求但願 Hologres 能在後期迭代中支持:
原文連接本文爲阿里雲原創內容,未經容許不得轉載。