我有以Avro格式存储的Kafka主题。我想使用整个主题(在收到时不会更改任何消息(并将其转换为 Parquet,直接保存在 S3 上。
我目前这样做,但它需要我一次使用来自 Kafka 的消息并在本地机器上处理,将它们转换为镶木地板文件,一旦整个主题被消费并且拼花地板文件完全写入,关闭写入过程,然后启动 S3 分段文件上传。或者简称| Avro in Kafka -> convert to parquet on local -> copy file to S3 |
。
相反,我想做的是| Avro in Kafka -> parquet in S3 |
需要注意的是,Kafka 主题名称不是静态的,需要在参数中输入,使用一次,然后永远不再使用。
我调查过Alpakka,似乎有可能 - 但目前尚不清楚,我没有看到任何例子。有什么建议吗?
你刚刚描述了Kafka Connect:)
Kafka Connect 是 Apache Kafka 的一部分,带有 S3 连接器插件。虽然,目前实木复合地板支持的开发仍在进行中。
有关Kafka Connect的入门知识,请参阅 http://rmoff.dev/ksldn19-kafka-connect
设置连接器时,尝试在 PUT 请求中添加"format.class": "io.confluent.connect.s3.format.parquet.ParquetFormat"
。
您可以在此处找到更多详细信息。