Debezium connector for PlanetScale
The Debezium connector for PlanetScale is a connector for Debezium, an open-source distributed platform for change data capture. This connector is a fork of the 2.4.x release of the Debezium connector for Vitess.
This documentation shows you how to set up the Debezium connector for PlanetScale. This will allow you to get the debezium-server
running on your machine, connect to PlanetScale, and send messages to a webhook endpoint.
Install Java
- First, you’ll need the Java Development SDK installed on your machine. You can find this at https://www.oracle.com/java/technologies/downloads/#jdk22-mac.
Running standalone in Debezium Server
Debezium Server is a standalone application that can test a Debezium connector end-to-end by hosting the Debezium core as an in-process library and pass data from the source to the sink.
- Download Debezium Server from the distribution link.
- Create a directory on your machine where you want to run it.
- Move the download to that directory.
- Extract it by running
tar -xvf <path to file>
- You’ll now have a
debezium-server
directory. cd debezium-server
- Create a
data
folder. - Download the JAR with dependencies for the
debezium-vitess-planetscale
from GitHub, and place inlib/
.
Configure the Debezium connector for PlanetScale
Create a file conf/application.properties
. This is where your config will go.
In this example config, we are going to have the sink send HTTP requests to webhook.site
.
Go to http://webhook.site
to get your own endpoint.
Place the sample config below in conf/application.properties
, replacing the following placeholders:
<webhook>
with your webhook.site endpoint.<planetscale-database-name>
with your PlanetScale database name.<planetscale-hostname>
with your PlanetScale connection string hostname.<planetscale-username>
with your PlanetScale connection string username.<planetscale-password>
with your PlanetScale connection string password.
debezium.sink.type=http quarkus.log.level=DEBUG debezium.format.value=json debezium.sink.http.url=<webhook> log4j.logger.io.debezium.relational.history=DEBUG, stdout debezium.source.offset.storage.file.filename=data/offsets.dat debezium.source.offset.flush.interval.ms=0 debezium.source.schema.history.internal=io.debezium.storage.file.history.FileSchemaHistory debezium.source.schema.history.internal.file.filename=data/schema_history.dat debezium.source.connector.class=io.debezium.connector.planetscale.PlanetScaleConnector debezium.source.vitess.keyspace=<planetscale-database-name> debezium.source.vitess.tablet.type=MASTER debezium.source.database.hostname=<planetscale-hostname> debezium.source.database.port=443 debezium.source.database.user=<planetscale-username> debezium.source.database.password=<planetscale-password> debezium.source.topic.prefix=connector-test
Run it
Once the config is set, you can start it by running ./run.sh
Any existing rows in any table of <planetscale-database-name>
will show up as events in your webhook.site
endpoint. Adding/modifying/deleting rows will also show up as events in your endpoint.
Need help?
Get help from the PlanetScale Support team, or join our GitHub discussion board to see how others are using PlanetScale.