iT邦幫忙

2023 iThome 鐵人賽

DAY 15
0

鐵人賽也過了一半了,今天來換主題,講 Flink。

Airflow 雖然好用,但它本質上是專注在排程管理的系統,可以的話,他希望你將複雜的計算交給更適合的工具,像 spark, Flink, GCP pipeline 等等。而且即使用 Airflow 做 ETL,它基本上是個 batch 式的工具,對 streaming 的處理沒那麼方便,這時候我們就需要 Flink 來協助了。

Flink是一個開源的流式數據處理框架,它的特點是能夠處理實時數據,而且非常強大。它的主要目的是處理和分析大規模的數據流,這些數據可能來自各種來源,比如傳感器、日誌文件、社交媒體等等。

Flink支持多種編程語言,包括Java和Python,這使得它對於不同技術背景的工程師都很友好。你可以使用這些語言來編寫Flink應用程序,處理和轉換數據。

其中一個Flink的重要特點是它的事件時間處理能力。這意味著你可以處理帶有時間戳的數據,這在處理實時事件時非常重要,比如分析應用程序日誌或監控傳感器數據。

此外,Flink還提供了強大的狀態管理,這對於處理長時間運行的應用程序非常有用。你可以保存和管理應用程序的狀態,這樣即使應用程序出現故障,也可以輕鬆地恢復。

總之,Flink是一個功能豐富的數據處理框架,它可以幫助工程師處理實時數據,並從中獲得有價值的信息。如果你需要處理大量的實時數據,Flink絕對值得一試。

缺點:

  1. 學習曲線: 對於新手來說,Flink可能有一定的學習曲線,特別是對於初次接觸實時數據處理的工程師。但一旦掌握,它會變得更容易使用。
  2. 部署和管理: 部署和管理Flink應用程序可能需要一些工程和運維方面的努力,特別是在大規模和生產環境中。
  3. 社群和生態系統: 相對於一些其他大型數據處理框架,Flink的社群和生態系統可能相對較小,這可能會對找到特定的插件或支持帶來一些挑戰。

在我的經驗中,如果你的資料源是 streaming 而且很需要有狀態管理的話,那麼 Flink 會非常適合。舉例來說,每分鐘計算一次過去 30 分鐘的股票交易量最大值,如果用 batch 的寫法,那我們會需要有一個地方儲存 30 分鐘內的交易量,並加上 timestamp,才有辦法處理。但在 Flink 內因為他有狀態,所以你可以存 30 分鐘的資料在 memory 內,並輕鬆的處理這個 TimeWindow 。

怎麼做,下集待續。


上一篇
Airflow 測試遇到的package 的奇妙問題 - Day14
下一篇
Flink 的本地安裝及啟動 - Day16
系列文
用 Airflow & Flink 來開發 ETL 吧30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言