我们有一个kafka服务在aws上运行,并计划使用athena/s3长期存储我们的分析数据。有没有可能使用带有aws胶水服务的kafka来读取kafka并存储在s3中?
92dk7w1h1#
最好的办法是使用来自confluent的开源kafka connector for s3,因为即使服务出现故障并重新启动,它也能保证只向s3写入一次。这也是一个实时流之间的集成,所以数据立即写入s3没有额外的延迟。文件在这里:https://docs.confluent.io/current/connect/connect-storage-cloud/kafka-connect-s3/docs/s3_connector.html源代码位于github上:https://github.com/confluentinc/kafka-connect-storage-clouddocker图片:https://hub.docker.com/r/confluentinc/cp-kafka-connect/可执行包和tarball下载:https://www.confluent.io/download/kafka sink connector for s3是使用官方的apache kafka connect api编写的,因此它在标准的connect分布式worker容器中运行,并且可以通过kafka的分区和并行消耗水平地放大/缩小任务或示例的数量,以获得高吞吐量。
mkshixfv2#
我同意Kafka连接s3。如果您想对表做些什么,请查看k个表并在kafka中执行此操作,那么您仍然可以使用kafk connect移动到s3。如果将此作为etl的一部分,您可能还需要重新考虑您的etl工具,或者添加到您的工具集中并使用databricks。
2条答案
按热度按时间92dk7w1h1#
最好的办法是使用来自confluent的开源kafka connector for s3,因为即使服务出现故障并重新启动,它也能保证只向s3写入一次。这也是一个实时流之间的集成,所以数据立即写入s3没有额外的延迟。
文件在这里:
https://docs.confluent.io/current/connect/connect-storage-cloud/kafka-connect-s3/docs/s3_connector.html
源代码位于github上:
https://github.com/confluentinc/kafka-connect-storage-cloud
docker图片:
https://hub.docker.com/r/confluentinc/cp-kafka-connect/
可执行包和tarball下载:
https://www.confluent.io/download/
kafka sink connector for s3是使用官方的apache kafka connect api编写的,因此它在标准的connect分布式worker容器中运行,并且可以通过kafka的分区和并行消耗水平地放大/缩小任务或示例的数量,以获得高吞吐量。
mkshixfv2#
我同意Kafka连接s3。如果您想对表做些什么,请查看k个表并在kafka中执行此操作,那么您仍然可以使用kafk connect移动到s3。如果将此作为etl的一部分,您可能还需要重新考虑您的etl工具,或者添加到您的工具集中并使用databricks。