#schema #apache-nifi #avro #csvreader
Вопрос:
Набор свойств CSVReader: введите описание изображения здесь
Вот схема, которую я создал и зарегистрировал в AvroSchemaRegistry
{ «пространство имен»: «nifi», «тип»: «запись», «имя»: «пользователи», «поля» : [ {«имя»: «имя», «тип»: «строка»}, {«имя»: «фамилия», «тип»: «строка»}, {«имя»: «возраст», «тип»: «int»} ] }
Ошибка, с которой я столкнулся при запуске процессора Apache-nifi
org.apache.nifi.schema.access.SchemaNotFoundException: FlowFile did not contain appropriate attributes to determine Schema Text
Ответ №1:
Настройте свой CSVReader следующим образом —
Schema Access Strategy
= Use 'Schema Name' Property
Schema Registry
= Your AvroSchemaRegistry Controller Service
Schema Name
= users
Schema Text
= let it be default value
Это означает, что CSVReader будет искать в реестре схемы указанное имя схемы, поскольку стратегия доступа-это имя схемы, и мы передаем его в реестр.
Комментарии:
1. Это работает как заклинание, спасибо. Кстати, я планирую иметь первичный ключ с автоматическим приращением, как он будет настроен в схеме? Спасибо.
2. Можете ли вы подробнее рассказать о том, как и где вы используете первичный ключ автоматического увеличения? Вы имеете в виду версию схемы?
3. В моей таблице первичный ключ автоматически получит свое значение из последовательности. Вот как я устанавливаю базу данных схемы. ** идентификатор целого числа ПО УМОЛЧАНИЮ nextval(‘public.user_row_dtl_seq’::regclass) НЕ РАВЕН НУЛЮ,** И в мой CSV- идентификатор не добавляется только имя, фамилия, возраст. Поэтому мой вопрос в том, как я буду сопоставлять эти атрибуты с полями БД с помощью AvroSchema? Когда я попытался добавить первичный ключ, похоже, что у меня всегда было исключение из числа, так как первый сопоставляемый столбец-это имя.