【问题标题】:Kafka KTable: How can we schedule the materializationKafka KTable:我们如何安排物化
【发布时间】:2018-05-14 12:14:57
【问题描述】:

有没有办法设置一个时间表,将 KTable 中的数据持久化(.to())到一个主题中?本质上是让 KTable 累积所有数据,并在特定时间将数据写入主题。

【问题讨论】:

标签: apache-kafka apache-kafka-streams


【解决方案1】:

没有显式控制,但是,KTable 在内部缓存下游数据以抑制对同一键的连续更新(参见https://kafka.apache.org/11/documentation/streams/developer-guide/memory-mgmt.htmlhttps://www.confluent.io/blog/watermarks-tables-event-time-dataflow-model/)。同时,每次 Kafka Streams 提交时都会刷新此缓存。

因此,如果缓存足够大以容纳所有数据,您可以通过相应地配置 commit.interval.ms 来模拟所需的行为。请注意,这可能只是所需行为的近似值。

作为替代方案,您可以通过Punctuations 构建自定义解决方案。想法是不通过KTable#to() 运算符写入任何数据,而是使用标点符号计划扫描整个存储以将数据写入主题。这种方法非常先进,有点“hacky”,但不是一个干净的解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-20
    • 1970-01-01
    • 2017-08-13
    • 2020-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多