Datagen Source ConnectorでAvroスキーマをもとにダミーデータを生成する
例えば以下のようなスキーマを用意する。
code:user.avro
{
"namespace": "example.avro",
"type": "record",
"name": "user",
"fields": [
{"name": "user_id", "type": "int"},
{"name": "name", "type": "string"},
{"name": "favorite_number", "type": "int"}
]
}
そしてこのスキーマを指定してDatagen Source Connectorを登録する。
code:command
-H "Content-Type: application/json" \
-d '{
"connector.class": "io.confluent.kafka.connect.datagen.DatagenConnector",
"key.converter": "io.confluent.connect.avro.AvroConverter",
"value.converter": "io.confluent.connect.avro.AvroConverter",
"kafka.topic": "users",
"max.interval": 5000,
"iterations": 50,
"tasks.max": "1",
"schema.filename": "/schema/user.avro",
"schema.keyfield": "user_id"
}'
kcatでConsumeするとこんな感じでAvroスキーマをもとにテストデータの生成ができる。
code:consume
$ docker run -it --network=host edenhill/kcat:1.7.0 -C -b kafka:9092 -t users -r http://schema-registry:8081 -s avro -f '\nKey (%K bytes): %k\t\nValue (%S bytes): %s\n\Partition: %p\tOffset: %o\n--\n' Key (10 bytes): 349923159
Value (25 bytes): {"user_id": 349923159, "name": "\u001F|.we#VK\u0004", "favorite_number": -1835790193}
Partition: 0 Offset: 0
--
Key (10 bytes): 1034524506
Value (31 bytes): {"user_id": 1034524506, "name": "T\u0012S6&R\u0004\u0003X;:2k\u000FY", "favorite_number": -1345509551}
Partition: 0 Offset: 1