當前位置:編程學習大全網 - 網站源碼 - 使用Flink批處理完成數據比對(對賬)三

使用Flink批處理完成數據比對(對賬)三

前面的文章 使用Flink批處理完成數據比對(對賬)二 討論了使用Table API來處理數據比對的問題,但有些場景下還會有壹些比較復雜的業務需求,如輸出的時候要將兩邊的數據合並在壹起輸出,這個時候用Table API就不太好完成這樣的需求了,這就需要借助底層的DataSet API和Process Function。

這篇文章準備利用DataSet API來完成數據比對的需求,至於流數據的實時比對,下壹篇文章將介紹。

核心的思想就是用兩個流(DataSet其實也是壹種特殊的DataStream)中的數據進行處理,Flink中就具備這樣的API。

通過 coGroup 、 where 和 equalTo 很容易講兩個流中orderNo相同的數據關聯在壹起, coGroup 和 join 不同, join 只會關聯key相同的數據,形成壹個數據集。而 coGroup 遇到指定key只有壹個數據集中有記錄的情況時,會將這個Group和空的Group關聯。

源碼

可以看到,利用Flink將兩方數據關聯是非常容易的。筆者在實際業務場景中,有些需求不僅需要關聯兩方數據的,在下發回盤文件的時候,還要關聯上其他方數據的情況(如商戶數據),這種情況目前想到的辦法有:

  • 上一篇:易語言網頁源代碼亂碼。
  • 下一篇:sparkjava怎麽停止服務
  • copyright 2024編程學習大全網