国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

MySQL Flink Watermark實現事件時間處理的關鍵技術

瀏覽:114日期:2023-05-08 10:17:42
目錄
  • 1.概述
  • 2.SQL案例-演示Watermark為零的情況
  • 3.SQL案例-演示Watermark不為零的情況

1.概述

生活中有種場景:

車輛進入隧道,信號不好,出了隧道后,信號就正常了。

正常情況下,車輛進入隧道后,如果車輛正常,沒有事故,會正常駛出隧道。

在正常的隧道行駛過程中,可能會因為信號的原因,導致數據沒有像信號正常的時候那么快到達。

也就是說,這種情況下,數據出現了延遲。我們把這種延遲數據稱之為遲到數據。

生活中,這種場景非常多,比如:車輛進入地下車庫,手機欠費,網絡抖動等。這都屬于生活的正常情況。無法避免。

程序中,一般不會允許數據丟失。所以,我們程序會推出一些機制來保證遲到數據被正常處理。

Watermark就是用來保證正常遲到的數據被正確的處理。

Watermark,也叫水印,或者是水位線。用來處理一定程度下的延遲數據。

2.SQL案例-演示Watermark為零的情況

#1.創建表
CREATE TABLE source_table ( 
 user_id STRING, 
 price BIGINT,
 `timestamp` bigint,
 row_time AS TO_TIMESTAMP(FROM_UNIXTIME(`timestamp`)),
 watermark for row_time as row_time - interval "0" second
) WITH (
  "connector" = "socket",
  "hostname" = "node1", 
  "port" = "9999",
  "format" = "csv"
);
#2.數據查詢SQL
select 
user_id,
count(*) as pv,
sum(price) as sum_price,
UNIX_TIMESTAMP(CAST(tumble_start(row_time, interval "5" second) AS STRING)) * 1000  as window_start,
UNIX_TIMESTAMP(CAST(tumble_end(row_time, interval "5" second) AS STRING)) * 1000  as window_end
from source_table
group by
    user_id,
    tumble(row_time, interval "5" second);

3.SQL案例-演示Watermark不為零的情況

Watermark不為零,就有可能是兩種情況:

  • 小于0,窗口會提前觸發計算,這種情況在實際應用不存在,所以這里也不討論
  • 大于0,窗口會延遲觸發計算,延遲的時間就是我們設置的Watermark的值

這里,我們主要是討論Watermark>0的情況。

#1.創建表
CREATE TABLE source_table ( 
 user_id STRING, 
 price BIGINT,
 `timestamp` bigint,
 row_time AS TO_TIMESTAMP(FROM_UNIXTIME(`timestamp`)),
 watermark for row_time as row_time - interval "2" second
) WITH (
  "connector" = "socket",
  "hostname" = "node1", 
  "port" = "9999",
  "format" = "csv"
);
#2.Watermark的解釋
WATERMARK FOR ts AS ts - INTERVAL "2" SECOND
這里的2,表示,數據允許延遲2秒鐘到達,窗口會在(正常結束+延遲時間)后觸發計算
#3.查詢SQL
select 
user_id,
count(*) as pv,
sum(price) as sum_price,
UNIX_TIMESTAMP(CAST(tumble_start(row_time, interval "5" second) AS STRING)) * 1000  as window_start,
UNIX_TIMESTAMP(CAST(tumble_end(row_time, interval "5" second) AS STRING)) * 1000  as window_end
from source_table
group by
    user_id,
    tumble(row_time, interval "5" second);

到此這篇關于MySQL Flink Watermark實現事件時間處理的關鍵技術的文章就介紹到這了,更多相關MySQL Flink Watermark內容請搜索以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持!

標簽: MySQL
主站蜘蛛池模板: 国产高清美女一级毛片久久 | 久久悠| 黄色a免费| 91最新网站 | 亚洲人成影院在线高清 | 国产福利片在线 易阳 | 久久亚洲精品中文字幕 | 99在线观看 | 在线精品播放 | 国产免费一区二区在线看 | 在线国产观看 | 色播亚洲视频在线观看 | 久久免费观看视频 | 国产成人在线影院 | 国产高清在线精品一区在线 | 在线观看国产一区二区三区 | 国产99视频精品草莓免视看 | 美国毛片基地a级e片 | 成年人看的免费视频 | 国产亚洲精彩视频 | 亚洲bbbbbxxxxx精品三十七 | 成 人 黄 色 激 情视频网站 | 国产综合13p| 亚洲男人天堂手机版 | 亚洲国产欧美自拍 | 日韩中文字幕免费 | 日本无卡码一区二区三区 | 在线观看免费精品国产 | 风流慈禧一级毛片在线播放 | 欧美另类自拍 | 手机看片国产免费永久 | 成人网18免费看 | 男人的天堂在线观看视频不卡 | 久久爱wwwww| 成人国产亚洲欧美成人综合网 | 一级特黄牲大片免费视频 | 欧美成人高清免费大片观看 | 亚洲清纯自偷自拍另类专区 | 国产在线一二三区 | 日韩欧美国产高清在线观看 | 日本欧美不卡一区二区三区在线 |