FLINK SQLプロジェクトの記録

A、FLINK SQLレベル

最高API FLINKのレベル、使いやすいので、より広く、例えばETL、統計分析、リアルタイムのレポート、リアルタイムのリスク管理のためのように。

中FLINK SQL階層:

 

 

 

二、FLINK重合:

1、ウィンドウ集計

一般的に使用される3つのウィンドウを内蔵:

TUMBLE(時間、INTERVAL「5」SECOND);ウィンドウをスクロールするウィンドウ内の中間層で//同様のFLINKのデータストリームAPI

HOP(時間、INTERVAL「10」SECOND、INTERVAL「5」SECOND);スライディングウィンドウ窓の中間層で//同様のFLINKのデータストリームAPI、データ統計の最後の5秒、10秒ごとに

SESSION(時間、INTERVAL '5' SECOND)

2つの形式で時間時間は、一方がproctimeあるシステム時間であり、他方はrowtimeあります。

 

 

2、グループ集計

 

データを追加する場合は続けます。

 

 データを入力し続けます。

 

 

その結果、連続再生の過程です。

とウィンドウ集約グループ集計差

1)、ウィンドウ集約グループ集計し、いくつかの明白な違いがあります。主な違いは、であり、ウィンドウが出力された場合にのみ、結果が最終的な出力値である窓端部骨材、その出力ストリームを変更しないであろうストリーム追加です。

グループ集計があり、最新の結果のデータ出力と各取引、結果は常に更新され、もし、データベース内のデータを、その出力ストリームは、ストリームのアップデートがあるよう。

 

2)、另外一个区别是,window Aggregate 由于有 watermark ,可以精确知道哪些窗口已经过期了,所以可以及时清理过期状态,保证状态维持在稳定的大小。

而 Group Aggregate 因为不知道哪些数据是过期的,所以状态会无限增长,这对于生产作业来说不是很稳定,所以建议对 Group Aggregate 的作业配上 State TTL 的配置。

 

对比图:

 

 项目代码设置:

tEnv.getConfig().setIdleStateRetentionTime(org.apache.flink.api.common.time.Time.minutes(1),org.apache.flink.api.common.time.Time.minutes(10));

おすすめ

転載: www.cnblogs.com/gxyandwmm/p/12076729.html