我正在用Kafka Streams(v0.10.0.1)编写一个应用程序,并希望用查找数据丰富我正在处理的记录.此数据(带时间戳的文件)每天(或每天2-3次)写入HDFS目录.
如何在Kafka Streams应用程序中加载它并加入实际KStream?
当新文件到达时,从HDFS重新读取数据的最佳做法是什么?
或者更好地切换到Kafka Connect将KDBka表内容写入Kafka主题并将其写入所有Kafka Streams应用程序实例可以使用的主题?
更新:
正如Kafka Connect所建议的那样.因为查询数据每天在RDBMS中更新,所以我考虑将Kafka Connect作为预定的一次性工作运行,而不是始终保持连接打开.是的,因为语义和保持连接始终打开的开销,并确保它不会被中断..等等.对于我来说,在这种情况下进行预定的提取看起来更安全.
查找数据不大,可以删除/添加/修改记录.我不知道如何总是完全转储到Kafka主题并截断以前的记录.启用日志压缩并为已删除的密钥发送空值可能不起作用,因为我不知道源系统中已删除的内容.另外AFAIK我在压实发生时没有控制权.
hadoop apache-kafka apache-kafka-streams confluent apache-kafka-connect