電商數據應用體系建設總結(一)—— 數據應用架構剖析

什麼是數據應用

數據應用是通過各種各樣的數據分析方式將數據展示出來,給決策者、管理者、運營等人員透傳數據價值的工具,幫助決策者、管理者及時調整戰略目標、公司目標、業務目標,幫助運營人員更好地實現精細化運營、提升運營效率。

從整個大數據架構來看,它處於整個大數據體系的最上層,也就是數據應用層,以我所參與開發的電商業務數據應用爲例,在這一層主要有以下幾種類型的數據應用:

數據應用架構

整個電商數據應用架構可以分爲七層,底層數據架構使用Lambda架構模式,上層數據應用使用J2EE微服務架構模式:

1、業務系統: 業務系統是離線數據和實時數據的來源,主要分爲業務數據和日誌數據。業務數據包括用戶數據、訂單數據、商品數據、銷量數據等,日誌數據包括行爲日誌數據、系統日誌數據等。

2、數據接入層: 數據接入層由一系列數據採集組件構成,包括DataHub數據接入總線、Flume和FlinkCDC等日誌採集服務,這些數據採集組件將業務系統產生的數據採集並存儲到Kafka消息隊列中。

3、消息隊列: 消息隊列作爲分佈式、高併發、高性能、高吞吐的數據存儲中間件,提供過期數據清理、數據重複消費能力,主要是由多個Kafka組成的消息隊列集羣,不僅可以解耦數據生產方和數據使用方,而且可以快速擴展提高數據處理吞吐量。

4、數據計算層: 按對數據的實時性要求來區分,數據計算層可以分爲離線數據計算、實時數據計算,目前我們使用的數據架構是Lambda架構,數據的準確性以離線數據作爲參考。離線數據計算使用Spark,實時數據計算使用Flink。

5、數據存儲層: 在Lambda架構數據處理基礎上,將處理後的離線數據和實時數據分別存儲到各自對應的存儲系統中。數據存儲層主要負責三類數據的存儲:

(1)元數據: 使用MySQL存儲,這部分數據與數據服務層或者數據應用層交互,比如指標字典數據、權限數據等,提供OLTP在線事務數據服務,完成對這些數據的增刪改查操作。

(2)離線數據: 離線數倉分爲五層:ODS、DWD、DWM、DWS和ADS層,數據主要使用Hive+ClickHouse存儲。Hive作爲離線數倉,存儲ODS、DWD、DWM、DWS、ADS層的全量數據,由於這些數據需要實時查詢和交互式分析,因此每天凌晨會將ADS層數據同步到ClickHouse或StarRocks中。爲了降低數據應用方數據使用和理解的難度,數據經過層層加工之後,輸出到ADS層的ClickHouse或者StarRocks中,以明細寬表或Cube寬表的形式提供給數據應用方使用。

(3)實時數據: 實時數倉主要分爲兩層:ODS層和DWD層,數據主要使用Kafka存儲。Flink消費Kafka中的數據,對數據經過過濾、清洗、擴維之後,會將處理好的明細數據存儲到ClickHouse或者StarRocks中。明細數據的現場計算主要由OLAP引擎負責,我們目前採用ClickHouse爲主、StarRocks爲輔的存儲架構,它們都以MPP架構實現大規模數據的並行計算,提供準實時的結果,因此我們可以利用它們的實時計算能力完成明細數據的現場計算。

6、數據服務層: 數據服務層主要銜接數倉同學和數據應用後端開發同學,統一數據建模與使用規範,提供統一的指標管理服務、統一的指標查詢服務以及統一的預警服務,這些服務採用J2EE微服務架構對外提供標準的API,統一數據出口,從而提高開發效率,降低數據使用難度,方便後續對數據應用服務進行治理和維護。

7、數據應用層: 數據應用層是數據的輸出展示層,主要以各種各樣的數據產品爲載體,根據需求將數據展示給用戶,給用戶提供數據分析和預警的功能,從而幫助用戶實現數據化、精細化管理。該層採用前後端分離的架構,後端採用J2EE微服務架構對外提供各種各樣的數據查詢API,前端使用主流的前端框架完成數據的展示。

最後,整個數據應用體系的建設目標是業務驅動、快速落地,因爲數據的重要價值之一就在於它的時效性,我們可以配合快速開發的數據工具和定製化的數據應用產品完成整個數據需求的支撐,沉澱工具、流程和方法論,實現數據能力的快速輸出,賦能業務部門,提高實現數據價值的效率。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章