Skip to main content

ConvertJSONToSQL

Описание

Преобразует FlowFile в формате JSON в SQL-запрос UPDATE, INSERT или DELETE. Ожидается, что входящий FlowFile будет «плоским» сообщением JSON, что означает, что он состоит из одного элемента JSON, и каждое поле соответствует простому типу. Если поле соответствует объекту JSON, этот объект JSON будет интерпретироваться как текст. Если входные данные представляют собой массив элементов JSON, каждый элемент массива выводится как отдельный FlowFile для связи 'sql'. После успешного преобразования исходный FlowFile направляется на связь 'original', а SQL направляется на связь 'sql'.

Теги

json, sql, database, rdbms, insert, update, delete, relational, flat

Свойства

НазваниеОписание
JDBC Connection PoolУказывает пул подключений JDBC, который необходимо использовать для преобразования сообщения JSON в оператор SQL. Пул подключений необходим для определения подходящих типов столбцов базы данных.
Statement TypeУказывает тип SQL-запроса для создания.
Table NameИмя таблицы, которую должен обновить запрос. Поддерживает язык выражений: true (будет оцениваться с использованием атрибутов файла потока и переменных среды)
Catalog NameИмя каталога, который должен обновить запрос. Это может не относиться к базе данных, которую вы обновляете. В этом случае оставьте поле пустым Поддерживает язык выражений: true (будет оцениваться с использованием атрибутов файла потока и переменных среды)
Schema NameИмя схемы, к которой принадлежит таблица. Это может не относиться к базе данных, которую вы обновляете. В этом случае оставьте поле пустым Поддерживает язык выражений: true (будет оцениваться с использованием атрибутов файла потока и переменных среды)
Translate Field NamesЕсли установлено значение true, процессор попытается преобразовать имена полей JSON в соответствующие имена столбцов для указанной таблицы. Если установлено значение false, имена полей JSON должны точно соответствовать именам столбцов, иначе столбец не будет обновлен
Unmatched Field BehaviorЕсли входящий элемент JSON содержит поле, которое не соответствует ни одному из столбцов таблицы базы данных, это свойство определяет, как справиться с ситуацией
Unmatched Column BehaviorЕсли входящий элемент JSON не имеет сопоставления полей для всех столбцов таблицы базы данных, это свойство определяет, как справиться с ситуацией
Update KeysСписок имён столбцов, разделённых запятыми, которые однозначно идентифицируют строку в базе данных для операторов UPDATE. Если тип оператора — UPDATE и это свойство не задано, используются первичные ключи таблицы. В этом случае, если первичный ключ отсутствует, преобразование в SQL завершится ошибкой, если для параметра «Поведение при отсутствии совпадений» установлено значение «Сбой». Это свойство игнорируется, если тип оператора — INSERT Поддерживает язык выражений: true (будет оцениваться с использованием атрибутов файла потока и переменных среды)
Quote Column IdentifiersПри включении этой опции все имена столбцов будут заключены в кавычки, что позволит использовать зарезервированные слова в качестве имен столбцов в ваших таблицах.
Quote Table IdentifiersПри включении этой опции имя таблицы будет заключено в кавычки для поддержки использования специальных символов в имени таблицы
SQL Parameter Attribute PrefixСтрока, которая добавляется к атрибутам исходящего потока, например <sql>.args.1.value, где <sql> заменяется на указанное значение Поддерживает язык выражений: true (будет оцениваться с использованием атрибутов файла потока и переменных среды)
Table Schema Cache SizeУказывает, сколько схем таблиц должно кэшироваться

Взаимосвязи

  • sql: FlowFile направляется в эту связь, если его содержимое успешно преобразовано в оператор SQL.
  • failure: FlowFile направляется в эту связь, если его содержимое не может быть преобразовано в оператор SQL. Распространёнными причинами являются некорректный контент JSON или отсутствие в контенте JSON обязательного поля (при использовании типа оператора INSERT).
  • original: При преобразовании FlowFile в SQL исходный FlowFile JSON направляется в эту связь.