CDC data sources (Debezium)
This article provides an introduction to how Upsolver works with CDC (Change Data Capture) data sources.
What is Debezium?
Debezium is an open source distributed platform for change data capture. To use it, start it up, point it at your databases, and your apps can start responding to all of the inserts, updates, and deletes that other apps commit to your databases. Upsolver currently uses Debezium v1.4.
CDC Data Sources
Upsolver supports ingesting CDC data from relational databases such as MySQL, MariaDB and PostgreSql. Upsolver provides CDC capabilities by running a Debezium Engine under the hood to connect to database journals. The connectors automatically detect and ingest any change.
Event Format
Upsolver will read Debezium Change events with the following fields:
before
-The state of the row before the change that was applied in the current event. This can be null if this row is new.after
- The state of the row after the change that was applied in the current event.source
- Information about the change event. Including things such as what binlog file it came from, and it's sequence number or position within the file. The Source Table and Database will also be here.op
- The change type. The options are:r
- Read events (when loading the initial data)c
- Createu
- Updated
- Delete
Example 1:
This example event represents a new row being added to the table. You can tell this by the op type being c
. In this case we added a new sale to the sales
table in the prod
database (this can be seen in the source
information).
Example 2:
In this case we received an updated event for the event in Example 1. We can see the old values in before
and the new updated values in after
.
Supported Databases
Currently the following databases and versions are supported:
Database
Version
AWS RDS Supported?
MySQL
5.6+
Yes
PostgreSQL
10, 11, and 12
Yes
Some databases may require specific journal configurations to be used. See the documentation page for creating a CDC data source for your database for info.
MySQL insert example
MySQL update example
Postgres insert example
Postgres update example
Supported Data Outputs
Upsolver currently supports the following data outputs (for database replications).
Ahana
Amazon Athena
Dremio
Hive Metastore
PrestoDB
Qubole
Redshift Spectrum
Starburst
Upsolver Query
Last updated