表到流的转换
动态表可以像普通数据库表一样通过 INSERT
、UPDATE
和 DELETE
来不断修改,它可能是一个只有一行、不断更新的表,也可能是一个 insert-only 的表,没有 UPDATE
和 DELETE
修改,或者介于两者之间的其他表。
在将动态表转换为流或将其写入外部系统时,需要对这些更改进行编码,Table API 和 SQL 支持三种方式来编码一个动态表的变化:
- Append-only 流: 仅通过
INSERT
操作修改的动态表可以通过输出插入的行转换为流。 - Retract 流: retract 流包含两种类型的 message: add messages 和 retract messages ;通过将
INSERT
操作编码为 add message、将DELETE
操作编码为 retract message、将UPDATE
操作编码为更新(先前)行的 retract message 和更新(新)行的 add message,