RealtimeTrigger
Consume a message in real-time from a MySQL database via change data capture and create one execution per row.
If you would like to consume multiple messages processed within a given time frame and process them in batch, you can use the io.kestra.plugin.debezium.mysql.Trigger instead.
type: "io.kestra.plugin.debezium.mysql.RealtimeTrigger"
Consume a message from a MySQL database via change data capture in real-time.
id: debezium-mysql
namespace: company.team
tasks:
- id: send_data
type: io.kestra.plugin.core.log.Log
message: "{{ trigger.data }}"
triggers:
- id: realtime
type: io.kestra.plugin.debezium.mysql.RealtimeTrigger
serverId: 123456789
hostname: 127.0.0.1
port: 63306
username: mysql_user
password: mysql_passwd
YES
deleted
The name of deleted field if deleted is ADD_FIELD
.
YES
Hostname of the remote server.
YES
ADD_FIELD
ADD_FIELD
DROP
Specify how to handle key.
Possible settings are:
ADD_FIELD
: Add key(s) merged with columns.DROP
: Drop keys.
YES
ADD_FIELD
ADD_FIELD
DROP
Specify how to handle metadata.
Possible settings are:
ADD_FIELD
: Add metadata in a column namedmetadata
.DROP
: Drop metadata.
YES
Port of the remote server.
YES
TABLE
OFF
DATABASE
TABLE
Split table on separate output uris
.
Possible settings are:
TABLE
: This will split all rows by tables on output with namedatabase.table
DATABASE
: This will split all rows by databases on output with namedatabase
.OFF
: This will NOT split all rows resulting in a singledata
output.
YES
ADD_FIELD
ADD_FIELD
NULL
DROP
Specify 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.
YES
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."
YES
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.
YES
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.
YES
INLINE
RAW
INLINE
WRAP
The 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 arecord
field.
YES
true
Ignore DDL statement.
Ignore CREATE, ALTER, DROP and TRUNCATE operations.
YES
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.
YES
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.
YES
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.
YES
metadata
The name of metadata field if metadata is ADD_FIELD
.
YES
ON_EACH_BATCH
ON_EACH_BATCH
ON_STOP
How to commit the offsets to the KV Store.
Possible values are:
- ON_EACH_BATCH: after each batch of records consumed by this trigger, 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 trigger is stopped or killed, the offsets will be stored in the KV Store. This avoid any un-necessary writes to the KV Store, but if the trigger is not stopped gracefully, the KV Store value may not be updated leading to duplicated records consumption.
YES
Password on the remote server.
YES
Additional configuration properties.
Any additional configuration properties that is valid for the current driver.
YES
A numeric ID of this database client.
This must be unique across all currently-running database processes in the MySQL cluster. This connector joins the MySQL database cluster as another server (with this unique ID) so it can read the binlog. By default, a random number between 5400 and 6400 is generated, though the recommendation is to explicitly set a value.
YES
INITIAL
INITIAL
INITIAL_ONLY
WHEN_NEEDED
NEVER
SCHEMA_ONLY
SCHEMA_ONLY_RECOVERY
Specifies 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.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.NEVER
: The connector never uses snapshots. Upon first startup with a logical server name, the connector reads from the beginning of the binlog. Configure this behavior with care. It is valid only when the binlog is guaranteed to contain the entire history of the database.SCHEMA_ONLY
: The connector runs a snapshot of the schemas and not the data. This setting is useful when you do not need the topics to contain a consistent snapshot of the data but need them to have only the changes since the connector was started.SCHEMA_ONLY_RECOVERY
: This is a recovery setting for a connector that has already been capturing changes. When you restart the connector, this setting enables recovery of a corrupted or lost database history topic. You might set it periodically to "clean up" a database history topic that has been growing unexpectedly. Database history topics require infinite retention.
YES
debezium-state
The name of the Debezium state file stored in the KV Store for that namespace.
NO
CREATED
RUNNING
PAUSED
RESTARTED
KILLING
SUCCESS
WARNING
FAILED
KILLED
CANCELLED
QUEUED
RETRYING
RETRIED
SKIPPED
List of execution states after which a trigger should be stopped (a.k.a. disabled).
YES
Username on the remote server.
Data.
Data extracted.
Stream.
Stream source