我们正在使用kafka connect s3 sink连接器连接到kafka并将数据加载到s3 bucket。现在我想使用copy命令将数据从s3 bucket加载到aws redshift,为此我正在创建自己的自定义连接器。用例是我想以同步方式将通过s3创建的数据加载到redshift,下一次s3连接器应该替换现有的文件,然后我们的自定义连接器再次将数据加载到s3。如何使用合流Kafka连接或其他更好的方法来完成相同的任务?提前谢谢!
我们正在使用kafka connect s3 sink连接器连接到kafka并将数据加载到s3 bucket。现在我想使用copy命令将数据从s3 bucket加载到aws redshift,为此我正在创建自己的自定义连接器。用例是我想以同步方式将通过s3创建的数据加载到redshift,下一次s3连接器应该替换现有的文件,然后我们的自定义连接器再次将数据加载到s3。如何使用合流Kafka连接或其他更好的方法来完成相同的任务?提前谢谢!
2条答案
按热度按时间mefy6pfw1#
如果您想让数据红移,您可能只需要使用jdbc sink连接器并将红移jdbc驱动程序下载到kafka connect jdbc目录中。
否则,可以使用lambda触发某种类型的s3事件通知来执行某种类型的红移上载,而不是编写连接器
或者,如果您只是想查询s3数据,那么可以使用athena而不用处理任何数据库
但基本上,接收器连接器彼此之间不通信。它们是独立的任务,最初设计用于从主题消费并写入目标,不一定触发外部下游系统。
8wtpewkr2#
您想要实现从kafka到redshift的同步行为,那么s3接收器连接器不是正确的选择。
如果您使用的是s3接收器连接器,那么首先将数据放入s3,然后从外部运行copy命令推送到s3复制命令是额外的开销)
在按下redshift之前,不能进行自定义代码或验证。
redshift sink connector提供了本机jdbc库,它相当于s3copy命令。