Как заставить планировщик Vertica-Kafka работать с реестром схемы Avro?

как настроить планировщик Vertica для использования данных Avro из Kafka

Привет, я пытаюсь использовать Vertica Scheduler для использования данных Avro из темы Kafka. Я написал небольшой код Java, который создает простые объекты в виде данных Avro в Kafka. Я также поместил схему в реестр kafka-schema-register и вижу ее в браузере. Пытаюсь настроить планировщик Vertica, все команды проходят без ошибок. Я также запустил микропакет, но таблица пуста, и мой планировщик не использует данные из топика Kafka. сначала я настроил файл конфигурации с именем schduler.properties:

config-schema=person100_sched username=dbadmin dbhost=10.50.50.16 dbport=5433

чем на Vertica DB я создал пул ресурсов

CREATE RESOURCE POOL person100_pool MEMORYSIZE '10%' PLANNEDCONCURRENCY 1 QUEUETIMEOUT 0;

мой следующий шаг - создание планировщика:

sudo ./vkconfig scheduler --create --operator dbadmin --frame-duration '00:00:02' --resource-pool person100_pool --conf scheduler.properties

мой следующий шаг - создать кластер

sudo ./vkconfig cluster --create --cluster person100_cluster --hosts kafka:9092 --conf scheduler.properties

мой следующий шаг - создать источник:

sudo ./vkconfig source --create --cluster person100_cluster --source person-avro --partitions 1 --conf scheduler.properties

мой следующий шаг - создание целевой таблицы:

sudo ./vkconfig target --create --target-schema public --target-table person100 --conf scheduler.properties

  • Затем я создал таблицу в Vertica с теми же типами, что и схема Person.

мой следующий создать AvroParser

sudo ./vkconfig load-spec --create --parser KafkaAvroParser --load-spec person_load --conf scheduler.properties

мой следующий шаг - создать микропакет

sudo ./vkconfig microbatch --create --microbatch personBatch --target-schema public --target-table person100 --load-spec person_load --add-source person-avro --add-source-cluster person100_cluster --conf scheduler.properties

мой следующий шаг - запустить микробатч

sudo ./vkconfig launch --conf scheduler.properties

вроде все идет хорошо, но стол пуст

Построение конвейеров данных в реальном времени с Apache Kafka: Руководство по Python
Построение конвейеров данных в реальном времени с Apache Kafka: Руководство по Python
Apache Kafka - популярная платформа распределенной потоковой передачи данных, которую можно использовать для построения конвейеров данных в реальном...
1
0
420
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Когда вы создаете свой load-spec, вам нужно указать параметры реестра схемы, которые Vertica будет использовать для анализа сообщений Avro.

--parser-parameters "schema_registry_url='schema-registry:8081',schema_registry_subject='somesubject',schema_registry_version='1',flatten_arrays=TRUE,flatten_maps=TRUE,flatten_records=TRUE"

Вместо schema-registry:8081 и somesubject используйте ту же информацию, которую вы использовали для подключения к реестру схем в вашем браузере.

Примечание: Если таблица person100 не является гибкой таблицей, вам нужно будет включить flatten_arrays=TRUE,flatten_maps=TRUE,flatten_records=TRUE в дополнение к информации реестра схемы.

Полная команда для создания спецификации нагрузки должна выглядеть примерно так.

sudo ./vkconfig load-spec --create --parser KafkaAvroParser --load-spec person_load --parser-parameters "schema_registry_url='schema-registry:8081',schema_registry_subject='somesubject',schema_registry_version='1',flatten_arrays=TRUE,flatten_maps=TRUE,flatten_records=TRUE" --conf scheduler.properties

Рад слышать это. Если вы удовлетворены ответом и объяснением, можете ли вы отметить вопрос как ответ? Спасибо!

A. Saunders 27.05.2019 17:45

Другие вопросы по теме