DataWorks新版資料開發中的Flink SQL Streaming節點支援使用標準SQL語句定義即時任務處理邏輯。Flink SQL Streaming具有易用性、豐富的SQL支援、強大的狀態管理及容錯能力,相容事件時間和處理時間,並可靈活擴充。該節點易於與Kafka、HDFS等系統整合,提供詳盡的日誌和效能監控工具。您只需在DataWorks專案中添加Flink SQL Streaming任務並編寫SQL語句即可開始即時資料處理。本文將介紹如何在DataWorks開發Flink SQL Streaming節點任務,並通過DataWorks完成Flink即時資料處理。
前提條件
已在管理中心綁定Realtime ComputeFlink版計算資源,詳情請參見綁定計算資源(參加新版資料開發公測)。
已建立Flink SQL Streaming節點,詳情請參見建立周期任務。
步驟一:開發Flink SQL Streaming節點
在Flink SQL Streaming節點編輯頁面,執行如下開發操作,完成節點任務開發。
開發SQL代碼
在SQL編輯地區開發工作單位代碼,您可在代碼中使用${變數名}的方式定義變數,並在節點編輯頁面右側即時配置的指令碼參數中為該變數賦值。實現調度情境下代碼的動態傳參,調度參數使用詳情,樣本如下。
--建立源表datagen_source。
CREATE TEMPORARY TABLE datagen_source(
name VARCHAR
) WITH (
'connector' = 'datagen'
);
--建立結果表blackhole_sink。
CREATE TEMPORARY TABLE blackhole_sink(
name VARCHAR
) WITH (
'connector' = 'blackhole'
);
--將源表資料插入到結果表。
INSERT INTO blackhole_sink
SELECT
name
FROM datagen_source WHERE LENGTH(name) > ${name_length};該樣本參數name_length對應的參數值為5,通過設定該參數可以實現對人名長度小於5的資料進行過濾。
步驟二:配置Flink SQL Streaming節點
您可根據業務情況,參照下面的參數描述資訊配置Flink SQL Streaming節點任務。
配置Flink資源
您可在編輯頁面右側即時配置框的Flink資源資訊中根據資源模式配置如下參數資訊,詳情請參見配置作業資源。
參數 | 參數描述 |
Flink 叢集 | 在管理中心綁定的全託管Flink計算資源名稱。 |
Flink 引擎版本 | 您可根據實際情況選擇引擎版本。 |
資源群組 | 選擇與Flink網路連通的Serverless資源群組。 |
資源模式支援以下兩種模式,詳情請參見配置作業資源。
請根據您選擇的資源模式,參考下文配置相關參數。通過深入理解Flink架構,您可以更有效地進行參數配置,Flink架構詳情請參見Flink Architecture | Apache Flink。 | |
基礎模式 | |
Job Manager CPU | 根據Flink的最佳實務,JobManager至少需要0.5核CPU和2GiB記憶體來確保穩定運行,建議配置為1核CPU和4 GiB記憶體,最大不超過16核CPU。具體配置應根據叢集規模和作業複雜度調整。 |
Job Manager Memory | JobManager的記憶體配置影響其處理調度和管理工作的能力,推薦配置範圍是2 GiB到64 GiB,以確保穩定高效的運行。具體大小應根據叢集規模和作業需求調整。 |
Task Manager CPU | TaskManager的CPU資源配置影響其任務處理能力。根據Flink的最佳實務,建議配置至少0.5核CPU和2 GiB記憶體,推薦1核CPU和4 GiB記憶體,最大不超過16核CPU。具體配置應依據實際需求調整。 |
Task Manager Memory | TaskManager的記憶體配置決定了其處理任務的資料量和效能。為了確保任務穩定執行和高效處理,記憶體大小至少應為2 GiB,最大可設定為64 GiB。 |
並發度 | 決定了Flink作業中任務的並存執行數量,較高的並發度可以提高處理速度和資源使用率,您需要根據叢集資源和作業特性進行合理設定。 |
每個TaskManager Slot數 | 每個TaskManager的Slot數決定了它可以並存執行的任務數量,您可通過調整Slot配置最佳化資源利用和作業的平行處理能力。 |
專家模式 | |
Job Manager CPU | 根據Flink的最佳實務,JobManager至少需要0.25核CPU和1 GiB記憶體來確保穩定運行,最大不超過16核CPU。具體配置應根據叢集規模和作業複雜度調整。 |
Job Manager Memory | JobManager的記憶體配置影響其處理調度和管理工作的能力,推薦配置範圍是1 GiB到64 GiB,以確保穩定高效的運行。具體大小應根據叢集規模和作業需求調整。 |
每個TaskManager Slot數 | 每個TaskManager的Slot數決定了它可以並存執行的任務數量,您可通過調整Slot配置最佳化資源利用和作業的平行處理能力。 |
多SSG模式 | 預設情況下,所有運算元都放在一個Slot共用組內,因此您無法為每個運算元單獨修改資源配置。如果您需要對單獨的運算元設定資源,需要開啟多SSG模式後讓每個運算元有自己獨立的Slot,這樣就可以直接在對應的Slot上設定運算元的資源。 |
(可選)配置指令碼參數
您可在右側導覽列的即時配置框的指令碼參數中單擊添加參數,並編輯相應的參數名、參數值資訊,方便在代碼中動態使用。
(可選)配置Flink運行參數
您可在右側導覽列的即時配置框的Flink運行參數中配置如下參數資訊,詳情請參見配置作業部署資訊。
參數 | 描述 |
系統檢查點間隔 | 配置該參數決定了Flink作業定時執行系統檢查點的時間間隔,較短的間隔可以減少故障恢復但會增加系統開銷。如果不填寫,將會關閉系統檢查點。 |
兩次系統檢查點之間的最短時間間隔 | 配置該參數定義了Flink在連續檢查點之間必須等待的最小時間,以防止過於頻繁的檢查點對系統效能造成影響。這確保了當系統檢查點的最大並行度為1時,兩次檢查點之間存在一個最短的時間間隔。 |
State資料到期時間 | 配置該參數決定了Flink作業中狀態資料在沒有被訪問或更新的情況下可以保留的最長時間,預設值為36小時,即作業狀態資訊將在36小時後自動到期並清除。以最佳化狀態儲存和資源使用。 重要 此處預設值根據云上最佳實務的經驗值設定,與開源的預設值不同(開源預設值為0,表示狀態資訊永不到期)。 |
其它配置 | 支援Flink的其它運行參數配置,您可在此配置Flink的其它運行參數,例如: 說明 更多參數配置詳情請參見配置作業部署資訊。 |
完成任務配置後,單擊儲存節點任務。
步驟三:啟動Flink SQL Streaming節點
發布Flink SQL Streaming節點。
任務需要發布至營運中心後才可執行,請參考介面引導對需要啟動並執行Flink SQL Streaming節點執行發佈動作,詳情請參見節點/工作流程發布。
說明發佈動作會同步將任務發布至Flink vvp空間,您可在Flink vvp營運中心>作業營運中看到通過DataWorks發布的任務。
啟動Flink SQL Streaming節點。
任務發布後,您可以單擊發布到生產環境下方的去營運,在營運中心的中找到需要啟動的任務,單擊任務操作列的啟動按鈕,啟動並查看Realtime Compute任務的運行情況。