Ошибка, обнаруженная при настройке CSVReader для использования реестра схем Avro в Apache Nifi

#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? Когда я попытался добавить первичный ключ, похоже, что у меня всегда было исключение из числа, так как первый сопоставляемый столбец-это имя.