【问题标题】:Kafka Data Stream IDKafka 数据流 ID
【发布时间】:2019-02-08 06:47:50
【问题描述】:

我是 Kafka 新手,正在尝试为我的 apache httpd 日志构建到 mongodb 的管道。

我有使用 Kafka Output 从 Filebeat 生成的数据。然后,我使用 Kstreams 从主题中读取数据并将数据映射到数据并流式传输到不同的主题。然后使用 Kafka Connect 将数据发送到数据库 (MongoDB)。不幸的是,我来自 Filebeat 的数据没有 ID。

如何为他们创建 ID,因为我想创建一个唯一的 ID 并将其插入到文档中,然后再将其下沉到 mongodb?我希望这可以发生在 mapValues 转换中;

【问题讨论】:

  • 您需要什么样的身份证?主机名/ip & 文件名+文件 modtime 的组合或散列是否足够?
  • 实际上可能就足够了。我觉得它有可能在技术上并不总是独一无二的,但几乎总是如此。对于我的用例,只是为了让球滚动,我将尝试这个。

标签: mongodb apache-kafka apache-kafka-streams filebeat


【解决方案1】:

我认为您可以结合使用分区和偏移量来为每条消息创建一个唯一的 ID。如果您想让主题在各个主题中独一无二,您可能需要添加主题。

【讨论】:

  • 我无法访问 KStream 对象内的分区或偏移量或主题。
  • 我承认我不是 Kafka Stream 专家,但也许这会有所帮助 - stackoverflow.com/questions/40807346/…
  • 您需要使用transform() 而不是mapValue()——context 方法提供的context 对象,允许您访问每个输入记录的主题、分区和偏移量。
猜你喜欢
  • 2021-08-21
  • 2013-06-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-05
  • 2021-01-30
  • 1970-01-01
相关资源
最近更新 更多