Confluent Kafka Connect:以同步方式运行多个接收器连接器

时间:2018-08-17 04:23:20

标签: apache-kafka apache-kafka-connect confluent

我们正在使用Kafka connect S3接收器连接器,该连接器连接到Kafka并将数据加载到S3存储桶中。现在我想使用Copy命令将数据从S3存储桶加载到AWS Redshift,为此我正在创建自己的自定义连接器。情况是我想以同步方式将在S3上创建的数据加载到Redshift,然后下一次S3连接器应替换现有文件,然后再次将我们的自定义连接器加载数据到S3。 如何使用Confluent Kafka Connect或其他更好的方法来完成相同任务? 提前致谢 !

2 个答案:

答案 0 :(得分:0)

如果要将数据转移到Redshift,则可能应该只使用JDBC Sink连接器并将Redshift JDBC Driver下载到kafka-connect-jdbc目录中。

否则,您可以使用Lambda触发某种类型的S3事件通知来进行某种类型的Redshift上传,而不是编写连接器

或者,如果您只是想查询S3数据,则可以使用Athena而不处理任何数据库


但是,基本上,接收器连接器之间无法通信。它们是独立的任务,旨在最初从主题中使用并写入目的地,而不必触发外部下游系统。

答案 1 :(得分:0)

您想要实现从Kafka到redshift的同步行为,那么S3接收器连接器不是正确的选择。

  1. 如果使用的是S3接收器连接器,则首先将数据放入s3,然后从外部运行copy命令将其推送到S3。 (复制命令是额外的开销)
  2. 在进行红移之前,无法进行任何自定义代码或验证。
  3. Redshift Sink连接器附带了本机jdbc库,该库等效于S3复制命令。