代碼模板
Flink全託管為您提供了豐富的代碼模板,每種代碼模板都為您提供了具體的使用情境、程式碼範例和使用指導。您可以通過代碼模板快速地瞭解Flink產品功能和相關文法,實現自己的商務邏輯。本文為您介紹代碼模板的使用情境和操作步驟。
使用限制
僅Realtime Compute引擎vvr-4.0.12-flink-1.13及以上版本支援使用代碼模板。
注意事項
如果該模板中不包含INSERT INTO語句,則不支援部署該作業。
支援的模板
Flink全託管支援的模板和其使用情境詳情如下表所示,具體請以控制台為準。
|
模板類別 |
模板名稱 |
使用情境 |
|
基礎模板 |
建立表 |
如果您需要建立表並儲存在Catalog中,則可以使用DDL建立表。對錶的操作和資料庫類似。 |
|
建立暫存資料表 |
如果您只需要在當前會話或SQL指令碼中使用某些表,則可以使用暫存資料表。 |
|
|
建立臨時視圖 |
如果您需要在Flink SQL開發過程中,重用代碼,組織長查詢或者SQL指令碼來簡化開發,則可以使用臨時視圖。 |
|
|
INSERT INTO |
如果您需要將查詢結果寫入到外部儲存系統中的表,從而提供給下遊應用程式,則可以使用INSERT INTO文法。 |
|
|
STATEMENT SET |
如果您需要將查詢的結果輸出到下遊的兩到多個外部系統中,則可以使用STATEMENT SET文法。 |
|
|
Watermark |
如果您希望Flink可以正確處理亂序資料,則需要使用Watermark。您可以在建表DDL中建立一個Watermark,即在一個已有欄位上定義一個Watermark產生運算式,標記這個欄位為時間屬性欄位。詳情請參見Event Time and Watermarks。 |
|
|
彙總分析 |
GROUP BY |
如果您需要即時對資料進行彙總分析,則可以使用GROUP BY語句。 |
|
滾動視窗彙總 |
如果您需要對時間序列資料進行分組,並對每個分組內的資料進行彙總分析,則可以使用滾動視窗。 |
|
|
滑動視窗彙總 |
如果您需要每間隔一段時間更新一個視窗內的資料,則可以使用滑動視窗。 |
|
|
累積視窗彙總 |
如果您需要提早看到視窗的計算結果,例如每分鐘看到最新的視窗結果,則可以使用累積視窗。 說明
累積視窗彙總不支援CDC,使用CDC後文法校正會報錯 |
|
|
會話視窗彙總 |
如果您需要即時統計使用者在一個活躍會話期間的資料,則可以使用會話視窗。 |
|
|
Over視窗彙總 |
如果您需要對一個視窗內的每個元素進行統計分析,則需要使用OVER視窗。 |
|
|
重疊顯示視窗彙總 |
如果您需要同時對同一個流的資料進行不同時間維度(例如1min、5min、30min、1h)的彙總,則可以使用重疊顯示視窗。 |
|
|
去重模板 |
去重 |
如果您需要去除資料流中的重複資料,則可以使用去重文法。 |
|
Top-N模板 |
Top-N |
如果您需要根據業務要求計算出當前排名前幾位或者後幾位的資料,則可以使用Top-N文法。 |
|
視窗Top-N |
如果您需要在某個時間範圍內計算出目前排名前幾位或者後幾位的資料,則可以使用視窗Top-N文法。 |
|
|
CEP模板 |
模式檢測(CEP) |
在資料流情景中,如果您需要搜尋一組事件模式,則可以使用MATCH_RECOGNIZE文法。 |
|
Join模板 |
Regular Join |
如果您需要關聯查詢其他流表的資料進行計算,則可以使用Regular Join文法。 |
|
Interval Join |
如果您需要關聯某張表在指定時間範圍內的資料,則可以使用Interval Join文法。 |
|
|
時態表Join |
如果您需要流表中的每條資料都關聯其他表中對應時間版本資料,則可以使用時態表Join。 |
|
|
維表Join |
如果您需要關聯靜態維表上的資料,則可以使用維表Join。 |
操作步驟
本文以建立表模板為您介紹如何使用代碼模板。
-
單擊對應工作空間操作列下的控制台。
-
在頁面,單擊建立。
-
在SQL基礎模版頁簽,雙擊目標模板名稱,或者單擊選中目標模板後,在右下角單擊下一步。
可選的SQL基礎模板包括空白的流作業草稿、空白的批作業草稿(BETA)、建立表、建立暫存資料表、建立臨時視圖和INSERT INTO。
-
根據需要,修改檔案名稱、儲存位置、引擎版本和SQL代碼。
例如,引擎版本選擇
vvr-6.0.6-flink-1.15,在 SQL 編輯器中輸入建表語句CREATE TABLE orders (order_uid BIGINT, product_id BIGINT, price DECIMAL(32,2), order_time TIMESTAMP(3)) WITH ('connector' = 'datagen'),完成後單擊建立。 -
單擊建立。
後面的操作和正常的作業開發完全相同,作業開發的操作步驟詳情請參見作業開發地圖。