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需要等待。
總結: