我正在从Kafka主题中获取JSON数据。我需要将此数据转储到GCS(Google云存储)的目录中,其中将从JSON数据中的“ ID”值中提取目录名称。
我用Google搜索,但没有找到任何类似的用例,在该用例中,可以使用Kafka Connect来解释JSON数据并根据JSON数据中的值动态创建目录。 可以使用Kafka Connect来实现吗?
答案 0 :(得分:3)
您可以使用Confluent提供的Kafka Connect GCS sink connector。
Google云存储(GCS)连接器,目前可作为 下沉,允许您将数据从Kafka主题导出到GCS对象中 各种格式。此外,对于某些数据布局,GCS连接器 通过保证一次准确的传递语义来导出数据 产生的GCS对象的使用者。
这是连接器的示例配置:
name=gcs-sink
connector.class=io.confluent.connect.gcs.GcsSinkConnector
tasks.max=1
topics=gcs_topic
gcs.bucket.name=#bucket-name
gcs.part.size=5242880
flush.size=3
gcs.credentials.path=#/path/to/credentials/keys.json
storage.class=io.confluent.connect.gcs.storage.GcsStorage
format.class=io.confluent.connect.gcs.format.avro.AvroFormat
partitioner.class=io.confluent.connect.storage.partitioner.DefaultPartitioner
schema.compatibility=BACKWARD
confluent.topic.bootstrap.servers=localhost:9092
confluent.topic.replication.factor=1
# Uncomment and insert license for production use
# confluent.license=
您可以在上面提供的链接中找到有关安装和配置的更多详细信息。
答案 1 :(得分:0)
使用大多数连接器开箱即用实际上是不可能的。相反,您可以实现自己的Kafka Connect接收器任务,该任务处理Kafka记录,然后根据JSON将它们写入正确的GCS目录。
Here's the method you'd override在连接器中。
Here's a link to the source code用于AWS S3接收器连接器。