訂閱
糾錯
加入自媒體

SparkSQL對于批流支持的特性及批流一體化支持框架的難點

2020-12-24 12:10
EAWorld
關注

三、基于SparkStreaming

SQL模式的流式處理支持

SparkSQL-Flow 流式處理支持

ALL in SQL 的設計,能給數據開發(fā)人員提供極大方便,復雜SQL的表達能力也不弱。

SparkSQL-Flow 流式處理和批處理的配置沒什么不同,定義一個流式 Source,如Kafka。流或批模式是由 Source 的實現決定。SparkSQL-Flow 在加載底層 SPI 來識別該 Source 是 Streaming 模式,還是批處理模式。加載時,配置的 Source 中有任意一個是 Streaming 類型,則認為是流處理模式。

SparkSQL-Flow流處理過程中的關聯

在 ETL 或者一些實時流處理中,我們常常需要對數據做一些關聯,如字典表關聯、字段轉義等操作。這在 數據處理業(yè)務場景中很常見。

我們在 Flow XML 中定義多個Source,這樣在流處理過程中,流可以在任意 Transformer 中關聯其他 Source 表中的字段。另外,我們可以對作為關聯的 Source(Transformer的結果亦可) 做 cache 處理,這樣根據 Spark 的模式,該表處于內存中,且整個Job 運行時不會再次觸發(fā)該Source 的 Stage,可以提高性能。

除了使用 Select ... Join 的方式關聯,還可以使用自定義 UDF 的方式關聯字段,UDF 中可以有轉換、調用數據庫、可以調用 RESTApi 等等。

四、對于批流一體化ETL的思考

Kettle ETL 工具

提到 ETL 不得不提 Kettle。批、流、數據源、多樣性 大多數設計的ETL工具在他面前都相形見絀。

Kettle 作業(yè)是生成了一個 dbr 文件,該 dbr 本質上是 Kettle 支持的特有規(guī)范的一種 XML,Kettle 是實現了執(zhí)行該 XML 規(guī)范的一種解釋器。

但是 Kettle 的缺點很明顯,他的數據處理都是 Local 模式,對于大數據系統,把數據拉到運行節(jié)點再計算缺陷是很明顯的。并且作業(yè)無法并行化,云化,無法利用大規(guī)模集群的算力。

DataX

DataX 是阿里開源的一個異構數據源離線同步工具,致力于實現包括關系型數據庫(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各種異構數據源之間穩(wěn)定高效的數據同步功能。

DataX設計理念

DataX本身作為數據同步框架,將不同數據源的同步抽象為從源頭數據源讀取數據的Reader插件,以及向目標端寫入數據的Writer插件,理論上DataX框架可以支持任意數據源類型的數據同步工作。同時DataX插件體系作為一套生態(tài)系統, 每接入一套新數據源該新加入的數據源即可實現和現有的數據源互通。

DataX 理論上也支持流處理,不過他的處理方式跟 Spark 類似,流是當做無限的批來處理。如果了解SpringBatch的話,DataX 更像是多線程的 SpringBatch 的架構。DataX 沒有提供設計器,他提供了豐富的Reader和Writer和易擴展的插件系統。和 Kettle一樣,DataX 也需要把數據拉到本地計算,并不具有分布式處理能力。

理想中的批流一體ETL

具有如 Kettle 般的算子表達能力,又具有完全的大數據處理能力。

SparkSQL-Flow 是基于Spark架構,天生具有分布式、本地計算、完全SQL開發(fā)的批流一體化計算框架。

數據中臺之批流融合框架和產品

框架、計算平臺:

1.Spark

2.Flink

3.Datax

4.SparkSQL-Flow

相關產品:

1.DataWorks

2.DataPipeline

DataWorks:  DataWorks(數據工場,原大數據開發(fā)套件)是阿里云重要的PaaS(Platform-as-a-Service)平臺產品,為您提供數據集成、數據開發(fā)、數據地圖、數據質量和數據服務等全方位的產品服務,一站式開發(fā)管理的界面,幫助企業(yè)專注于數據價值的挖掘和探索。

DataPipeline: 批流一體的數據融合平臺 .主要用于各類數據融合、數據交換場景。支持大數據、分布式、水平擴展、圖形化設計器的數據交換平臺。

SparkSQL-Flow實現了一個以SparkSQL為基礎,以XML為載體的一種批流解釋器。在國內某大型保險內供數項目所使用。大大減少了Spark程序開發(fā)難度,并且有預留了Spark原生優(yōu)化。且以SQL的方式開發(fā)數據大大降低了業(yè)務梳復雜度以及保證了供數、驗數算法口徑的一致性。

關于作者:震秦,普元資深開發(fā)工程師。專注于大數據開發(fā) 8 年,擅長 Hadoop 生態(tài)內各工具的使用、優(yōu)化和部分定制開發(fā)。曾參與國內多省市公安項目實施,負責大數據數倉設計、批處理和調度工具實現。

關于EAWorld:使能數字轉型,共創(chuàng)數智未來!

<上一頁  1  2  3  
聲明: 本文由入駐維科號的作者撰寫,觀點僅代表作者本人,不代表OFweek立場。如有侵權或其他問題,請聯系舉報。

發(fā)表評論

0條評論,0人參與

請輸入評論內容...

請輸入評論/評論長度6~500個字

您提交的評論過于頻繁,請輸入驗證碼繼續(xù)

暫無評論

暫無評論

    掃碼關注公眾號
    OFweek人工智能網
    獲取更多精彩內容
    文章糾錯
    x
    *文字標題:
    *糾錯內容:
    聯系郵箱:
    *驗 證 碼:

    粵公網安備 44030502002758號