【问题标题】:Confluent Kafka Connect : Run multiple sink connectors in synchronous wayConfluent Kafka Connect:以同步方式运行多个接收器连接器
【发布时间】:2019-01-24 01:56:28
【问题描述】:

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

【问题讨论】:

  • S3 连接器从不替换文件,AFAIK

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


【解决方案1】:

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

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

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


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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-17
      • 2018-12-29
      • 2022-11-24
      • 1970-01-01
      • 2019-08-08
      • 2022-05-31
      • 2021-08-14
      • 2018-02-06
      相关资源
      最近更新 更多