轉自:https://blog.csdn.net/aA518189/article/details/87816139
簡介
使用flinkSQL處理實時數據當我們把表轉化成流的時候,需要使用toAppendStream與toRetractStream這兩個方法。稍不注意可能直接選擇了toAppendStream。這個兩個方法還是有很大區別的,下面具體介紹。
toAppendStream與toRetractStream的區別
追加模式:只有在動態Table僅通過INSERT更改修改時才能使用此模式,即它僅附加,並且以前發出的結果永遠不會更新。
如果更新或刪除操作使用追加模式會失敗報錯
縮進模式:始終可以使用此模式。返回值是boolean類型。它用true或false來標記數據的插入和撤回,返回true代表數據插入,false代表數據的撤回
按照官網的理解如果數據只是不斷添加,可以使用追加模式,其余方式則不可以使用追加模式,而縮進模式側可以適用於更新,刪除等場景。具體的區別 如下圖所示:
通過上圖可以清晰的看到兩種方式的區別,當我們使用的sql語句包含:count() group by時,必須使用縮進模式。