Требования: случайным образом сгенерировать несколько наборов тестовых данных, выполнить регулярное сопоставление сгенерированных данных и вывести совпадающие данные во внешний файл. Вышеуказанное требует использования процессоров «GenerateFlowFile», «ReplaceText» и «PutFile».
Этот процессор может генерировать произвольные данные FlowFile или генерировать FlowFile с пользовательским содержимым. В основном используется для нагрузочного тестирования и тестирования данных, сгенерированных моделированием.
Откройте конфигурацию «GenerateFlowFile» и найдите параметр «СВОЙСТВА» для настройки:
Параметры конфигурации «PROPERTIES» для «GenerateFileFile» объясняются следующим образом:
Элементы конфигурации | значение по умолчанию | разрешенные значения | описывать |
---|---|---|---|
Размер файла (размер файла) | 0 B | Сгенерируйте размер каждого файла FlowFile. | |
Размер партии (размер партии) | 1 | Одновременно создается несколько FlowFile. | |
Формат данных (формат данных) | Text | Binary Text | Указывает, являются ли сгенерированные данные текстовыми или двоичными. |
Уникальные FlowFiles (толькоFlowFile) | false | true false | Если это правда, FlowFile, создаваемый каждый раз, уникален. Если это значение ложно, случайное содержимое каждого FlowFile одинаково, а пропускная способность высока. |
Пользовательский текст (пользовательский текст) | Пользовательский текстовый контент. Вам необходимо установить для параметра «Формат данных» значение «Текст», а для параметра «Уникальные FlowFiles» — значение false. В этом случае размер создаваемого файла является переменным, и установленный параметр «Размер файла» будет игнорироваться. | ||
Набор символов (Кодировка символов) | UTF-8 | Укажите кодировку, используемую для создания FlowFile. | |
Тип пантомимы (значение mime.type) | Установите значение Value встроенного атрибута «mime.type». |
Расписание по умолчанию «GenerateFlowFile» будет выполняться непрерывно для генерации данных. Чтобы облегчить последующее тестирование, после настройки здесь конфигурации «СВОЙСТВА» вам также необходимо настроить «Расписание выполнения» в разделе «ПЛАНИРОВАНИЕ». , оно будет планироваться каждые 10 секунд. Цель: данные генерируются медленнее, что облегчает просмотр результатов позже.
Процессор «ReplaceText» заменит содержимое FlowFile, соответствующее регулярному выражению, и создаст новое содержимое FlowFile.
Получит данные «hello world», сгенерированные процессором «GenerateFlowFile», и заменит «world» на «nifi».
Параметры конфигурации «СВОЙСТВА» для «ReplaceText» объясняются следующим образом:
Элементы конфигурации | значение по умолчанию | разрешенные значения | описывать |
---|---|---|---|
Значение поиска (обычное значение соответствия) | (?s)(^.*$) | Регулярное выражение, соответствующее содержимому FlowFile. Используется только со стратегиями замены «Регулярное выражение» и «Литеральная замена». | |
Стоимость замены | $1 | Значение, вставленное при использовании стратегии «Стратегия замены». $1 представляет первое значение, соответствующее регулярному выражению. | |
Набор символов (кодировка) | UTF-8 | Указывает набор символов кодировки. | |
Максимальный размер буфера (Максимальный размер данных буфера) | 1 M | Указывает максимальный объем данных для буферизации (на файл или на строку, в зависимости от режима расчета), чтобы можно было применить замену. «Режим оценки», если «Весь Text", а FlowFile больше этого значения, то FlowFile будет перенаправлен на "сбой"; в режиме "Построчно", если строка текста больше этого значения, FlowFile будет перенаправлена значение "неудача". по умолчаниюдля1 МБ, в основном используется для «Вся Текст». В режиме «Построчно» рекомендуется использовать 8 КБ или 16 Значения типа КБ. Если для политики замены установлено одно из следующих значений: «Добавить», «Добавить в начало», «Всегда». Заменить, значение игнорируется. | |
Стратегия замены (стратегия замены) | Regex Replace | Prepend Append Regex Replace Literal Replace Always Replace | Стратегия, определяющая способ замены содержимого FlowFile. |
Режим оценки | Line-by-Line | Line-by-Line Entire text | Выполните «стратегию замены» для каждой строки индивидуально (построчно); или буферизируйте весь файл в памяти (весь текст), а затем выполните для него «стратегию замены». |
Режим построчной оценки | ALL | All First-Line Last-Line Except-First-Line Except-Last-Line | В построчном «режиме оценки»: (ALL) По умолчанию используется «стратегия замены» для всех строк в FlowFile. (Первая линия): используйте «стратегию замены» только для первой линии. (Последняя строка): используйте «стратегию замены» только для последней строки. (кроме первой строки): используйте «стратегию замены», за исключением первой строки. (Except-Last-Line): используйте «стратегию замены», за исключением последней строки. |
Стратегия, определяющая способ замены содержимого FlowFile. Режим оценки Line-by-Line
Выполните «стратегию замены» для каждой строки индивидуально (построчно); или буферизируйте весь файл в памяти (весь текст), а затем выполните для него «стратегию замены». Режим построчной оценки ALL
В построчном «режиме оценки»: (ALL) По умолчанию используется «стратегия замены» для всех строк в FlowFile. (Первая линия): используйте «стратегию замены» только для первой линии. (Последняя строка): используйте «стратегию замены» только для последней строки. (кроме первой строки): используйте «стратегию замены», за исключением первой строки. (Except-Last-Line): используйте «стратегию замены», за исключением последней строки.
В приведенной выше таблице «Поиск Value”значение по умолчанию“(?s)(^.*$)”Объяснено ниже:
Доступные значения для «Стратегии замены» в таблице выше поясняются ниже:
По поводу параметров создания и настройки процессора «PutFile» см. Случай 1. Конфигурация процессора «PutFile» задается непосредственно здесь, а заменяемый FlowFile записывается во внешний путь «/root/test/matchFile»:
При подключении процессора «ReplaceText» и процессора «PutFile» необходимо установить взаимосвязь конфигурации соединения. Когда процессор «ReplaceText» записывает успешно совпавшие данные в процессор «PutFile»:
Установите FlowFile для автоматического прекращения связи, когда обработчик «ReplaceText» не соответствует:
Полное соединение выглядит следующим образом:
После запуска процессора GenerateFlowFile:
При этом просмотрите данные в «Происхождении данных» следующим образом:
Запустите процессор «ReplaceText» и просмотрите обработанные данные:
Запустите процессор «PutFile», и соответствующие данные сгенерируются на каждом узле, соответствующем кластеру NiFi:
Посмотреть результаты данных: