
ScyllaDB Batch
CertifiedExecute a batch of CQL mutations
ScyllaDB Batch
Execute a batch of CQL mutations
Execute a bounded list of INSERT, UPDATE, or DELETE statements as a native CQL batch. Prefer small same-partition batches; batches are not a bulk-loading mechanism. COUNTER batches accept only counter mutations.
type: io.kestra.plugin.scylladb.BatchExamples
Create a table and write a logged batch
id: scylladb_batch
namespace: company.team
tasks:
- id: create_keyspace
type: io.kestra.plugin.scylladb.Execute
connection:
contactPoints:
- "{{ secret('SCYLLADB_CONTACT_POINT') }}"
localDatacenter: "{{ secret('SCYLLADB_DATACENTER') }}"
username: "{{ secret('SCYLLADB_USERNAME') }}"
password: "{{ secret('SCYLLADB_PASSWORD') }}"
tlsEnabled: true
cql: >-
CREATE KEYSPACE IF NOT EXISTS kestra
WITH replication = {'class': 'NetworkTopologyStrategy', 'replication_factor': 1}
- id: create_table
type: io.kestra.plugin.scylladb.Execute
connection:
contactPoints:
- "{{ secret('SCYLLADB_CONTACT_POINT') }}"
localDatacenter: "{{ secret('SCYLLADB_DATACENTER') }}"
username: "{{ secret('SCYLLADB_USERNAME') }}"
password: "{{ secret('SCYLLADB_PASSWORD') }}"
tlsEnabled: true
keyspace: kestra
cql: CREATE TABLE IF NOT EXISTS events (tenant text, id int, value text, PRIMARY KEY (tenant, id))
- id: write_events
type: io.kestra.plugin.scylladb.Batch
connection:
contactPoints:
- "{{ secret('SCYLLADB_CONTACT_POINT') }}"
localDatacenter: "{{ secret('SCYLLADB_DATACENTER') }}"
username: "{{ secret('SCYLLADB_USERNAME') }}"
password: "{{ secret('SCYLLADB_PASSWORD') }}"
tlsEnabled: true
keyspace: kestra
batchType: LOGGED
cql:
- "INSERT INTO events (tenant, id, value) VALUES ('demo', 1, 'first')"
- "INSERT INTO events (tenant, id, value) VALUES ('demo', 2, 'second')"
Properties
connection *
Native CQL connection settings, including contact points, local datacenter, authentication, and optional TLS.
ScyllaDB connection
Native CQL connection settings rendered at task execution.
Contact points
Non-empty list of hosts, host: port, or [IPv6]: port addresses. The default port is 9042.
Local datacenter
Datacenter used by the driver's load balancing policy, for example datacenter1.
Keyspace
Optional default keyspace. Omit when creating a keyspace with DDL.
passwordClient keystore password
Optional client keystore password. Requires keystorePath. Use a Kestra secret expression.
Client keystore path
Optional JKS client keystore path on the worker filesystem for mutual TLS. Requires TLS.
passwordPassword
Native CQL authentication password. Use a Kestra secret expression.
Request timeout
Optional strictly positive CQL request timeout as an ISO-8601 duration, for example PT30S. Otherwise the driver default applies.
falseEnable TLS
Enable certificate and hostname verification. Uses JVM trust roots unless a truststore is supplied.
passwordTruststore password
Optional truststore password. Requires truststorePath. Use a Kestra secret expression.
Truststore path
Optional JKS truststore path on the worker filesystem. Requires TLS.
Username
Native CQL authentication username. Set together with password; secret expressions are supported.
cql *array
CQL statements
Non-empty list of non-blank CQL mutations, with at most 65535 statements. Each entry is one statement, not a BEGIN BATCH block. Named : name markers bind the shared parameters map.
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
{}1150batchType string
LOGGEDLOGGEDUNLOGGEDCOUNTERBatch type
LOGGED uses the batch log; UNLOGGED omits it; COUNTER is required for counter mutations. Defaults to LOGGED.
parameters object
Bound parameters
Values for named : name markers in cql. Each value is rendered, then bound to a prepared statement using that marker's CQL type. Use this for flow inputs and upstream outputs instead of interpolating them into the statement text. Keys that are not markers of a statement are ignored.
Outputs
statements integer
0Statement count
Number of statements submitted in the batch, not the number of affected rows.
wasApplied boolean
falseWas applied
For a conditional batch, whether its conditions were satisfied. True for successful non-conditional batches.