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

PutElasticsearchRecord

Описание

Процессор загрузки записей в Elasticsearch, использующий официальные библиотеки Elastic REST. Каждая запись в FlowFile преобразуется в документ, который будет отправлен в API _bulk Elasticsearch. Несколько документов могут быть объединены в каждый запрос, отправленный в Elasticsearch. Операция Bulk для каждого документа может быть настроена с использованием выражений Record Path.

Теги

json, elasticsearch, elasticsearch5, elasticsearch6, elasticsearch7, elasticsearch8, put, index, record

Свойства

НазваниеОписание
Index OperationТип операции, используемой для индексирования (создание, удаление, индексирование, обновление, вставка) Поддерживает язык выражений: true (будет оцениваться с использованием атрибутов файла потока и переменных среды)
IndexThe name of the index to use. Поддерживает язык выражений: true (будет оцениваться с использованием атрибутов файла потока и переменных среды)
TypeThe type of this document (used by Elasticsearch for indexing and searching). Поддерживает язык выражений: true (будет оцениваться с использованием атрибутов файла потока и переменных среды)
@timestamp ValueЗначение, которое будет использоваться в качестве поля @timestamp (требуется для потоков данных Elasticsearch). Поддерживает язык выражений: true (будет оцениваться с использованием атрибутов файла потока и переменных среды)
Max JSON Field String LengthThe maximum allowed length of a string value when parsing a JSON document or attribute.
Client ServiceAn Elasticsearch client service to use for running queries.
Record ReaderУстройство чтения записей, используемое для чтения входящих записей из файлов потока.
Batch SizeКоличество записей для отправки в одном пакете. Поддерживает язык выражений: true (будет оцениваться с использованием атрибутов файла потока и переменных среды)
ID Record PathВыражение пути записи для получения поля ID для использования с Elasticsearch. Если оставить поле пустым, Elasticsearch автоматически сгенерирует идентификатор. Поддерживает язык выражений: true (будет оцениваться с использованием атрибутов файла потока и переменных среды)
Retain ID (Record Path)Сохранять ли существующее поле, используемое в качестве пути записи идентификатора. Поддерживает язык выражений: true (будет оцениваться с использованием атрибутов файла потока и переменных среды)This Property is only considered if the [ID Record Path] Property has a value specified.
Index Operation Record PathВыражение пути к записи для получения поля операции индексирования для использования с Elasticsearch. Если оставить поле пустым, операция индексирования будет определена с помощью основного свойства операции индексирования. Поддерживает язык выражений: true (будет оцениваться с использованием атрибутов файла потока и переменных среды)
Index Record PathВыражение пути записи для получения поля индекса для использования с Elasticsearch. Если оставить поле пустым, индекс будет определен с помощью основного свойства индекса. Поддерживает язык выражений: true (будет оцениваться с использованием атрибутов файла потока и переменных среды)
Type Record PathВыражение пути к записи для получения поля типа для использования с Elasticsearch. Если оставить поле пустым, тип будет определяться с помощью основного свойства типа. Поддерживает язык выражений: true (будет оцениваться с использованием атрибутов файла потока и переменных среды)
@timestamp Record PathПуть к записи, указывающий на поле в записи (записях), содержащее @timestamp для документа. Если оставить поле пустым, то @timestamp будет определяться с помощью основного свойства @timestamp Поддерживает язык выражений: true (будет оцениваться с использованием атрибутов файла потока и переменных среды)
Retain @timestamp (Record Path)Сохранять ли существующее поле, используемое в качестве пути записи @timestamp. Поддерживает язык выражений: true (будет оцениваться с использованием атрибутов файла потока и переменных среды)This Property is only considered if the [@timestamp Record Path] Property has a value specified.
Script Record PathПуть к записи, указывающий на поле в записи (записях), содержащее скрипт для обновления/вставки документа. Применяется только к операциям обновления/вставки. Поле должно быть совместимо с типом Map (например, Map или Record) или строкой, которую можно преобразовать в объект JSON. Поддерживает язык выражений: true (будет оцениваться с использованием атрибутов файла потока и переменных среды)
Scripted Upsert Record PathПуть к записи, указывающий на поле в записи (записях), содержащее логический флаг scripted_upsert. Добавлять ли флаг scripted_upsert в операцию Upsert. Заставляет Elasticsearch выполнять скрипт независимо от того, существует документ или нет, по умолчанию — false. Если предоставленный документ Upsert (из содержимого FlowFile) будет пустым, но вы убедитесь, что для параметра SUPPRESS_NULLS контроллера CLIENT_SERVICE установлено значение NEVER_SUPPRESS, то в запрос к Elasticsearch не будет включен документ «upsert», и операция не создаст новый документ для выполнения скрипта, что приведет к ошибке «not_found» Поддерживает язык выражений: true (будет оцениваться с использованием атрибутов файла потока и переменных среды)
Dynamic Templates Record PathПуть к записи, указывающий на поле в записи (записях), содержащее динамические шаблоны для документа. Поле должно быть совместимо с типом Map (например, Map или Record) или строкой, которую можно преобразовать в объект JSON. Требуется Elasticsearch 7+ Поддерживает язык выражений: true (будет оцениваться с использованием атрибутов файла потока и переменных среды)
Date FormatУказывает формат, используемый при записи полей даты. Если формат не указан, используется формат по умолчанию '" + RecordFieldType.DATE.getDefaultFormat() + "'. Если указано, значение должно соответствовать простому формату даты Java (например, MM/dd/yyyy для двухзначного месяца, за которым следует двухзначный день, за которым следует четырехзначный год, все разделено символами «/», как в 01/25/2017). Поддерживает язык выражений: true (будет оцениваться только с использованием переменных среды)
Time FormatУказывает формат, используемый при записи полей Time. Если не указано, используется формат по умолчанию '" + RecordFieldType.TIME.getDefaultFormat() + "'". Если указано, значение должно соответствовать формату Simple Date в Java (например, HH:mm:ss для двухзначного часа в 24-часовом формате, за которым следует двухзначная минута, за которой следует двухзначная секунда, все разделено символами ':', как в 18:04:15). Поддерживает язык выражений: true (будет оцениваться только с использованием переменных среды)
Timestamp FormatУказывает формат, используемый при записи полей Timestamp. Если не указано, используется формат по умолчанию '" + RecordFieldType.Используется ВРЕМЕННАЯ МЕТКА.getDefaultFormat() + "'. Если указано, значение должно соответствовать формату простой даты Java (например, MM/dd/yyyy HH:mm:ss для двухзначного месяца, за которым следует двухзначный день, за которым следует четырехзначный год, разделенные символами «/»; затем следует двухзначный час в 24-часовом формате, за которым следует двухзначная минута, за которой следует двухзначная секунда, разделенные символами «:», как в 01/25/2017 18:04:15). Поддерживает язык выражений: true (будет оцениваться только с использованием переменных среды)
Log Error ResponsesIf this is enabled, errors will be logged to the NiFi logs at the error log level. Otherwise, they will only be logged if debug logging is enabled on NiFi as a whole. The purpose of this option is to give the user the ability to debug failed operations without having to turn on debug logging.
Output Error ResponsesIf this is enabled, response messages from Elasticsearch marked as "error" will be output to the "error_responses" relationship.This does not impact the output of flowfiles to the "successful" or "errors" relationships
Result Record WriterОтвет от Elasticsearch будет проверен на наличие неудачных записей, и неудачные записи будут записаны в набор записей с помощью этого сервиса записи и отправлены в отношение. Успешные записи будут записаны в набор записей с помощью этого сервиса записи и отправлены в отношение "REL_SUCCESSFUL".
Treat "Not Found" as SuccessIf true, "not_found" Elasticsearch Document associated Records will be routed to the "successful" relationship, otherwise to the "errors" relationship. If Output Error Responses is "true" then "not_found" responses from Elasticsearch will be sent to the error_responses relationship.
Group Results by Bulk Error TypeОшибочные записи, записанные в отношение "" + REL_ERRORS.getName() + "", будут сгруппированы по типу ошибки, а ошибка, связанная с первой записью в FlowFile, будет добавлена в FlowFile как "elasticsearch.bulk.error". Если значение NOT_FOUND_IS_SUCCESSFUL равно "false", то записи, связанные с ответами Elasticsearch "не найдено", также будут отправлены в отношение "" + REL_ERRORS.getName() + "". This Property is only considered if the [Result Record Writer] Property has a value specified.

Взаимосвязи

  • failure: All flowfiles that fail for reasons unrelated to server availability go to this relationship.
  • original: Все файлы потока, отправленные в Elasticsearch без сбоев запроса, относятся к этому отношению.
  • errors: Record(s)/Flowfile(s) corresponding to Elasticsearch document(s) that resulted in an "error" (within Elasticsearch) will be routed here.
  • successful: Record(s)/Flowfile(s) corresponding to Elasticsearch document(s) that did not result in an "error" (within Elasticsearch) will be routed here.
  • retry: All flowfiles that fail due to server/cluster availability go to this relationship.