亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

 更新時(shí)間:2023年05月09日 09:44:46   作者:奔跑如風(fēng)  
Flink Watermark是Flink流處理框架中實(shí)現(xiàn)事件時(shí)間處理的關(guān)鍵技術(shù)之一。它是通過(guò)一種機(jī)制來(lái)解決數(shù)據(jù)亂序和延遲的問(wèn)題,使得Flink可以在處理遲到的數(shù)據(jù)時(shí)保證結(jié)果的準(zhǔn)確性。Flink Watermark可以在數(shù)據(jù)流中插入一個(gè)時(shí)間戳,將數(shù)據(jù)流轉(zhuǎn)化為具有時(shí)間維度的數(shù)據(jù)集合

1.概述

生活中有種場(chǎng)景:

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

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

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

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

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

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

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

Watermark,也叫水印,或者是水位線。用來(lái)處理一定程度下的延遲數(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ù)查詢(xún)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.查詢(xún)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)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 關(guān)于mysql數(shù)據(jù)庫(kù)連接編碼問(wèn)題

    關(guān)于mysql數(shù)據(jù)庫(kù)連接編碼問(wèn)題

    這篇文章主要介紹了關(guān)于mysql數(shù)據(jù)庫(kù)連接編碼問(wèn)題,默認(rèn)的編碼和數(shù)據(jù)庫(kù)表中的數(shù)據(jù)使用的編碼是不一致的,如果是中文,那么在數(shù)據(jù)庫(kù)中執(zhí)行時(shí)已經(jīng)是亂碼了,需要的朋友可以參考下
    2023-04-04
  • 搭建Mysql視圖可視化操作(保姆級(jí))

    搭建Mysql視圖可視化操作(保姆級(jí))

    本文主要介紹了搭建Mysql視圖可視化操作,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-10-10
  • 將SQL查詢(xún)結(jié)果保存為新表的方法實(shí)例

    將SQL查詢(xún)結(jié)果保存為新表的方法實(shí)例

    有時(shí)我們要把查詢(xún)的結(jié)果保存到新表里,創(chuàng)建新表,查詢(xún),插入顯得十分麻煩,下面這篇文章主要給大家介紹了關(guān)于將SQL查詢(xún)結(jié)果保存為新表的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-12-12
  • 把MySQL卸載干凈的超詳細(xì)步驟

    把MySQL卸載干凈的超詳細(xì)步驟

    這篇文章主要介紹了把MySQL卸載干凈的超詳細(xì)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考價(jià)值,需要的朋友們下面跟著小編來(lái)一起學(xué)習(xí)吧
    2024-02-02
  • mysql 5.7 docker 主從復(fù)制架構(gòu)搭建教程

    mysql 5.7 docker 主從復(fù)制架構(gòu)搭建教程

    這篇文章主要為大家詳細(xì)介紹了mysql 5.7 docker 主從復(fù)制架構(gòu)搭建教程,感興趣的小伙伴們可以參考一下
    2016-07-07
  • 教你使用MySQL Shell連接數(shù)據(jù)庫(kù)的方法

    教你使用MySQL Shell連接數(shù)據(jù)庫(kù)的方法

    在有些情況下我們需要使用命令行方式連接MySQL數(shù)據(jù)庫(kù),這時(shí)可以使用MySQL官方提供的命令行工具M(jìn)ySQL Shell,今天通過(guò)本文給大家介紹下mysql Shell連接數(shù)據(jù)庫(kù)的方法,感興趣的朋友一起看看吧
    2022-04-04
  • mysql之如何給大表加字段

    mysql之如何給大表加字段

    這篇文章主要介紹了mysql之如何給大表加字段問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • MySQL性能參數(shù)詳解之Skip-External-Locking參數(shù)介紹

    MySQL性能參數(shù)詳解之Skip-External-Locking參數(shù)介紹

    MySQL的配置文件my.cnf中默認(rèn)存在一行skip-external-locking的參數(shù),即跳過(guò)外部鎖定。根據(jù)MySQL開(kāi)發(fā)網(wǎng)站的官方解釋?zhuān)珽xternal-locking用于多進(jìn)程條件下為MyISAM數(shù)據(jù)表進(jìn)行鎖定
    2016-05-05
  • MySQL中UPDATE與DELETE語(yǔ)句的使用教程

    MySQL中UPDATE與DELETE語(yǔ)句的使用教程

    這篇文章主要介紹了MySQL中UPDATE與DELETE語(yǔ)句的使用教程,是MySQL入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-12-12
  • Mysql 下中文亂碼的問(wèn)題解決方法總結(jié)

    Mysql 下中文亂碼的問(wèn)題解決方法總結(jié)

    這篇文章主要介紹了Mysql 下中文亂碼的問(wèn)題解決方法總結(jié)的相關(guān)資料,這里提供了解決 Mysql 中文亂碼問(wèn)題的辦法,需要的朋友可以參考下
    2016-11-11

最新評(píng)論