Bru*_*ald 4 apache-kafka apache-kafka-streams
这个问题是对Kafka Streams的跟进,其中包含有关HDFS的查找数据.我需要加入(如"地图侧"连接)小字典数据到主Kafka流
AFAIK,Kafka Stream实例始终适用于主题的给定分区.如果我想进行查找,我需要为连接键重新分配两个流,以将相关记录放在一起.
如果需要检查多个查找数据,多次来回重新分配的成本是多少?无法将整个查找数据集发送到每个分区,因此当我KTable从查找主题构建一个时,我将在所有Kafka Stream应用程序实例中看到整个数据集.因此,我可以在KStream#transform()方法中进行查找,这将使本地RocksDB存储具有我拥有的所有查找数据.
我想知道哪个选项更合适:
将相同的数据(整个数据集)插入主题的每个分区并执行查找KStream#transform.当主题过分时,我们会有很多重复数据,但对于一个小数据集,这应该不是问题.
使用DSL API对两个流进行重新分区,以便能够执行查找(连接).在性能方面有什么影响?
AFAIK,Kafka Stream实例始终适用于主题的给定分区.如果我想进行查找,我需要为连接键重新分配两个流,以将相关记录放在一起.
是的,从Apache Kafka 0.10.0和0.10.1开始,这就是你需要做的.
如果需要检查多个查找数据,多次来回重新分配的成本是多少?无法将整个查找数据集发送到每个分区,因此当我从查找主题构建KTable时,我将在所有Kafka Stream应用程序实例中看到整个数据集.
这种功能 - 我们经常将其描述为"全局KTable"或"全局状态" - 确实很有用,我们已经在讨论何时/如何添加它.
2017年2月28日更新:围绕全局表的第一轮功能与Kafka 0.10.2一起发布,您可以在其中执行KStream-to-GlobalKTable连接.
使用DSL API对两个流进行重新分区,以便能够执行查找(连接).在性能方面有什么影响?
其影响主要取决于输入数据的特征(数据量,统一与偏斜数据分布等).
| 归档时间: |
|
| 查看次数: |
641 次 |
| 最近记录: |