Apache kafka Kafka:将源代码从MySQL切换到Kafka

Apache kafka Kafka:将源代码从MySQL切换到Kafka,apache-kafka,kafka-consumer-api,Apache Kafka,Kafka Consumer Api,事件数据来自MySQL和Kafka主题。 我们将从MySQL加载历史数据,然后切换到Kafka获取当前数据。MySQL ID也会流入Kafka。因此,消息包含事件ID。 Kafka流事件将使用spark作业进行处理,并最终将数据摄取到报告表中 问题:如何加载历史数据并实时切换到Kafka源 1-创建一个临时使用者组来存储来自所有分区的当前偏移量和当前时间戳TS1 2-从MySQL表中获取最小ID和最大ID,其中创建日期TS1 然后继续处理 不应存在任何重复记录。 你怎么认为。这种方法有任何问题。

事件数据来自MySQL和Kafka主题。 我们将从MySQL加载历史数据,然后切换到Kafka获取当前数据。MySQL ID也会流入Kafka。因此,消息包含事件ID。 Kafka流事件将使用spark作业进行处理,并最终将数据摄取到报告表中

问题:如何加载历史数据并实时切换到Kafka源

1-创建一个临时使用者组来存储来自所有分区的当前偏移量和当前时间戳TS1

2-从MySQL表中获取最小ID和最大ID,其中创建日期TS1 然后继续处理

不应存在任何重复记录。 你怎么认为。这种方法有任何问题。
我看到时间戳一直到秒。会有一些重复,因为我们直到毫秒才有精确的日期。

Debezium和Kafka Connect JDBC源代码都允许批量、快照加载到Kafka主题中。不需要火花


初始加载后,您可以保留数据库以捕获CDC事件,直到您重写生产者以将该数据主动发送到其自己的主题

我不确定我是否理解时间戳要求,但根据卡夫卡记录的定义,更改时间戳将创建独特的事件。先生,您能详细说明一下吗。批处理和流处理都需要Spark作业,因为我们还需要进行一些转换。但这不是问题所在。问题是我将在什么时候切换源代码。在数据库中,我们有ID和创建日期。但是卡夫卡我们有每个分区的偏移量。当然,你现在使用的是Spark作业。我建议将上面列出的两个选项作为备选方案,因为这个问题可以在不编写任何代码的情况下解决。补偿并不重要。如果必须保持顺序,分区只能是一个。这个主题需要提前创建,无论如何我可能不理解。我可以直接给你留言吗。这将真正有助于卡夫卡也可以有ID,它肯定有记录日期,默认为“记录创建日期”