为什么使用kafka来存储cdc数据,而不是由spark直接消费



我想使用来自多个数据源的CDC数据,例如cassandra、mysql、Oracle。。。等我已经阅读了一些文档,将cdc数据流式传输到kafka,并将数据存储到主题中。我在想,我不能写火花程序直接从源代码消费数据吗?相反,首先将数据推送到卡夫卡主题,然后火花程序连接到卡夫卡主题以进一步消费消息。以下是我的几个问题,我正在努力找出答案:

  1. 在两者之间使用kafka而不是直接消耗spark更改的记录的重要性是什么
  2. 在mid中使用kafka不会给系统增加一些延迟吗

您当然可以编写自己的Spark应用程序来消耗数据,但这样做感觉就像是在重新发明轮子。卡夫卡正在为你解决这个问题,所以你不必这么做。

此外,Kafka支持从各种来源获取输入,并将数据发布给包括Spark应用程序在内的多个订阅者。

有了Kafka,构建应用程序就更容易了,因为大多数技术都有连接器。干杯

最新更新