
Elasticsearch Bulk
CertifiedReplay Elasticsearch bulk file
Elasticsearch Bulk
Replay Elasticsearch bulk file
Reads an Elasticsearch bulk file (NDJSON or ION) from Kestra storage and replays operations. Follows the bulk file contract; see Elasticsearch bulk API docs for format. ION files can be text or binary, so files written by upstream tasks are read on every Kestra version. Action-line metadata is carried onto each operation so the replay honors the file's concurrency and routing intents: routing, if_seq_no, if_primary_term, version and version_type apply to every op; pipeline and dynamic_templates apply to index and create; require_alias applies to index, create and update; retry_on_conflict applies to update. Update bodies that contain native update fields (doc, script, upsert, doc_as_upsert, scripted_upsert, detect_noop or _source) are applied with Elasticsearch bulk API semantics, so upserts only happen when the body asks for them. For compatibility, update bodies without any native update field are treated as plain partial documents with doc_as_upsert enabled, unless the action line sets if_seq_no, which Elasticsearch does not allow with upserts. A plain partial document that itself has source fields named like native update fields is ambiguous: wrap it in a doc field, or use the Load task with opType UPDATE instead.
type: io.kestra.plugin.elasticsearch.BulkExamples
id: elasticsearch_bulk_load
namespace: company.team
inputs:
- id: file
type: FILE
tasks:
- id: bulk_load
type: io.kestra.plugin.elasticsearch.Bulk
connection:
hosts:
- "http://localhost:9200"
from: "{{ inputs.file }}"
Properties
connection *
Elasticsearch connection
Connection settings shared by tasks; hosts are required.
from *string
Source file
Kestra internal storage URI containing bulk payload; supports dynamic rendering.
Pebble expression referencing an Internal Storage URI e.g. {{ outputs.mytask.uri }}.
assets
Assets this task consumes as inputs or produces as outputs, for lineage tracking and the asset graph (Enterprise Edition). A flow declaring this property on a task is rejected in the open-source edition.
io.kestra.core.models.assets.AssetsDeclaration
IGNOREFAILWARNAsset failure behavior
Behavior applied to the task state when a declared asset fails to render, emit, or be persisted (e.g. a lock conflict): FAIL escalates it to FAILED, WARN (default) warns it if it would otherwise succeed, IGNORE leaves the state untouched.
Whether to auto-register assets referenced dynamically at runtime that are not statically declared in inputs or outputs.
The assets consumed as inputs.
io.kestra.core.models.assets.AssetIdentifier
1The assets produced as outputs.
io.kestra.plugin.ee.assets.Dataset
1150{}1150io.kestra.plugin.ee.assets.File
1150{}1150io.kestra.plugin.ee.assets.Table
1150{}1150io.kestra.plugin.ee.assets.VM
1150{}1150io.kestra.core.models.assets.External
1150{}1150io.kestra.core.models.assets.Custom
11501Custom asset type
{}1150chunk integerstring
1000Bulk chunk size
Number of operations per bulk request; default 1000.
routing string
Custom shard routing
Optional routing key hashed to pick the shard instead of using the document id.
Outputs
size integer
Indexed document count
Total operations sent across all bulk requests.
Metrics
records counter
recordsNumber of records loaded
requests.count counter
Number of bulk requests sent
requests.duration timer
Duration of bulk requests