Snowflake as a destination is deprecated and no longer actively maintained. It remains fully functional and no code is currently being removed. For new mirrors, we recommend ClickHouse, ClickHouse Cloud, or Postgres as the destination.
Let’s look at how we can seamlessly perform Change-Data Capturing (CDC) from PostgreSQL to Snowflake.
Suppose you have a banking application running on PostgreSQL. There are two tables: “users” and “transactions.” You want to sync these tables in real-time to Snowflake for analytics purposes, such as real-time fraud detection. Let’s see how we can make this happen within a few minutes and a few SQL commands using PeerDB.
Run the following commands to let PeerDB know about the existing Postgres and Snowflake Peers.
-- Connect to PeerDBpsql "port=9900 host=localhost password=peerdb"-- Add Postgres and Snowflake peersCREATE PEER postgres_peer FROM postgres (...);CREATE PEER snowflake_peer FROM snowflake (...);
Make sure to replace (…) with the appropriate connection details for both the PostgreSQL and Snowflake instances. More details on adding PEERs are available here.
You must set the staging path to be an existing S3 bucket URL, or an empty string for PeerDB to stage the AVRO files internally.If you observe, TABLE MAPPING represents the table name mapping between the two Postgres peers. The final WITH clause captures if you wanted to include initial snapshot as a part of the MIRROR. If you don’t include that WITH, PeerDB assumes that you don’t want to perform an initial snapshot. If just reads the slot and replays the changes to the target.
If you want additional types to be supported or want to alter the existing data type mapping, please reach out to us. We can aim to support that within a few days. Also, PeerDB is fully open source, so feel free to submit a PR.
PeerDB also supports replicating TOAST columns very efficiently. Unlike most CDC tools, you don’t need to set up REPLICA IDENTITY FULL for replicating TOAST columns. This PR captures the infrastructural optimizations that PeerDB takes to support TOAST columns.
You can use the UI (localhost:3000) to monitor the status of the initial load. Refer to the below video:
You can use the UI (localhost:3000) to monitor the status of the Change Data Capture (CDC). Refer to the below video:
For deeper monitoring, you can connect to localhost:8085 to get full visibility into the different jobs and steps that PeerDB is taking under the covers to manage the MIRROR.
To make it easy in your development and test environments, PeerDB also introduces the DROP MIRROR command. DROP MIRROR drops all the underlying objects that CREATE MIRROR generates. More details are available in this PR.
-- drop the mirrorDROP MIRROR real_time_cdc;
Assistant
Responses are generated using AI and may contain mistakes.