如何在没有Kafka Connect接收器的情况下将数据从Kafka导入存储?

时间:2019-06-23 08:13:40

标签: apache-kafka apache-kafka-connect

在阅读有关Kafka以及如何从Kafka将数据获取到适合某些特定任务的可查询数据库的信息时,通常会提到Kafka Connect接收器。 enter image description here 如果我需要Kafka来搜索索引(例如ElasticSearch)或需要Hadoop到Spark的分析(如果有Kafka Connect接收器),这听起来就像是要走的路。

但是我的问题是,处理不那么流行的MyImaginaryDB的商店的最佳方法是什么,我只能通过某种API来访问它,并且需要安全可靠地处理数据,以及在插入之前进行体面改造?是否建议:

  1. 只需从Kafka使用API​​并使用MyImaginaryDB驱动程序进行编写
  2. 弄清楚如何构建自定义的Kafka Connect接收器(假设它可以处理在登陆MyImaginaryDB之前所需的架构,身份验证/授权,重试,容错,转换和后处理)

我还一直在阅读有关Kafka KSQL和Streams的信息,想知道这是否有助于在将数据发送到最终存储之前进行数据转换。

1 个答案:

答案 0 :(得分:1)

选项2肯定是。仅仅因为没有现有的源连接器,并不意味着Kafka Connect不适合您。如果您仍然要编写一些代码 ,则可以使用Kafka Connect框架。 Kafka Connect处理所有常见的内容(方案,序列化,重新启动,偏移量跟踪,横向扩展,并行等),而您只需要实现将数据传输到MyImaginaryDB的功能即可。

关于转换,标准模式为:

  • 使用Single Message Transform处理轻量级内容
  • 使用Kafka Streams / KSQL并写回另一个主题,然后通过Kafka Connect将其路由到目标

如果您尝试构建自己的应用程序(转换+数据接收器),那么您就要担负起责任,并且要重新发明已经存在的一大块(以可靠的可扩展方式与外部系统集成)

您可能会发现此演讲对了解Kafka Connect可以做什么有帮助:http://rmoff.dev/ksldn19-kafka-connect