Как я могу отправить данные без схемы в kafka - confluent jdb c - использование приемника? - PullRequest
0 голосов
/ 15 апреля 2020

Я загружаю свои данные из kafka в oracle с помощью jdb c -sink.

Но я пишу свою схему по значению с данными.

Я не хочу писать схема с данными, как я могу написать схему на kafka topi c и затем я хочу отправить только данные от моего клиента?

заранее спасибо

json data

{
    "schema": {
        "type": "struct",
        "fields": [
            {
                "field": 'ID',
                "type": "int32",
                "optional": False
            },
            {
                "field": 'PRODUCT',
                "type": "string",
                "optional": True
            },
            {
                "field": 'QUANTITY',
                "type": "int32",
                "optional": True
            },
            {
                "field": 'PRICE',
                "type": "int32",
                "optional": True
            }
        ],
        "optional": True,
        "name": "myrecord"
    },
    "payload": {
        "ID": 1071,
        "PRODUCT": 'ersin',
        "QUANTITIY": 1071,
        "PRICE": 1453
   }

python код:

producer.send(topic, key=b'1071'
              , value=json.dumps(v, default=json_util.default).encode('utf-8'))

как я могу решить эту проблему?

заранее спасибо

1 Ответ

2 голосов
/ 15 апреля 2020

Если вы хотите использовать приемник JDB C, вы должны предоставить схему. Это может быть достигнуто тремя способами:

  • Использование JSON с включенными схемами
  • Использование Avro и Реестр схем
  • Использование JSON схемы с реестром схем

В настоящее время вы используете JSON с включенными схемами, которые требуют отправки схемы вместе с фактической полезной нагрузкой. Единственный способ удовлетворить ваши требования - использовать Avro и Confluent Schema Registry, чтобы ваши схемы были зарегистрированы в реестре схем. Таким образом, вам не нужно будет каждый раз отправлять схему полезной нагрузки.

Другой вариант - использовать JSON с реестром схемы ( # 1289 ). Для Kafka Connect вы можете использовать JsonSchemaConverter, а для Java Потребителей и производителей вы можете использовать KafkaJsonSchemaSerializer и KafkaJsonSchemaDeserializer.

...