Как удалить атрибуты файла потока в файле потока Nifi? - PullRequest
1 голос
/ 13 марта 2019

enter image description here Обновление конфигурации атрибута enter image description here

Ответы [ 2 ]

2 голосов
/ 13 марта 2019

Трудно сказать по предоставленным скриншотам, но похоже, что поля, которые вы хотите удалить, являются частью содержимого файла потока, который отличается от атрибутов файла потока. UpdateAttribute может удалять только атрибуты, но не все содержимое.

Для изменения содержимого вам потребуется процессор, соответствующий типу обрабатываемого содержимого. В вашем случае это выглядит как JSON, так что вы можете использовать процессор ConvertRecord с JsonTreeReader и JsonRecordSetWriter, и сконфигурировать писатель, чтобы иметь другую схему, чем читатель. В основном читайте во всех полях, но записывайте только те поля, которые вы хотите.

Также имеется процессор UpdateRecord, но в настоящее время он не может удалять поля.

0 голосов
/ 14 марта 2019

Чтобы удалить атрибут FlowFile, вы можете использовать UpdateAttribute и свойство с именем Delete Attributes Expression. Вам просто нужно заполнить его регулярным выражением, которое соответствует атрибутам, которые вы хотите удалить.

Но, как сказал @Bryan Bende, похоже, что вы пытаетесь удалить не атрибуты FlowFile, а содержимое ...

Если вы хотите удалить атрибуты JSON из своего контента, вы можете использовать JoltTransformJSON и Jolt Transformation DSL из Remove. Затем просто используйте спецификацию атрибутов, которые вы хотите удалить. Например, я хочу удалить из этого JSON атрибут t1:

{
"t1": "test",
"t2": "test2",
"t3": "test3"
}

Итак, моя спецификация будет:

{
    "t1": ""
}

Подробнее об этом можно прочитать здесь .

...