Kafka Streams:为执行 KTable-KTable 外键连接的应用程序增加主题分区
Kafka Streams: Increasing topic partitions for an application performing a KTable-KTable foreign key join
我找到的大部分信息都与主键连接有关。我知道外键连接是 Kafka Streams 的一个相对较新的功能。我对这将如何扩展很感兴趣。我知道 Kafka Streams 并行性受每个主题的分区数量限制,但是我对增加输入主题分区意味着什么有一些疑问。
- foreign key join对co-partition input topics有同样的要求吗?也就是说,两个主题是否需要具有相同数量的分区?
- 如何在应用程序已经 运行 投入生产数月或数年之后添加分区?支持每个 KTable 的变更日志主题存储来自特定输入主题分区的数据。如果一个是增加输入主题中的分区,这对我们的 KTables 的状态存储和变更日志有何影响?据推测,我们不能只是重新开始并丢失该数据,因为它已经积累了数月和数年,并且对于执行连接至关重要。它可能不会很快被上游数据取代。我们是否需要清除我们的状态存储、创建新的输入主题并将所有 KTable 更新日志主题数据重新发送给它们?
- 其他内部“订阅”主题如何?
Does the foreign key join have the same requirement to co-partition input topics? That is, do both topics need to have the same number of partitions?
没有。有关详细信息,请查看 https://www.confluent.io/blog/data-enrichment-with-kafka-streams-foreign-key-joins/
How does one add a partitions later after the application has been running in production for months or years?
即使您不使用 Kafka Streams,您也无法真正做到这一点。问题是,您的输入数据是按键分区的,如果您添加分区,输入主题中的分区就会中断。 -- 推荐的模式是创建一个具有不同分区数的新主题。
The changelog topics backing each KTable store data from certain input topic partitions. If one is to increase the partitions in the input topics, how does this impact our KTables' state stores and changelogs?
它会破坏应用程序。事实上,如果 Kafka Streams 检测到输入主题分区的数量与更改日志主题分区的数量不匹配,它将进行检查并引发异常。
我找到的大部分信息都与主键连接有关。我知道外键连接是 Kafka Streams 的一个相对较新的功能。我对这将如何扩展很感兴趣。我知道 Kafka Streams 并行性受每个主题的分区数量限制,但是我对增加输入主题分区意味着什么有一些疑问。
- foreign key join对co-partition input topics有同样的要求吗?也就是说,两个主题是否需要具有相同数量的分区?
- 如何在应用程序已经 运行 投入生产数月或数年之后添加分区?支持每个 KTable 的变更日志主题存储来自特定输入主题分区的数据。如果一个是增加输入主题中的分区,这对我们的 KTables 的状态存储和变更日志有何影响?据推测,我们不能只是重新开始并丢失该数据,因为它已经积累了数月和数年,并且对于执行连接至关重要。它可能不会很快被上游数据取代。我们是否需要清除我们的状态存储、创建新的输入主题并将所有 KTable 更新日志主题数据重新发送给它们?
- 其他内部“订阅”主题如何?
Does the foreign key join have the same requirement to co-partition input topics? That is, do both topics need to have the same number of partitions?
没有。有关详细信息,请查看 https://www.confluent.io/blog/data-enrichment-with-kafka-streams-foreign-key-joins/
How does one add a partitions later after the application has been running in production for months or years?
即使您不使用 Kafka Streams,您也无法真正做到这一点。问题是,您的输入数据是按键分区的,如果您添加分区,输入主题中的分区就会中断。 -- 推荐的模式是创建一个具有不同分区数的新主题。
The changelog topics backing each KTable store data from certain input topic partitions. If one is to increase the partitions in the input topics, how does this impact our KTables' state stores and changelogs?
它会破坏应用程序。事实上,如果 Kafka Streams 检测到输入主题分区的数量与更改日志主题分区的数量不匹配,它将进行检查并引发异常。