產品註冊版本為「v5.0」時,才能使用資料開發-實時任務。
實時任務發展前期,視覺化算子的單行轉換能力、多行聚合能力不足以滿足客戶各式各樣的轉換需求。
使用者習慣使用 SQL 語句進行資料開發,但目前實時任務中不支援編寫 SQL 語句處理資料。
新增「Flink SQL」算子,使用者可編寫 SQL 語句在實時任務中對資料進行查詢和處理。如下圖所示:
使用「Flink SQL」算子前,需要:
註冊「實時進階算子包」功能點,詳情請參見:註冊簡介
需要配置 Flink引擎
1)「Flink SQL」算子前必須有前置算子:
2)「Flink SQL」算子後可接多個匯出算子。
3)5.0.1.5 及之後版本,實時任務中若使用 WebSocket輸入、MQTT輸入、IBM MQ輸入、Pulsar輸入,不能再使用「Flink SQL」節點。
注:不支援在一個「Flink SQL」算子中,使用多個 select 語句。
1)在 SQL 中,可以透過 ${valueName} 的方式,使用自訂的任務參數
2)在輸入 SQL 語句時有聯想功能,支援聯想 關鍵詞 、函式、任務靜態參數、上游算子
5.0.11.2 及之後版本新增該欄位。
使用者需要基於 FDL,進行銷售分析,統計每 10 分鐘內每種商品售賣的情況,資料來自於 CRM 系統資料庫。
需要基於裝置的原始資料進行裝置監視,資料來源是 Kafka,想要分析每 1 分鐘裝置的平均溫度。
5.0.11.2 之前版本,使用者基於時間視窗的匯總計算時,由於沒有定義事件時間,無法進行轉換,Flink SQL 會進行報錯。
事件時間欄位說明:
預設為timestamp(3),不支援使用者修改
當「來自上游欄位」類型為timestamp(3),event_time 欄位類型預設邏輯:複製原始欄位
當「來自上游欄位」類型不為timestamp(3),event_time欄位類型預設邏輯:複製原始欄位並轉換類型為 TIMESTAMP(3)
當「來自上游欄位」精度不為 3 時,event_time欄位預設邏輯:精度超過3,捨棄為3,精度小於3,補齊為3
1)僅允許選擇一個欄位作為事件時間欄位;欄位選擇為實際的業務欄位,即資料中含有的欄位,是業務發生的時間,而不是資料產生的時間
2) 支援的欄位類型:
數值類型:bigint、long
字元類型:string、varchar
日期類型:date、time、timestamp、timestamp_ltz
3)選擇上游欄位後,工程會直接定義watermark,預設值為 30 s;使用者可修改 FineDB 參數來修改 watermark,具體操作請聯絡技術支援
SQL語句說明:
需要先定義「事件時間欄位」,再在 SQL 語句中使用視窗函式:
捲動視窗:SELECT window_start, window_end, SUM(price) AS total_price FROM TUMBLE(TABLE Bid, DESCRIPTOR(bidtime), INTERVAL '10' MINUTES) GROUP BY window_start, window_end;
滑動視窗:SELECT window_start, window_end, SUM(price) AS total_price FROM HOP(TABLE Bid, DESCRIPTOR(bidtime), INTERVAL '5' MINUTES, INTERVAL '10' MINUTES) GROUP BY window_start, window_end;
累計視窗:SELECT window_start, window_end, SUM(price) AS total_price FROM CUMULATE(TABLE Bid, DESCRIPTOR(bidtime), INTERVAL '2' MINUTES, INTERVAL '10' MINUTES) GROUP BY window_start, window_end;
視窗
TOP-N
SELECT [column_list] FROM ( SELECT [column_list], ROW_NUMBER() OVER (PARTITION BY window_start, window_end [, col_key1...] ORDER BY col1 [asc|desc][, col2 [asc|desc]...]) AS rownum FROM table_name) -- relation applied windowing TVF WHERE rownum <= N [AND conditions]
本文範例:使用「CDC輸入」算子取出 MySQL 資料,使用「Flink SQL」算子將取出的 name 欄位根據不同值進行分組,並統計每個不同 name 欄位出現的次數,傳回 name 值和對應的出現次數。
1)建立實時任務。
2)拖入一個「CDC輸入」算子,取出待處理資料。如下圖所示:
點選「資料預覽」,可查看取出的資料。如下圖所示:
拖入「Flink SQL」算子,將取出的 name 欄位根據不同值進行分組,並統計每個不同 name 欄位出現的次數,傳回 name 值和對應的出現次數。如下圖所示:
點選「資料預覽」,如下圖所示:
使用者可繼續處理資料,或者後接匯出算子將資料匯出。
注:「Flink SQL」算子後可接多個匯出算子。
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉
反馈已提交
网络繁忙