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

總結:

