微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

带有AWS Kinesis的Debezium嵌入式引擎-PostgreSQL快照加载和事务元数据流

如何解决带有AWS Kinesis的Debezium嵌入式引擎-PostgreSQL快照加载和事务元数据流

我想将Debezium嵌入式引擎与AWS Kinesis一起使用,以便加载Postgresql数据库的初始快照,然后连续执行CDC。

我知道,使用Kafka Connect,我可以开箱即用的交易元数据主题,以便检查交易边界。

使用Debezium嵌入式引擎和AWS Kinesis(https://debezium.io/blog/2018/08/30/streaming-mysql-data-changes-into-kinesis/)情况相同吗?在这种情况下,我将拥有Kinesis Transaction元数据流吗?另外,Debezium嵌入式引擎会为现有Postgresql数据执行初始快照吗?

已更新

我用Postgresql实现了测试EmbeddedEngine应用程序:

    engine = EmbeddedEngine.create()
            .using(config)
            .using(this.getClass().getClassLoader())
            .using(Clock.SYstem)
            .notifying(this::sendRecord)
            .build();

现在,在我的'sendRecord(SourceRecord record)'方法中,我可以看到参与事务的每个数据库表的正确主题,例如:

private void sendRecord(SourceRecord record) {

    String streamName = streamNameMapper(record.topic());
    System.out.println("streamName: " + streamName);

结果如下:

streamName: kinesis.public.user_states
streamName: kinesis.public.tasks

在同一txId=1510

但是我仍然看不到交易元数据流。 如何使用Debezium EmbeddedEngine正确获取事务元数据流?

解决方法

如果您不具体使用 Debezium 嵌入式引擎,那么 Debezium 本身提供了一个选项,它被称为 Dewbezium 服务器(在内部我相信它使用了 Debezium 引擎)。 它是使用 Kafka 的一个很好的替代方案,它目前支持 Kinesis、Google PubSub、Apache Pulsar 用于 CDC。

这里有一篇文章可以参考 https://xyzcoder.github.io/2021/02/19/cdc-using-debezium-server-mysql-kinesis.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。