Apache NiFi - Как добавить / передать атрибуты процессору, а не файлу потока - PullRequest
0 голосов
/ 26 января 2019

Моя цель

Выполнить sql и записать результат (файл потока), используя мою собственную схему в файл напрямую .

См. Пояснение.


Решение 1 (используйте 4 процессора)

  1. ExecuteSql, и записи автоматически сгенерированы (встроены)avro schema.
  2. ConvertRecord: программа чтения записей просто использует встроенную схему avro, а программа записи записей использует мою собственную схему из HortonworkSchemaRegistry, поэтому передайте атрибуты - 'schema.name' и 'schema.version' - используяUpdateAttribute.
  3. Работает.

enter image description here

Решение 2 (использование ExecuteSqlRecord)

Это может как это:

enter image description here

ExecuteSqlRecord имеет Record Writer

enter image description here

И Record Writer получает авро-схему из HortonworkSchemaRegistry, используя атрибуты 'schema.name' и 'schema.version'

enter image description here

Но ExecuteSqlRecord не поддерживает определяемые пользователем атрибуты

enter image description here


Итак

  • Этоспособ использования ExecuteSqlRecord процессора?
  • Как добавить атрибуты кпроцессор?

1 Ответ

0 голосов
/ 26 января 2019

Пока что пользователи не могут добавлять новые свойства к ExecuteSQL* процессорам.

Ниже приведены способы, которыми вы можете попробовать

  1. ИспользованиеGenerateFlowFile процессор

    • Добавить атрибут schema.name с некоторым значением.

Поток:

1.GenerateFlowFile //add schema.name attribute with value.
2.ExecuteSQLRecord
2.PutFile

(или)

По hard code schema.name значение в RecordWriter служба контроллера.в этом случае вам не нужен процессор GenerateFlowFile.

Поток:

1.ExecuteSQLRecord //hardcode schema.name property value
2.PutFile
...