Как заставить планировщик 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

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


person T1234    schedule 25.05.2019    source источник


Ответы (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
person A. Saunders    schedule 25.05.2019
comment
Рад слышать это. Если вы удовлетворены ответом и объяснением, можете ли вы отметить вопрос как ответ? Спасибо! - person A. Saunders; 27.05.2019