QueryRecord
Описание
Выполняет один или несколько SQL-запросов на основе содержимого FlowFile. Результат SQL-запроса затем становится содержимым выходного FlowFile. Это можно использовать, например, для фильтрации по полям, трансформации и фильтрации на уровне строк. Колонки могут быть переименованы, могут быть выполнены простые вычисления и агрегирования и т.д. Процессор настроен с помощью Record Reader Controller Service и Record Writer Service, что позволяет гибко работать с форматами входных и выходных данных. Процессор должен быть настроен как минимум с одним пользовательским свойством. Имя свойства — это связь для маршрутизации данных, а значение свойства — это SQL-запрос SELECT, который используется для указания, как должны быть преобразованы/отфильтрованы входные данные. SQL-запрос должен быть действительным ANSI SQL и поддерживается Apache Calcite. Если преобразование не удается, исходный FlowFile перенаправляется на связь 'failure'. В противном случае выбранные данные будут направлены на связанную связь. Если Record Writer выбирает унаследовать схему из записи, важно отметить, что унаследованная схема будет из ResultSet, а не из входной записи. Это позволяет одному экземпляру процессора QueryRecord выполнять несколько запросов, каждый из которых возвращает разный набор колонок и агрегатов. В результате схема, которая наследуется, не будет иметь имени схемы, поэтому важно, чтобы настроенный Record Writer не пытался записывать имя схемы в атрибут, если наследуется схема из записи. Дополнительную информацию см. в документации по использованию процессора
Теги
sql, query, calcite, route, record, transform, select, update, modify, etl, filter, record, csv, json, logs, text, avro, aggregate
Свойства
Название | Описание |
---|---|
Record Reader | Указывает службу контроллера, которая будет использоваться для анализа входящих данных и определения схемы данных |
Record Writer | Указывает службу контроллера, которую следует использовать для записи результатов в FlowFile. |
Include Zero Record FlowFiles | При выполнении оператора SQL для входящего FlowFile, если в результате нет данных, это свойство указывает, будет ли FlowFile отправлен в соответствующую связь. |
Cache Schema | Это свойство больше не используется. Оно оставлено исключительно для обратной совместимости, чтобы не сделать существующие процессоры недействительными при обновлении. Это свойство будет удалено в будущих версиях. Теперь, вместо того чтобы за ставлять пользователя разбираться в семантике кэширования схем, процессор кэширует до 25 схем и автоматически откатывает старые схемы. Это обеспечивает ту же производительность, когда кэширование было включено ранее, и в некоторых случаях очень значительное повышение производительности, если кэширование было ранее отключено. |
Default Decimal Precision | Когда значение DECIMAL/NUMBER записывается как логический тип Avro «decimal», требуется определённая «точность», обозначающая количество доступных цифр. Как правило, точность определяется типом данных столбца или настройками базы данных по умолчанию. Однако некоторые базы данных могут возвращать неопределённую точность (0). «Десятичная точность по умолчанию» используется при записи чисел с неопределённой точностью. Поддерживает язык выражений: true (будет оцениваться с использованием атрибутов файла потока и переменных среды) |
Default Decimal Scale | Когда значение DECIMAL/NUMBER записывается как логический тип Avro «десятичный», требуется определённая «шкала», обозначающая количество доступных десятичных цифр. Как правило, шкала определяется типом данных столбца или настройками базы данных по умолчанию. Однако при возврате неопределённой точности (0) шкала также может быть неопределённой в некоторых базах данных. «Десятичная шкала по умолчанию» используется при записи таких неопределённых чисел. Если значение содержит больше десятичных знаков, чем указано в масштабе, то значение будет округлено в большую сторону, например, 1,53 станет 2 при масштабе 0 и 1,5 при масштабе 1. Поддерживает язык выражений: true (будет оцениваться с использованием атрибутов файла потока и переменных среды) |
Взаимосвязи
- failure: Если обработка FlowFile по какой-либо причине не удалась (например, оператор SQL содержит столбцы, отсутствующие во входных данных), исходный FlowFile будет направлен в эту связь
- original: Исходный потоковый файл перенаправляется на это отношение