
Debezium MongoDB Capture
CertifiedWait for change data capture event on MongoDB server and capture the event as an internal storage file
Debezium MongoDB Capture
Wait for change data capture event on MongoDB server and capture the event as an internal storage file
Streams change data capture (CDC) events from a MongoDB deployment using Debezium and writes them to Kestra's internal storage.
type: io.kestra.plugin.debezium.mongodb.CaptureExamples
Replica set connection.
id: mongo_replica_connection
namespace: company.team
tasks:
- id: capture
type: io.kestra.plugin.debezium.mongodb.Capture
snapshotMode: INITIAL
connectionString: "mongodb://mongo_user:{{secret('MONGO_PASSWORD')}}@mongodb0.example.com:27017/?replicaSet=rs0"
maxRecords: 100
Sharded connection.
id: mongo_sharded_connection
namespace: company.team
tasks:
- id: capture
type: io.kestra.plugin.debezium.mongodb.Capture
snapshotMode: INITIAL
connectionString: "mongodb://mongo_user:{{secret('MONGO_PASSWORD')}}@mongos0.example.com:27017,mongos1.example.com:27017/"
maxRecords: 100
Replica set SRV connection.
id: mongo_replica_srv
namespace: company.team
tasks:
- id: capture
type: io.kestra.plugin.debezium.mongodb.Capture
snapshotMode: INITIAL
connectionString: "mongodb+srv://mongo_user:{{secret('MONGO_PASSWORD')}}@mongos0.example.com/?replicaSet=rs0"
maxRecords: 100
Sharded SRV connection.
id: mongo
namespace: company.team
tasks:
- id: capture
type: io.kestra.plugin.debezium.mongodb.Capture
snapshotMode: INITIAL
connectionString: "mongodb+srv://mongo_user:{{secret('MONGO_PASSWORD')}}@mongos0.example.com/"
maxRecords: 100
Properties
connectionString *Requiredstring
Defines connection string to mongodb replica set or sharded
hostname *Requiredstring
Hostname of the remote server
port *Requiredstring
Port of the remote server
deleted string
ADD_FIELDADD_FIELDNULLDROPSpecify how to handle deleted rows
Possible settings are:
ADD_FIELD: Add a deleted field as boolean.NULL: Send a row with all values as null.DROP: Don't send deleted row.
deletedFieldName string
deletedThe name of deleted field if deleted is ADD_FIELD
excludedCollections Non-dynamicobject
The name of the MongoDB database collection excluded from which to stream the changes
A list of regular expressions that match the collection namespaces (for example,
excludedColumns object
An optional, comma-separated list of regular expressions that match the fully-qualified names of columns to include in change event record values
Fully-qualified names for columns are of the form databaseName.tableName.columnName. Do not also specify the includedColumns connector configuration property."
excludedDatabases object
An optional, comma-separated list of regular expressions that match the names of databases for which you do not want to capture changes
The connector captures changes in any database whose name is not in the excludedDatabases. Do not also set the includedDatabases connector configuration property.
excludedTables object
An optional, comma-separated list of regular expressions that match fully-qualified table identifiers for tables whose changes you do not want to capture
The connector captures changes in any table not included in excludedTables. Each identifier is of the form databaseName.tableName. Do not also specify the includedTables connector configuration property.
format string
INLINERAWINLINEWRAPThe format of the output
Possible settings are:
RAW: Send raw data from debezium.INLINE: Send a row like in the source with only data (remove after & before), all the columns will be present for each row.WRAP: Send a row like INLINE but wrapped in arecordfield.
ignoreDdl booleanstring
trueIgnore DDL statement
Ignore CREATE, ALTER, DROP and TRUNCATE operations.
includedCollections Non-dynamicobject
The name of the MongoDB database collection included from which to stream the changes
A list of regular expressions that match the collection namespaces (for example,
includedColumns object
An optional, comma-separated list of regular expressions that match the fully-qualified names of columns to exclude from change event record values
Fully-qualified names for columns are of the form databaseName.tableName.columnName. Do not also specify the excludedColumns connector configuration property.
includedDatabases object
An optional, comma-separated list of regular expressions that match the names of the databases for which to capture changes
The connector does not capture changes in any database whose name is not in includedDatabases. By default, the connector captures changes in all databases. Do not also set the excludedDatabases connector configuration property.
includedTables object
An optional, comma-separated list of regular expressions that match fully-qualified table identifiers of tables whose changes you want to capture
The connector does not capture changes in any table not included in includedTables. Each identifier is of the form databaseName.tableName. By default, the connector captures changes in every non-system table in each database whose changes are being captured. Do not also specify the excludedTables connector configuration property.
key string
ADD_FIELDADD_FIELDDROPSpecify how to handle key
Possible settings are:
ADD_FIELD: Add key(s) merged with columns.DROP: Drop keys.
maxDuration string
The maximum duration waiting for new rows
It's not an hard limit and is evaluated every second. It is taken into account after the snapshot if any.
maxRecords integerstring
The maximum number of rows to fetch before stopping
It's not an hard limit and is evaluated every second.
maxSnapshotDuration string
PT1HThe maximum duration waiting for the snapshot to ends
It's not an hard limit and is evaluated every second. The properties 'maxRecord', 'maxDuration' and 'maxWait' are evaluated only after the snapshot is done.
maxWait string
PT10SThe maximum total processing duration
It's not an hard limit and is evaluated every second. It is taken into account after the snapshot if any.
metadata string
ADD_FIELDADD_FIELDDROPSpecify how to handle metadata
Possible settings are:
ADD_FIELD: Add metadata in a column namedmetadata.DROP: Drop metadata.
metadataFieldName string
metadataThe name of metadata field if metadata is ADD_FIELD
offsetsCommitMode string
ON_STOPON_EACH_BATCHON_STOPWhen to commit the offsets to the KV Store
Possible values are:
ON_EACH_BATCH: after each batch of records consumed by this task, the offsets will be stored in the KV Store. This avoids any duplicated records being consumed but can be costly if many events are produced.ON_STOP: when this task completes, the offsets will be stored in the KV Store. This avoids any un-necessary writes to the KV Store.
password string
Password on the remote server
pluginDefaultsRef Non-dynamicstring
Reference (ref) of the pluginDefaults to apply to this task.
properties object
Additional configuration properties
Any additional configuration properties that is valid for the current driver.
snapshotMode string
INITIALINITIALINITIAL_ONLYNO_DATAWHEN_NEEDEDSpecifies the criteria for running a snapshot when the connector starts
Possible settings are:
INITIAL: The connector runs a snapshot only when no offsets have been recorded for the logical server name.INITIAL_ONLY: The connector runs a snapshot only when no offsets have been recorded for the logical server name and then stops; i.e. it will not read change events from the binlog.NO_DATA: The connector captures the structure of all relevant tables, performing all the steps described in the default snapshot workflow, except that it does not create READ events to represent the data set at the point of the connector’s start-up.WHEN_NEEDED: The connector runs a snapshot upon startup whenever it deems it necessary. That is, when no offsets are available, or when a previously recorded offset specifies a binlog location or GTID that is not available in the server.
splitTable string
TABLEOFFDATABASETABLESplit table on separate output uris
Possible settings are:
TABLE: This will split all rows by tables on output with namedatabase.tableDATABASE: This will split all rows by databases on output with namedatabase.OFF: This will NOT split all rows resulting in a singledataoutput.
stateName string
debezium-stateThe name of the Debezium state file stored in the KV Store for that namespace
username string
Username on the remote server
Outputs
size integer
The number of fetched rows
stateOffsetKey string
The KV Store key under which the combined Debezium state (offset + schema history) is stored
Both stateOffsetKey and stateHistoryKey point to the same combined entry written atomically.
The entry holds a map with keys offsets and history so both states are always consistent.
uris object
URI of the generated internal storage file
Metrics
records counter
The number of records processed, tagged by source.