GenerateTableFetch
Описание
Генерирует SQL-запросы select, которые извлекают "страницы" строк из таблицы. Свойство размера раздела вместе с количеством строк таблицы определяет размер и количество страниц и созданных FlowFiles. Кроме того, инкрементальная выборка может быть достигнута путем установки колонок Максимальное значение, что заставляет процессор отслеживать максимальные значения колонок, таким образом извлекая только строки, значения колонок которых превышают наблюдаемые максимумы. Этот процессор предназначен для запуска только на основном узле. Этот процессор может принимать входящие соединения; поведение процессора отличается в зависимости от того, предоставлены ли входящие соединения: Если входящие соединения не указаны, процессор будет генерировать SQL-запросы по расписанию указанного процессора. Язык выражений поддерживается для многих полей, но атрибуты FlowFile недоступны. Тем не менее, свойства будут оцениваться с использованием свойств среды/системы. Если входящие соединения указаны и FlowFile недоступен для задачи процессора, работа не будет выполнена. Если входящие соединения указаны и FlowFile доступен для задачи процессора, атрибуты FlowFile могут использоваться в Языке выражений для таких полей, как Имя таблицы и другие. Тем не менее, поля Максимальные значения колонок и Колонки для возврата должны быть пустыми или относиться к колонкам, доступным в каждой указанной таблице.
Теги
sql, select, jdbc, query, database, fetch, generate
Свойства
Название | Описание |
---|---|
Database Connection Pooling Service | Служба контроллера, используемая для подключения к базе данных. |
Database Type | The type/flavor of database, used for generating database-specific code. In many cases the Generic type should suffice, but some databases (such as Oracle) require custom SQL clauses. |
Table Name | Имя таблицы базы данных, к которой выполняется запрос. Поддерживает язык выражений: true (будет оцениваться с использованием атрибутов файла потока и переменных среды) |
Columns to Return | Список имен столбцов, разделенных запятыми, которые будут использоваться в запросе. Если в вашей базе данных требуется специальное обращение с именами (например, кавычки), то такое обращение должно быть предусмотрено для каждого имени. Если имена столбцов не указаны, будут возвращены все столбцы в указанной таблице. ПРИМЕЧАНИЕ: Важно использо вать согласованные имена столбцов для данной таблицы, чтобы инкрементная выборка работала должным образом. Поддерживает язык выражений: true (будет оцениваться с использованием атрибутов файла потока и переменных среды) |
Maximum-value Columns | Список имён столбцов, разделённых запятыми. Процессор будет отслеживать максимальное значение для каждого столбца, которое было возвращено с момента запуска процессора. Использование нескольких столбцов подразумевает упорядочивание списка столбцов, и ожидается, что значения каждого столбца будут увеличиваться медленнее, чем значения предыдущих столбцов. Таким образом, использование нескольких столбцов подразумевает иерархическую структуру столбцов, которая обычно используется для секционирования таблиц. Этот процессор можно использовать для извлечения только тех строк, которые были добавлены/обновлены с момента последнего извлечения. Обратите внимание, что некоторые типы JDBC, такие как bit/boolean, не способствуют поддержанию максимального значения, поэтому столбцы этих типов не должны быть указаны в этом свойстве и приведут к ошибкам во время обработки. Если столбцы не указаны, будут учитываться все строки из таблицы, что может повлиять на производительность. ПРИМЕЧАНИЕ: Важно использовать согласованные имена столбцов с максимальным значением для данной таблицы, чтобы инкрементная выборка работала должным образом. Поддерживает язык выражений: true (будет оцениваться с использованием атрибутов файла потока и переменных среды) |
Max Wait Time | Максимальное время, допустимое для выполнения запроса SQL, ноль означает отсутствие ограничений. Максимальное время менее 1 секунды будет равно нулю. Поддерживает язык выражений: true (будет оцениваться с использованием атрибутов файла потока и переменных среды) |
Partition Size | Количество строк результатов, которые будут получены с помощью каждого сгенерированного оператора SQL. Общее количество строк в таблице, деленное на размер раздела, дает количество сгенерированных операторов SQL (т. е. FlowFiles). Значение, равное нулю, указывает на то, что будет сгенерирован один FlowFile, оператор SQL которого будет извлекать все строки из таблицы. Поддерживает язык выражений: true (будет оцениваться с использованием атрибутов файла потока и переменных среды) |
Column for Value Partitioning | Имя столбца, значения которого будут использоваться для разбиения на разделы. По умолчанию для разбиения набора результатов на «страницы», которые будут извлекаться из базы данных, используются номера строк в наборе результатов с применением стратегии смещения/ограничения. Однако для некоторых баз данных при определённых обстоятельствах более эффективным может быть использование самих значений столбцов для определения «страниц». Это свойство следует использовать только в том случае, если запросы по умолчанию работают неэффективно, если нет столбца с максимальным значением или есть только один столбец с максимальным значением, тип которого можно преобразовать в целое число (т. е. не дату или метку времени), а значения столбцов равномерно распределены и не являются редкими, для повышения производительности. Поддерживает язык выражений: true (будет оцениваться с использованием атрибутов файла потока и переменных среды) |
Additional WHERE clause | Пользовательское условие, добавляемое в условие WHERE при построении запросов SQL. Поддерживает язык выражений: true (будет оцениваться с использованием атрибутов файла потока и переменных среды) |
Custom ORDER BY Column | Имя столбца, который будет использоваться для упорядочивания результатов, если столбцы с максимальными значениями не указаны и включено секционирование. Это свойство игнорируется, если заданы столбцы с максимальными значениями или размер раздела = 0. ПРИМЕЧАНИЕ: если не заданы ни столбцы с максимальными значениями, ни пользовательский столбец ORDER BY, то в зависимости от базы данных/драйвера процессор может сообщить об ошибке и/или сгенерированный SQL может привести к отсутствию и/или дублированию строк. Это связано с тем, что без явного упорядочивания выборка каждого раздела выполняется в произвольном порядке. Поддерживает язык выражений: true (будет оцениваться с использованием атрибутов файла потока и переменных среды) |
Output Empty FlowFile on Zero Results | В зависимости от указанных свойств выполнение этого процессора может не привести к созданию каких-либо SQL-запросов. Если это свойство имеет значение «истина», будет сгенерирован пустой файл FlowFile (с родительским элементом входящего файла FlowFile, если он есть) и передан в отношение «успех». Если это свойство имеет значение «ложь», выходные файлы FlowFile не будут сгенерированы. |
Взаимосвязи
- success: Успешно создан FlowFile на основе набора результатов SQL-запроса.
- failure: Эта связь используется только в том случае, если выполнение запроса SQL (с использованием входящего файла потока) завершилось ошибкой. Входящий файл потока будет оштрафован и перенаправлен в эту связь. Если входящие соединения не указаны, это отношение не используется.