Flink基礎-Table API教程


1.table api特點:

使得多聲明的數據處理起來更為容易,擴展標准sql更為容易

 

enviroment:

 

 

 

如何得到一個表:

1.自己寫table的描述信息

2.通過自定義tablesouce注冊到env中

3.datastream也可以通過注冊得到一個表

 

 

 

如何輸出一個table:

和輸入的三種方式是一致的

 

 

 

 

如何查詢一個表:

對列上一些函數:

 

 

 

 

對列上的一些操作:

addcolumns添加,addorreplacecolumns添加並且覆蓋,renamecolumns重命名,dropcolumns刪除

withcolumns選擇指定的列,withoutcolumns反選指定的列

cloumns使用的語法:

 

 可以是字段名,下標,默認下標是從1開始計算的

 

 

row-based operation:

map-operation的好處:

比如需要對這個表中的每一列都做一些udf的操作,比如if,cocat這種,

你就需要對每列都寫一個udf,但是如果在table上使用map算子就會非常方便

 

 

flatmap-opreation:

輸入一行-輸出多行

 

 

aggregate-operation:

輸入多行-輸出一行

 

 

輸入多行-輸出多行:topn

flataggregate-operation:

 

 

aggregate vs tableaggregate:

 

 

 

窗口:

時間語義需要配合窗口操作才能發揮作用

 

gruop windows 分組窗口:(整張表)

根據時間或行數據,把數據聚合到組中。

 

滾動窗口:tumbling windows

可以通過時間開窗,也可以通過行數開窗,之所以行數也要時間字段是因為需要對數據進行排序來取。

 

 

 

滑動窗口:sliding windows

 

 

 會話窗口:session window

 

 

 

over windows 開窗函數:(針對某行)

針對每個輸入行,計算附近行范圍的聚合。

無界窗口:over windows

 

 

 

有界over windows:

目前flink只支持preceding 到current row,因為如果要支持following需要等待。

 

 

 

總結:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM