Description:

Writes the contents of a FlowFile to Elasticsearch, using the specified parameters such as the index to insert into and the type of the document.

Tags:

elasticsearch, insert, update, upsert, delete, write, put, http

Properties:
In the list below, the names of required properties appear in bold. Any other properties (not in bold) are considered optional. The table also indicates any default values, whether a property supports the Expression Language Guide, and whether a property is considered “sensitive”, meaning that its value will be encrypted. Before entering a value in a sensitive property, ensure that the nifi.properties file has an entry for the property nifi.sensitive.props.key.

Name Default Value Allowable Values Description
Elasticsearch URL Elasticsearch URL which will be connected to, including scheme (http, e.g.), host, and port. The default port for the REST API is 9200.
SSL Context Service Controller Service API:
SSLContextService
Implementation:
StandardSSLContextService
The SSL Context Service used to provide client certificate information for TLS/SSL connections. This service only applies if the Elasticsearch endpoint(s) have been secured with TLS/SSL.
Username Username to access the Elasticsearch cluster
Supports Expression Language: true
Password Password to access the Elasticsearch cluster
Sensitive Property: true
Supports Expression Language: true
Connection Timeout 5 secs Max wait time for the connection to the Elasticsearch REST API.
Supports Expression Language: true
Response Timeout 15 secs Max wait time for a response from the Elasticsearch REST API.
Supports Expression Language: true
Identifier Attribute The name of the FlowFile attribute containing the identifier for the document. If the Index Operation is "index", this property may be left empty or evaluate to an empty value, in which case the document's identifier will be auto-generated by Elasticsearch. For all other Index Operations, the attribute must evaluate to a non-empty value.
Index The name of the index to insert into
Supports Expression Language: true
Type The type of this document (used by Elasticsearch for indexing and searching)
Supports Expression Language: true
Character Set UTF-8 Specifies the character set of the document data.
Supports Expression Language: true
Batch Size 100 The preferred number of flow files to put to the database in a single transaction. Note that the contents of the flow files will be stored in memory until the bulk operation is performed. Also the results should be returned in the same order the flow files were received.
Supports Expression Language: true
Index Operation index The type of the operation used to index (index, update, upsert, delete)
Supports Expression Language: true

Relationships:

Name Description
retry A FlowFile is routed to this relationship if the database cannot be updated but attempting the operation again may succeed
success All FlowFiles that are written to Elasticsearch are routed to this relationship
failure All FlowFiles that cannot be written to Elasticsearch are routed to this relationship

Reads Attributes:

None specified.

Writes Attributes:

None specified.

State management:

This component does not store state.

Restricted:

This component is not restricted.

How to configure?

Step 1: Drag and drop the PutElasticsearchHttp processor to canvas.

Step 2: Double click the processor to configure, the configuration dialog will be opened as follows,

properties

Step 3: Check usage of each property and update those values.

Properties and usage:

Elasticsearch URL: It is used to define elastic search url with hostname and port number. Default port number for the Rest API is 9200.

SSL Context Service: It is used to provide client certificate information for TLS/SSL connections if the Elasticsearch endpoints are secured.

Username: Specifies username to be used for Elasticsearch server.

Password: Specifies password to access the Elasticsearch server.

Connection Timeout: It is used to mention the maximum wait time for connecting with Elasticsearch Rest API.

Response Timeout: It is used to specify maximum wait time for retrieving response from Elasticsearch.

Identifier Attribute: It is used to specify the name of the flow file attribute containing the identifier for the document.

Index: Specifies the name of the index to be used.

Type: Specifies the type of the document (used by Elasticsearch for indexing and searching).

Character Set: Specifies the character set of the document.

Batch Size: It represents the number of flow files than can be processed for each transaction.

Index Operation: Specifies the type of the operation used to index.

  • Index
  • Update
  • Upsert
  • Delete

    For example, to move data from SQL into Elasticsearch, configure PutElasticsearchHttp as follows,

Identifier Attribute: ID

Index Operation: index

sample