Airflow 和 Flink 是兩個強大的工具,可以用於 ETL 開發。Airflow 是一個開源的任務調度和監控平台,可以方便地定義、調度和監控 ETL 任務的執行。Flink 是一個分佈式流處理引擎,可以處理大規模的數據流,並提供低延遲和高吞吐量的處理能力。
我想來聊聊這兩個框架在開發上遇過的坑,好用跟難用的點,跟我目前比較喜歡的程式架構。
Flink 的一個重要特性是狀態保存和還原機制,它可以讓 Flink 應用在發生故障時,能夠自動恢復到之前的狀態,而不會丟失或重複處理數據。 Flink 的狀態...
前面講了一些基本概念,我們來看一個比較完整的案例吧 講到 Streaming,有一個很好用的工具叫 Kafka,應該也是大多數工程師或公司會用的工具。所以我們來...
我們在上一章的時候,Flink 的輸入 source 是使用 Kafka,它很好用,但我們常常面對的卻是各種 OLTP 資料庫。而如果你打開 Flink 官網,...
雖然我說 Flink 的強項跟目的是處理 Streaming 的資料,但不代表它不能做 batch。最經典的例子,依然還是讀檔後計算字數。 public cla...
跟 Airflow 一樣,這種框架都不太好測,而 Flink 的流式處理以及他的複雜機制更是如此。 不過,我們還是可以從一些簡單的部份做起。 Source /...
前面有提到,通常我們會在 IDE 開發 Flink,都 2023 年了應該沒人在用記事本寫 Java 了吧?至少也用個 vim。 Flink 一般來說,會有一個...
雖然已經到尾聲了,但我發現有個重要的 Airflow 元件沒有提到,所以必須來補這篇。 Airflow XCom 是一種在不同的 task 之間傳遞資料的機制,...
我們前面講了 Airflow 跟 Flink 的一些基礎觀念跟開發,現在讓我們整理一下兩邊的差異。 首先,Airflow 是一個優秀的排程管理工具,它有自己的...
TDD(測試驅動開發 Test Driven Develop)是一種軟體開發方法,它要求在編寫任何程式碼之前,先撰寫測試案例。這樣可以確保程式碼的品質和可靠性,...
終於來到最後一篇了,我們前面寫了這麼多程式跟測試,那要什麼時候執行測試? 理論上,你隨時都應該做。特別是 merge branch 回 develop 的時候。...