Sending signals to a Debezium connector
This feature is currently in incubating state, i.e. exact semantics, configuration options etc. may change in future revisions, based on the feedback we receive. Please let us know if you encounter any problems while using this extension. |
Overview
Sometimes it is necessary for the user to modify a connector behaviour or trigger a one-time action (e.g. snapshot of a single table). To fulfill such needs Debezium provides a mechanism how to send a signal to a Debezium connector to trigger an action. As it might be necessary to synchronize such an action with the dataflow the signal is implemented as a write to a data collection.
Signalling is disabled by default. The name of the signalling data collection must be set via connector configuration parameter to enable the function. The signalling data collection must be explictly added among captured data collections.
Parameter | Description |
---|---|
|
Fully-qualified name of data collection. |
Data collection structure
The signalling data collection must conform to a required format: It must contain three fields; the naming of the fields is arbitrary and only order of the field is important. It is recommended but not mandatory to use the field names as defined in the table below:
Column | Type | Description |
---|---|---|
|
|
A unique identifier of this signal instance. |
|
|
The type of the signal to be sent. |
|
|
JSON formatted parameters that are passed to a signal action. |
Such table could be created with a DDL command similar to:
CREATE TABLE debezium_signal (id VARCHAR(32) PRIMARY KEY, type VARCHAR(32) NOT NULL, data VARCHAR(2048) NULL);
Column | Value |
---|---|
id |
|
type |
|
data |
|
Signal Actions
These signals are common to all connectors
Logging
The type of the logging action is log
.
It will print a provided message to the log optionally including streaming position.
Name | Description |
---|---|
message |
The string printed to the log. |
Column | Value |
---|---|
id |
|
type |
|
data |
|