Перейти к основному содержимому

QueryDatabaseTableRecord

Описание

Генерирует SQL-запрос SELECT или использует предоставленный оператор и выполняет его для извлечения всех строк, значения которых в указанных столбцах с максимальными значениями больше, чем ранее наблюдавшиеся максимумы. Результат запроса будет преобразован в формат, указанный записью. Язык выражений поддерживается для нескольких свойств, но входящие подключения не допускаются. Свойства окружения/системы могут быть использованы для предоставления значений для любых свойств, содержащих язык выражений. Если необходимо использовать атрибуты FlowFile для выполнения этих запросов, можно использовать процессоры GenerateTableFetch и/или ExecuteSQL. Используется потоковая передача, поэтому поддерживаются наборы данных произвольного размера. Этот процессор можно запланировать для запуска по таймеру или выражению cron, используя стандартные методы планирования. Этот процессор предназначен для запуска только на основном узле. Атрибут FlowFile 'querydbtable.row.count' указывает, сколько строк было выбрано

Теги

sql, select, jdbc, query, database, record

Свойства

НазваниеОписание
Database Connection Pooling ServiceСлужба контроллера, используемая для подключения к базе данных.
Database TypeThe 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 NameThe name of the database table to be queried. When a custom query is used, this property is used to alias the query and appears as an attribute on the FlowFile. Поддерживает язык выражений: true (будет оцениваться только с использованием переменных среды)
Columns to ReturnСписок имен столбцов, разделенных запятыми, которые будут использоваться в запросе. Если в вашей базе данных требуется специальное обращение с именами (например, кавычки), то такое обращение должно быть предусмотрено для каждого имени. Если имена столбцов не указаны, будут возвращены все столбцы в указанной таблице. ПРИМЕЧАНИЕ: Важно использовать согласованные имена столбцов для данной таблицы, чтобы инкрементная выборка работала должным образом. Поддерживает язык выражений: true (будет оцениваться только с использованием переменных среды)
Additional WHERE clauseПользовательское условие, добавляемое в условие WHERE при построении запросов SQL. Поддерживает язык выражений: true (будет оцениваться только с использованием переменных среды)
Custom QueryПользовательский запрос SQL, используемый для получения данных. Вместо создания SQL-запроса на основе других свойств этот запрос будет оформлен как подзапрос. В запросе не должно быть оператора ORDER BY. Поддерживает язык выражений: true (будет оцениваться только с использованием переменных среды)
Record WriterУказывает службу контроллера, которая будет использоваться для записи результатов в потоковый файл. Программа записи может использовать схему наследования для имитации поведения выводимой схемы, т.е. явная схема не обязательно должна быть определена в программе записи и будет предоставляться с помощью той же логики, которая используется для вывода схемы из типов столбцов.
Maximum-value ColumnsСписок имён столбцов, разделённых запятыми. Процессор будет отслеживать максимальное значение для каждого столбца, которое было возвращено с момента запуска процессора. Использование нескольких столбцов подразумевает упорядочивание списка столбцов, и ожидается, что значения каждого столбца будут увеличиваться медленнее, чем значения предыдущих столбцов. Таким образом, использование нескольких столбцов подразумевает иерархическую структуру столбцов, которая обычно используется для секционирования таблиц. Этот процессор можно использовать для извлечения только тех строк, которые были добавлены/обновлены с момента последнего извлечения. Обратите внимание, что некоторые типы JDBC, такие как bit/boolean, не способствуют поддержанию максимального значения, поэтому столбцы этих типов не должны быть указаны в этом свойстве и приведут к ошибкам во время обработки. Если столбцы не указаны, будут учитываться все строки из таблицы, что может повлиять на производительность. ПРИМЕЧАНИЕ: Важно использовать согласованные имена столбцов с максимальным значением для данной таблицы, чтобы инкрементная выборка работала должным образом. Поддерживает язык выражений: true (будет оцениваться только с использованием переменных среды)
Initial Load StrategyHow to handle existing rows in the database table when the processor is started for the first time (or its state has been cleared). The property will be ignored, if any 'initial.maxvalue.*' dynamic property has also been configured.
Max Wait TimeМаксимальное время, допустимое для выполнения запроса SQL, ноль означает отсутствие ограничений. Максимальное время менее 1 секунды будет равно нулю. Поддерживает язык выражений: true (будет оцениваться только с использованием переменных среды)
Fetch SizeThe number of result rows to be fetched from the result set at a time. This is a hint to the database driver and may not be honored and/or exact. If the value specified is zero, then the hint is ignored. If using PostgreSQL, then 'Set Auto Commit' must be equal to 'false' to cause 'Fetch Size' to take effect. Поддерживает язык выражений: true (будет оцениваться только с использованием переменных среды)
Set Auto CommitAllows enabling or disabling the auto commit functionality of the DB connection. Default value is 'No value set'. 'No value set' will leave the db connection's auto commit mode unchanged. For some JDBC drivers such as PostgreSQL driver, it is required to disable the auto commit functionality to get the 'Fetch Size' setting to take effect. When auto commit is enabled, PostgreSQL driver ignores 'Fetch Size' setting and loads all rows of the result set to memory at once. This could lead for a large amount of memory usage when executing queries which fetch large data sets. More Details of this behaviour in PostgreSQL driver can be found in https://jdbc.postgresql.org//documentation/head/query.html. Поддерживает язык выражений: true (будет оцениваться только с использованием переменных среды)
Max Rows Per Flow FileМаксимальное количество строк результатов, которые будут включены в один файл Flow. Это позволит вам разделить очень большие наборы результатов на несколько файлов Flow. Если указанное значение равно нулю, то все строки будут возвращены в одном файле Flow. Поддерживает язык выражений: true (будет оцениваться только с использованием переменных среды)
Output Batch SizeКоличество выходных файлов Flow, которые будут поставлены в очередь перед завершением сеанса обработки. Если установлено значение 0, сеанс будет завершён, когда будут обработаны все строки набора результатов и выходные файлы Flow будут готовы к передаче в последующее соединение. Для больших наборов результатов это может привести к передаче большого количества файлов Flow в конце выполнения процессора. Если это свойство установлено, то, когда указанное количество файлов Flow будет готово к передаче, сеанс будет завершён, и файлы Flow будут переданы в последующее соединение. ПРИМЕЧАНИЕ: атрибуты maxvalue.* и fragment.count не будут установлены для файлов Flow, если это свойство установлено. Поддерживает язык выражений: true (будет оцениваться только с использованием переменных среды)
Maximum Number of FragmentsМаксимальное количество фрагментов. Если указано нулевое значение, то возвращаются все фрагменты. Это предотвращает ошибку OutOfMemoryError, когда этот процессор обрабатывает огромную таблицу. ПРИМЕЧАНИЕ: установка этого свойства может привести к потере данных, так как поступающие результаты не упорядочены, а фрагменты могут заканчиваться на произвольных границах, где строки не включены в набор результатов. Поддерживает язык выражений: true (будет оцениваться только с использованием переменных среды)
Normalize Table/Column NamesСледует ли менять символы в именах столбцов при создании выходной схемы. Например, двоеточия и точки будут заменены на подчеркивания.
Use Avro Logical TypesСледует ли использовать логические типы Avro для столбцов DECIMAL/NUMBER, DATE, TIME и TIMESTAMP. Если этот параметр отключен, он записывается как строка. Если эта функция включена, логические типы используются и записываются как базовый тип, в частности, DECIMAL/NUMBER как логический тип «десятичный»: записывается как байты с дополнительными метаданными о точности и масштабе, DATE как логический тип «дата-миллис»: записывается как целое число, обозначающее количество дней с начала эпохи Unix (1970-01-01), TIME как логический тип «время-миллис»: записывается как целое число, обозначающее количество миллисекунд с начала эпохи Unix, и TIMESTAMP как логический тип «метка времени-миллис»: записывается как целое число, обозначающее количество миллисекунд с начала эпохи Unix. Если считыватель записанных записей Avro также знает эти логические типы, то эти значения могут быть десериализованы с большим контекстом в зависимости от реализации считывателя.
Default Decimal PrecisionКогда значение DECIMAL/NUMBER записывается как логический тип Avro «decimal», требуется определённая «точность», обозначающая количество доступных цифр. Как правило, точность определяется типом данных столбца или настройками базы данных по умолчанию. Однако некоторые базы данных могут возвращать неопределённую точность (0). «Десятичная точность по умолчанию» используется при записи чисел с неопределённой точностью. Поддерживает язык выражений: true (будет оцениваться только с использованием переменных среды)
Default Decimal ScaleКогда значение DECIMAL/NUMBER записывается как логический тип Avro «десятичный», требуется определённая «шкала», обозначающая количество доступных десятичных цифр. Как правило, шкала определяется типом данных столбца или настройками базы данных по умолчанию. Однако при возврате неопределённой точности (0) шкала также может быть неопределённой в некоторых базах данных. «Десятичная шкала по умолчанию» используется при записи таких неопределённых чисел. Если значение содержит больше десятичных знаков, чем указано в масштабе, то значение будет округлено в большую сторону, например, 1,53 станет 2 при масштабе 0 и 1,5 при масштабе 1. Поддерживает язык выражений: true (будет оцениваться только с использованием переменных среды)

Взаимосвязи

  • success: Успешно создан FlowFile на основе набора результатов SQL-запроса.