亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術(shù)文章
文章詳情頁

MySQL Flink Watermark實(shí)現(xiàn)事件時(shí)間處理的關(guān)鍵技術(shù)

瀏覽:113日期:2023-05-08 10:17:42
目錄
  • 1.概述
  • 2.SQL案例-演示W(wǎng)atermark為零的情況
  • 3.SQL案例-演示W(wǎng)atermark不為零的情況

1.概述

生活中有種場景:

車輛進(jìn)入隧道,信號(hào)不好,出了隧道后,信號(hào)就正常了。

正常情況下,車輛進(jìn)入隧道后,如果車輛正常,沒有事故,會(huì)正常駛出隧道。

在正常的隧道行駛過程中,可能會(huì)因?yàn)樾盘?hào)的原因,導(dǎo)致數(shù)據(jù)沒有像信號(hào)正常的時(shí)候那么快到達(dá)。

也就是說,這種情況下,數(shù)據(jù)出現(xiàn)了延遲。我們把這種延遲數(shù)據(jù)稱之為遲到數(shù)據(jù)。

生活中,這種場景非常多,比如:車輛進(jìn)入地下車庫,手機(jī)欠費(fèi),網(wǎng)絡(luò)抖動(dòng)等。這都屬于生活的正常情況。無法避免。

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

Watermark就是用來保證正常遲到的數(shù)據(jù)被正確的處理。

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

2.SQL案例-演示W(wǎng)atermark為零的情況

#1.創(chuàng)建表
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.數(shù)據(jù)查詢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案例-演示W(wǎng)atermark不為零的情況

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

  • 小于0,窗口會(huì)提前觸發(fā)計(jì)算,這種情況在實(shí)際應(yīng)用不存在,所以這里也不討論
  • 大于0,窗口會(huì)延遲觸發(fā)計(jì)算,延遲的時(shí)間就是我們?cè)O(shè)置的Watermark的值

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

#1.創(chuàng)建表
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,表示,數(shù)據(jù)允許延遲2秒鐘到達(dá),窗口會(huì)在(正常結(jié)束+延遲時(shí)間)后觸發(fā)計(jì)算
#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);

到此這篇關(guān)于MySQL Flink Watermark實(shí)現(xiàn)事件時(shí)間處理的關(guān)鍵技術(shù)的文章就介紹到這了,更多相關(guān)MySQL Flink Watermark內(nèi)容請(qǐng)搜索以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持!

標(biāo)簽: MySQL
主站蜘蛛池模板: 春水堂在线 | 91视频大全| 爱爱免费视频 | 亚洲一区中文字幕 | 久久99精品久久久久久综合 | 一级做a爱过程免费视频麻豆 | 亚洲成a人片在线观看中 | 亚洲va老文色欧美黄大片人人 | 成人精品在线视频 | 一区二区视屏 | 亚洲欧美另类自拍第一页 | 美女美女高清毛片视频 | 视频在线一区二区三区 | 国产一级二级三级视频 | 久久久精品电影 | 国产亚洲欧美精品久久久 | 91香蕉视频苹果 | 国产精品资源在线播放 | 网红思瑞一区二区三区 | 亚洲综合日韩欧美一区二区三 | 国产精品综合一区二区三区 | 成人18网址在线观看 | 99爱在线精品视频免费观看9 | 国产一区二区在线免费观看 | 黄色片网站观看 | 成人久久久观看免费毛片 | 国产精品人伦久久 | 亚洲色图综合图区 | 中国特黄一级片 | 欧美日韩视频在线 | 一区二区三区四区在线观看视频 | 午夜激情在线观看 | 日韩精品一区二区三区国语自制 | 三级网址在线观看 | 黄色爱爱视频 | 欧美成人艳星在线播放 | 亚洲国产精品综合久久一线 | 黄色 在线 | 日韩爽爽视频爽爽 | 人人爱爱人人 | 看黄色的视频 |