Flink Table Sql 流表轉換

2021-10-12 08:43:36 字數 939 閱讀 4724

表到流的轉換

動態表可以像普通資料表一樣通過insert, update, delete來不斷進行修改。 它可能是只有一行, 不斷更新表,也可能是乙個insert-only的表, 沒有update和delete修改, 或者介於兩者之間的其他表。

在將動態表轉換為流或將其寫入外部系統時,需要將這些更改進行編碼。 flink的table apihe sql支援 三種方式來編碼乙個動態表的變化:

retrac流:retract流包含兩種型別的message: add messages和retrace message. 通過鏡insert 操作編碼為add message, 將delete操作編碼為retract message, 將update 操作編碼為(先前)更新的retract message和(新)更新的行add message. 將動態表轉換為retract流。 下圖顯示了將動態表轉換為retract流的過程

其實呢就是 會有乙個標誌

比如在我們進行 table 轉stream 然後進行輸出。 對於輸出結果會是乙個二元組

(type, value) type表示什麼操作 其值是boolean型別 true 表示新增, false表示刪除。

所以當有乙個記錄新增對應為 (true, 新增的-value)

當有乙個記錄刪除是對應 (false, 刪除的value)

當有乙個記錄更新 (false, 之前的value), (true,更新後的value)

其就是在之前有update操作 會有兩個記錄 乙個是刪除,然後插入

現在的update操作就是直接為一條記錄 upsert

官方文件:

Openflow流表學習

任務目的 1 掌握openflow流表和流表項基礎知識。2 掌握openflow流表匹配規則。3 掌握基本的openflow流表操作方法。任務環境 裝置名稱 軟體環境 映象 硬體環境 控制器ryu4.7.0桌面版 cpu 2核 記憶體 4g 磁碟 20g 交換機open vswitch 2.3.1命...

Open vSwitch流表管理

任務目的 1 了解open vswitch流表的基本概念。2 掌握流表的基本命令,學會新增 刪除 檢視流表,為後續實驗做準備。任務環境 裝置名稱 軟體環境 硬體環境 交換機ubuntu 14.04命令列版 open vswitch 2.3.1 cpu 1核 記憶體 2g 磁碟 20g 注 系統預設的...

EAS 審批流相關表

我們知道在eas早期版本,是沒有連線屬性的說法,審批流相關表的關聯關係都是自有屬性。這裡以費用報銷單的審批流為例 select detail.fassignid assignid,審批結果 bill.fnumber billnumber,單據編號 act.factdefname l2 actname...