> ## Documentation Index
> Fetch the complete documentation index at: https://docs.zwiron.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Postgres CDC to Snowflake

> Set up PostgreSQL WAL CDC into Snowflake with Zwiron — hosted or agent, then catalog and quality after every sync.

Keep Snowflake current from PostgreSQL without nightly dumps. Zwiron captures changes via **WAL CDC** (or incremental / full refresh when CDC is not required), lands them in Snowflake, then catalogs and quality-checks what landed.

## What you need

* A Zwiron account — [start free trial](https://zwiron.com/login?mode=signup)
* PostgreSQL with logical replication / WAL CDC prerequisites (see [PostgreSQL connector](/connectors/databases/postgres))
* A Snowflake account and destination credentials (see [Snowflake connector](/connectors/warehouses/snowflake))
* Hosted mode if Postgres/Snowflake are reachable from the internet, or an [agent](/getting-started/install-agent) in your VPC

## Steps

### 1. Choose Hosted or Agent

* **Hosted** — Zwiron runs the pipeline. Allowlist [egress IPs](/concepts/network-access) if your Postgres firewall requires it.
* **Agent** — place the agent next to Postgres when row data must stay in your network. See [When to use the agent](/guides/when-to-use-agent).

### 2. Create connections

1. [Create a Connection](/getting-started/create-connection) for **PostgreSQL** (source).
2. Create a Connection for **Snowflake** (destination).
3. Test both connections from the dashboard.

### 3. Create the pipeline

1. Follow [Your First Pipeline](/getting-started/first-pipeline).
2. Pick **PostgreSQL → Snowflake**.
3. Select tables to sync.
4. Choose sync mode:
   * **CDC** for continuous change capture (preferred for near-real-time warehouses)
   * **Incremental** when you have a reliable cursor column
   * **Full Refresh** for small tables or one-time loads

See [Sync Modes](/concepts/sync-modes) and [CDC](/concepts/cdc).

### 4. Schedule and run

Set a [schedule](/concepts/scheduling), start the job, and watch [monitoring](/pipelines/monitoring) for throughput and errors.

### 5. Trust what landed

After sync:

* Browse inventory in the [Data Catalog](/platform/catalog)
* Attach [Data Quality](/platform/data-quality) checks
* Optionally run [pipeline validation](/pipelines/validation)

## Related

* Marketing page: [Postgres → Snowflake on zwiron.com](https://zwiron.com/integrations/postgres-snowflake)
* [PostgreSQL connector](/connectors/databases/postgres)
* [Snowflake connector](/connectors/warehouses/snowflake)
* [Hosted vs agent](/guides/hosted-vs-agent)
