1、實時數據平台整體架構
實時數據平台的支撐技術主要包含四個方面:實時數據采集(如Flume),消息中間件(如Kafka), 流計算框架(如Storm, Spark, Flink和Beam),以及數據實時存儲(如列族存儲的HBase)
實時數據平台最為核心的技術是流計算。
2、流計算
流計算的典型特征:
1、無邊界:流計算的數據源頭是源源不斷的,就像河水一樣不停第流過來,相應地,流計算任務也需要始終運行。
2、觸發:不同於Hadoop離線任務是定時調度觸發,流計算任務的每次計算是由源頭數據觸發的。觸發是流計算的一個非常重要的概念,在某些業務場景下,觸發消息的邏輯比較復雜,對流計算挑戰很大。
3、延遲:很顯然,流計算必須能高效地、迅速地處理數據。不同於Hadoop任務至少以分組甚至小時計的處理延遲,流計算的延遲通常在秒甚至毫秒級,分組級別的延遲只有在特殊情況下才能被接受。
4、歷史數據:Hadoop離線任務如果發現歷史某天的數據有問題,通常很容易修復問題而且重運行任務,但是對於流計算任務基本不可能或代價非常大,以為首先實時流消息不會保存很久(一般幾天),而且保存歷史的完全
現場基本不可能,所以實時流計算一般只能從問題發現的時刻修復數據,歷史數據是無法通過流式方式來補的。
3、數據管理
數據管理包括數據探查、數據集成、數據質量、元數據管理和數據屏蔽
數據探查:就是對數據的內容本身和關聯關系等進行分析,包括但不限於需要的數據是否有、都有哪些字段、字段含義是否規范明確以及字段的分布和質量如何等。
數據集成:數據倉庫的數據集成也叫ETL(抽取:extract、轉換:transform、加載:load),是數據平台構建的核心,ETL泛指將數據從數據源頭抽取、經過清洗、轉換、關聯等轉換,
並最終按照預先設計的數據模型將數據加載到數據倉庫的過程。
參考資料:《離線和實時大數據開發實戰》