Я пытаюсь передать данные напрямую из K SQL в InfluxDB (или любой другой коннектор, требующий определений). Я могу заставить все работать в простом случае, но у меня возникают проблемы, когда схема требует сложных типов. (То есть, теги для InfuxDB).
Вот пример моего потока / схемы:
Field | Type
-------------------------------------------------------------------
ROWKEY | VARCHAR(STRING) (primary key)
FIELD_1 | VARCHAR(STRING)
FIELD_2 | VARCHAR(STRING)
FIELD_3 | VARCHAR(STRING)
FIELD_4 | DOUBLE
TAGS | MAP<STRING, VARCHAR(STRING)>
Если я вручную создаю схему AVRO и заполняю записи от простого производителя, я могу прочтите руководство по началу работы здесь и вставьте теги для InfluxDB.
Однако, когда я перейду на K SQL, если я попытаюсь напрямую потопить поток AVRO в InfluxDB, я теряю информацию о сложных типах (тегах). Я заметил предупреждение из этого сообщения в блоге : «Предупреждение ksqlDB / K SQL еще не может записывать данные в формате Avro, совместимом с этим коннектором»
Затем я пытаюсь преобразовать Поток AVRO в формат JSON, но теперь я понимаю, что мне придется указывать схему в каждой записи, подобно тому, что задает этот вопрос . Мне не удалось преобразовать поток AVRO в поток JSON и одновременно встроить схему и полезную нагрузку.
Наконец, я вижу «решение для покачивания» с kafkacat, но это заставило бы меня выгружать записи из K SQL в kafkacat, а затем обратно в Kafka, прежде чем, наконец, добраться до Influx.
Есть ли способ загружать сложные записи прямо из K SQL в формате JSON или AVRO в разъем?