從T+1到T+0,淺談PetaBase的實時流式處理

隨着互聯網+的進一步發展,各行業對大數據技術的應用日趨成熟,企業的信息化範圍正在高速擴展。

我們發現,越來越多的企業大數據分析已不再侷限於傳統的T+1場景,對數據的實時性分析和處理要求很高。例如網站流量監測、安全告警、用戶推薦等等,傳統的批處理模式往往有數小時甚至數天的延遲,不能滿足T+0的業務需要。爲了有效解決實時框架和數據大規模存儲計算的問題,PetaBase流式處理框架應運而生。

目錄

打通結構化數據的高速通道

打破半結構化數據的管理困局

PetaBase的架構優勢


打通結構化數據的高速通道

同互聯網公司相比,傳統企業在業務種類、交易模式、監管要求方面都大大不同。比如傳統的銀行和股票交易領域,線上交易(OLTP)數據大都存儲在關係型數據庫中,我們針對這類業務需求設計了以下T+0實時處理的架構:

整個框架採用了Oracle GoldenGate(OGG)+Kafka+SparkStreaming的軟件架構。集成該框架的PetaBase提供基礎的數據採集、接收、過濾解析、實時規則計算、存儲和分析挖掘功能,以此爲基礎構建實時風險預警系統進行業務邏輯加工,下游的各個監控與分析系統通過訂閱方式獲得實時處理後的數據,滿足企業運營實時監控與分析的業務需求。

GoldenGate是一種基於日誌的結構化數據複製軟件,能夠實現大量交易數據的實時捕捉,實現業務數據庫與PetaBase的數據同步,保持秒級的數據延遲。

OGG源端Extract進程捕獲Oracle日誌數據,並將數據寫入到Local Trail文件。源端pump進程將Local Trail文件發送到目標端,目標端Collector進程接收數據並寫入到Remote Trail。目標端replicate進程複製Remote Trail到Kafka Cluster中指定的topic中。

Kafka是一種高吞吐量的分佈式發佈訂閱消息系統,是基於磁盤順序讀寫,支持批處理的消息隊列,Kafka主要是作爲緩衝,來異構、解耦系統。Kafka通過PetaBase的並行加載機制來統一線上和離線的消息處理,並提供實時的消費。除此之外,Kafka自帶的Zero-Copy、Exactly Once等技術語義保證了消息傳輸的實時、高效、可靠以及容錯性。

自研的SparkStreaming程序對kafka中指定topic中的流數據進行消費,解析過濾和結構化轉換,並進行實時分析計算。計算後的增量數據落到hdfs,入庫到petabase,提供分鐘級延遲的準實時分析。

爲了實現流計算服務自治,我們對框架內的軟件進行了深度整合,打通了數據流的各個通道,能夠實現功能及服務的靈活部署,構建位置透明的流式計算服務體系。用戶不需要額外配置日誌採集、消息隊列等中間件服務器,顯著降低使用成本,單個節點能達到每秒20萬消息處理的能力。

打破半結構化數據的管理困局

商業企業內部價值最大的流數據除了業務系統外還有各類設備產生的日誌數據、爬蟲程序數據、實時資源監控信息、從外部獲得的輿情、資訊信息。這些數據種類多、來源廣,架構平臺雜,日誌規範性差,不同應用的日誌路徑、文件個數、內容、規則各不相同。

需要數據採集組件提供高性能、高可用性、高安全可靠性的實時採集、傳輸功能。所以,我們採用了在業界有着廣泛應用且幾乎成爲事實標準的流式架構:Flume+Kafka+SparkStreaming。

整個框架分爲三層:採集層,彙總層和處理層。其中採集層採用flume收集日誌,在日誌所在的主機上部署flume agent實時採集日誌文件、監控信息、爬蟲數據,實時發送後端的flume 服務端,服務端完成原始數據入庫和初步的過濾解析併發送到kafka消息中間件(彙總層)。

Kafka作爲實時流計算的數據分發節點,實現日誌類數據實時分發。Kafka中不同來源的日誌消息通過topic進行區分,每個消息都會被分區,用以分擔消息讀寫負載,每個分區又可以有多個副本來防止數據丟失。SparkStreaming程序作爲kafka的消費者,從而進行實時的處理。與結構化數據的實時框架一樣,處理的結果持久化至PetaBase中,爲統計和分析類應用提供數據支撐。

PetaBase的架構優勢

我們基於Hadoop框架打造了高可用、高吞吐的實時/離線接入系統,將數據統一落入HDFS,形成原始層;基於Hive的小時級任務,分別負責計算生成明細層與彙總層;應用層使用PetaBase 內部的MPP計算引擎完成各種報表分析、KPI、決策支持的快速響應。

面對實時數倉的訴求,PetaBase擴展出的流式計算框架能很好地應對各種流式處理的需求。從上文可以看到,結構化數據的流式處理與半結構化數據的流處理基本相似,只是把採集端的 OGG 替換爲 Flume,分發層和計算層都是完全一樣的。從總體流程來看,基本模型是不變的。採用這種統一的、分層次的架構,有如下幾個優勢:

1)基於分層的設計,可以靈活地擴展或替換流處理框架中的上下游;

2)統一的後端處理,最大限度的保證系統的穩定性並減少混合架構的複雜度;

3)批流統一,同樣的 SQL,既可以跑離線也可以跑實時;

4)低延遲,高吞吐,端到端的 Exactly-once;

5)同時支持結構化與非結構化數據的實時處理,支持多種異構數據源的採集;

6)離線實時數倉的一體化。

作爲一款國產分佈式大數據平臺,PetaBase已經在諸多領域證明了自身的價值。尤其是在面向數據倉庫的應用中,更是展示了其出色的性能和堅如磐石的可靠性。不管你是聯機交易,網站訪問,還是物聯網、車聯網(傳感器)的應用場景,如果你需要一個能支撐T+0到T+n的數據平臺,PetaBase是你最好的選擇之一。

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