Flink SQL Client中的Chained (Event) Time Windows
生活随笔
收集整理的這篇文章主要介紹了
Flink SQL Client中的Chained (Event) Time Windows
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Flink SQL Cookbook中有Chained (Event) Time Windows
該md文件舉了兩個例子,
前面一個例子是Chained Windows
后面一個例子是Non-Chained Windows
?
該md文件的前半部分圖示如下:
上圖中存在兩個server_logs_window_5m
①Chained Windows
②Non-Chained Windows
所以②比①更加有計算上的效率,但是耦合性也更強。
?
上圖圖示中,三條紅線就是所謂的Chained (Event) Time Windows
這個概念出自Ververcica公司的flink sql cookbook
Chained (Event) Time Windows的SQL距離
?
Chained (Event) Time Windows的SQL舉例(對應上圖中的3個紅色箭頭):
| Chained (Event) Time Windows的數據流向 | 具體對應的SQL |
| server_logs_window_1m->server_logs_window_5m | CREATE TEMPORARY VIEW server_logs_window_5m AS? SELECT? ? TUMBLE_START(window_end, INTERVAL '5' MINUTE) AS window_start, ? TUMBLE_ROWTIME(window_end, INTERVAL '5' MINUTE) AS window_end, ? SUM(total_size) AS total_size, ? SUM(num_requests) AS num_requests FROM server_logs_window_1m GROUP BY? ? TUMBLE(window_end, INTERVAL '5' MINUTE); |
| server_logs_window_1m->avg_request_size_1m | INSERT INTO avg_request_size_1m SELECT ? window_start, ? window_end,? ? total_size/num_requests AS avg_size FROM server_logs_window_1m; |
| server_logs_window_5m->avg_request_size_5m | INSERT INTO avg_request_size_5m SELECT ? window_start, ? window_end,? ? total_size/num_requests AS avg_size FROM server_logs_window_5m; ? |
?
?
Chained Windows與Non-Chained Windows的SQL寫法對比
| Windows類型 | 具體對應的SQL |
| Chained Windows | CREATE TEMPORARY VIEW server_logs_window_5m AS? SELECT? ? TUMBLE_START(window_end, INTERVAL '5' MINUTE) AS window_start, ? TUMBLE_ROWTIME(window_end, INTERVAL '5' MINUTE) AS window_end, ? SUM(total_size) AS total_size, ? SUM(num_requests) AS num_requests FROM server_logs_window_1m GROUP BY? ? TUMBLE(window_end, INTERVAL '5' MINUTE); |
| Non-Chained Windows | CREATE TEMPORARY VIEW server_logs_window_5m AS? SELECT? ? TUMBLE_START ?(log_time, INTERVAL '5' MINUTE) AS window_start, ? TUMBLE_ROWTIME(log_time, INTERVAL '5' MINUTE) AS window_end, ? SUM(size) AS total_size, ? COUNT(*) AS num_requests FROM server_logs GROUP BY? ? TUMBLE(log_time, INTERVAL '5' MINUTE); |
?
?
?
?
總結
以上是生活随笔為你收集整理的Flink SQL Client中的Chained (Event) Time Windows的全部內容,希望文章能夠幫你解決所遇到的問題。