原標題:從T+1到T+0,淺談PetaBase的實時流式處理
隨著互聯網+的進一步發展,各行業對大數據技術的應用日趨成熟,企業的信息化范圍正在高速擴展。
我們發現,越來越多的企業大數據分析已不再局限于傳統的T+1場景,對數據的實時性分析和處理要求很高。例如網站流量監測、安全告警、用戶推薦等等,傳統的批處理模式往往有數小時甚至數天的延遲,不能滿足T+0的業務需要。為了有效解決實時框架和數據大規模存儲計算的問題,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中,為統計和分析類應用提供數據支撐。
億信華辰基于Hadoop框架打造了高可用、高吞吐的實時/離線接入系統,將數據統一落入HDFS,形成原始層;基于Hive的小時級任務,分別負責計算生成明細層與匯總層;應用層使用PetaBase 內部的MPP計算引擎完成各種報表分析、KPI、決策支持的快速響應。
面對實時數倉的訴求,PetaBase擴展出的流式計算框架能很好地應對各種流式處理的需求。從上文可以看到,結構化數據的流式處理與半結構化數據的流處理基本相似,只是把采集端的 OGG 替換為 Flume,分發層和計算層都是完全一樣的。從總體流程來看,基本模型是不變的。采用這種統一的、分層次的架構,有如下幾個優勢:
1)基于分層的設計,可以靈活地擴展或替換流處理框架中的上下游;
2)統一的后端處理,最大限度的保證系統的穩定性并減少混合架構的復雜度;
3)批流統一,同樣的 SQL,既可以跑離線也可以跑實時;
4)低延遲,高吞吐,端到端的 Exactly-once;
5)同時支持結構化與非結構化數據的實時處理,支持多種異構數據源的采集;
6)離線實時數倉的一體化。
作為一款國產分布式大數據平臺,PetaBase已經在諸多領域證明了自身的價值。尤其是在面向數據倉庫的應用中,更是展示了其出色的性能和堅如磐石的可靠性。不管你是聯機交易、網站訪問,還是物聯網、車聯網(傳感器)的應用場景,如果你需要一個能支撐T+0到T+n的數據平臺,PetaBase是你最好的選擇之一。返回搜狐,查看更多
責任編輯: