как настроить планировщик 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
мой следующий создать 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
вроде все идет хорошо, но стол пуст
Когда вы создаете свой 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
Рад слышать это. Если вы удовлетворены ответом и объяснением, можете ли вы отметить вопрос как ответ? Спасибо!