首页 文章

用于DB字段更新的Kafka / Connect / Streams

提问于
浏览
0

我的问题如下:

我有2个kafka主题:

  • customer-purchase :包含有关客户购买的信息,其中一个字段指示状态等于 NEW .

  • purchase-status :包含更新购买的最新状态的事件,例如 IN TRANSITDELIVERED ...

使用kafka,kafka connect和/或kafka流,我想最终得到一个SQL数据库,其中包含丰富了最新状态信息的购买 .

在数据库世界中,这将导致一个简单的 UPDATE 查询 .

理论上,我可以为 customer-purchase 编写1个消费者(或1个连接接收器),其中所有内容都被简单地转储到DB和1个消费者的 purchase-status ,这将触发DB UPDATE 查询,但我想知道是否还有更多kafka-喜欢这样做的方式 .

注意:使用kafka-streams并加入2个主题对我来说似乎有点矫枉过正,因为我实际上不需要连接而是简单更新字段 . 但在这个假设中我可能完全错了!

1 回答

  • 0

    从理论上讲,我可以为客户购买1个消费者(或1个连接接收器),其中所有内容都被简单地转储到数据库和1个消费者的购买状态,这将触发DB UPDATE查询,但我想知道是否存在这是一种更像 Kafka 的方式 .

    这几乎就是Kafka Streams中表表连接的实际功能 .

    在你的例子中,你通过"one-event-at-a-time processing"的镜头看它 . 表表连接发送"updates"非常类似于您描述的内容 . 请参阅https://kafka.apache.org/documentation/streams/developer-guide/dsl-api.html#ktable-ktable-join处的连接语义 .

    注意:使用kafka-streams并加入2个主题对我来说似乎有点矫枉过正,因为我实际上不需要连接而只需要简单更新字段 . 但在这个假设中我可能完全错了!

    你提到你考虑加入这两个主题,但决定反对它 . 为什么这样?这似乎是一个好主意,对我来说也是惯用的 . 它与DB世界的例子也没有太大的不同:你如何在“包含购买丰富的最新状态信息的SQL数据库”中进行丰富步骤?这实际上是一个连接操作(见上文) .

相关问题