如何将kafka更新流公式化为flink动态表的源?

时间:2019-08-22 22:41:50

标签: sql sql-update command-line-interface apache-flink sql-delete

我有一个cdc kafka流(INSERT / UPDATE / DELETE),我需要将其转换为另一个kafka流,FLINK SQL-Cli可以将其用作动态表。

我有两个问题:

1)如何格式化kafka-source-topic上的数据以说明UPDATE和DELETE? (LAST_VALUE技巧?仍然不是FLINK开源的一部分)

让我们说,我创建了一个表T,当插入卡夫卡主题记录时,SELECT COUNT(*)FROM T转到1,但是将主题记录插入源主题中以使表算回到0?

转换继续查询并打印:

val result = tableEnv.sqlQuery("select name,sum(age) as age,city from 
person_table group by name,city")
val retract_result = tableEnv.toRetractStream[Person](result).print()

给出以下内容:

2> (true,Person(jack,25,beijing))
2> (false,Person(jack,25,beijing))
2> (true,Person(jack,50,beijing))
2> (false,Person(jack,50,beijing))
2> (true,Person(jack,75,beijing))

那么,我应该能够将类似的流推送到Kafka并从中构建动态表?

2)如何在缩回模式下将继续查询推入kafka-topic-sink? 当前从FLINK-SQL-CLI中收到以下错误:

AppendStreamTableSink requires that Table has only insert changes

那么,如何在CLI配置中配置kafka-RetractStreamTableSink?

0 个答案:

没有答案