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

Confluent Kafka Connect : Run multiple sink connectors in synchronous way

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

如果你想要数据到 Redshift,你应该只使用 JDBC 接收器连接器并将 Redshift JDBC Driver 下载到 kafka-connect-jdbc 目录中。

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

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


但基本上,Sink Connector 之间不会进行通信。它们是独立的任务,旨在最初从主题消费并写入目的地,不一定触发外部下游系统。

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

  1. 如果您使用的是 S3 接收器连接器,则首先将数据放入 s3,然后从外部 运行 复制命令以推送到 S3。 (复制命令是额外的开销)
  2. 在推送到 redshift 之前不会发生自定义代码或验证。
  3. Redshift sink 连接器提供了原生 jdbc 库,相当于 S3 复制命令的速度。