如何将 Kafka KStream 与 A​​zure Cloud 上的普通文件缓存结合起来?

How to join Kafka KStream with Plain file cache on Azure Cloud?

我正在开发日志丰富 Kafka Stream 作业。计划是使用 Azure Blob 上的文件缓存来丰富来自 Kafka KStream 的日志条目。我的理解是我必须将缓存文件从 Azure Blob 加载到 KTable。然后我就可以加入KStream和KTable了。

作为一个新手,我遇到了两个难点,谁能给我一些提示?

  1. 看起来 Kafka Connect 没有连接到 Azure Blob 的库。我是否必须编写另一个单独的作业才能始终从 Azure 读取并写回 KTable?有什么快速的方法吗?

  2. 缓存每天更新四到五次,作业需要检测缓存文件的变化并反映到KTable中。要检测缓存文件中是否删除了某些条目,是否意味着我必须及时比较 KTable 和文件之间的每个条目?还有更有效的方法吗?

谢谢

有多种方法可以解决这个问题。你需要意识到的第一件事是,如果你想将数据读入 KTable.

,你需要先将数据放入 Kafka 主题中

如果没有连接器,您可以编写自己的连接器 (https://docs.confluent.io/current/connect/devguide.html)。另一种方法是编写一个小型应用程序,它从 Azure 读取数据并使用 KafkaProducer 写入主题。

对于 KTable 的更新,从 Kafka Streams 的角度来看,您无需担心这一点。如果有新数据写入主题,KTable 将自动更新。如果您编写自己的连接器,这也将确保对文件的更新将自动传播到主题中。如果您编写自己的应用程序,则需要确保此应用程序将更改写入主题。