Getting Started with Snowflake Postgres
Snowflake Postgres is a fully managed Postgres service that runs inside your Snowflake account. It's real Postgres, so your existing applications, ORMs, drivers, and extensions work without code changes. You stop babysitting the database and spend that time on your app instead.
The difference from other managed Postgres services is where it lives. Your instance sits next to the rest of the Snowflake platform, so getting transactional data into analytics or AI workloads doesn't start with building an ETL pipeline.
Why Snowflake Postgres?
Snowflake runs the infrastructure: patching, backups, high availability, and resizing. You don't need a replica promotion runbook.
It's standard Postgres. Same wire protocol, same SQL, same extension ecosystem. If it works on Postgres, it should work here.
When you want your Postgres data in Snowflake for analytics, you have options. pg_lake lets Postgres write Iceberg tables that Snowflake reads directly, and data mirroring keeps Snowflake tables in sync with Postgres tables. Once the data is there, Cortex AI functions and agents can work with it too.
Billing and governance run through the same Snowflake account as everything else.
Key Capabilities
Instance Management
| Feature | Details |
|---|---|
| Postgres versions | 16, 17, 18 |
| Cloud regions | AWS and Azure |
| High availability | Standby in a separate availability zone with automatic failover (STANDARD and HIGHMEM tiers) |
| Point-in-time recovery (PITR) | Fork an instance to any point within a 10-day retention window |
| Instance sizes | Burstable (BURST_S, BURST_M), Standard (STANDARD_M to STANDARD_24XL), and memory-optimized (HIGHMEM_L to HIGHMEM_48XL) |
| Mirror data | Mirror Postgres tables into Snowflake for analytics and AI |
| Scaling | Change compute size and storage with ALTER POSTGRES INSTANCE (brief reconnect required) |
| Networking | Network policies, Private Link (Business Critical edition and above), and VPC peering on AWS |
Connectivity
Snowflake Postgres uses the standard Postgres wire protocol on port 5432, so anything in the Postgres ecosystem can connect:
- CLIs like psql and pgcli
- GUIs like pgAdmin, DBeaver, DataGrip, and Postico
- ORMs like SQLAlchemy, Django ORM, ActiveRecord, Prisma, and Drizzle
- Drivers like libpq, psycopg, node-postgres, JDBC, and Go pq
- BI tools like Tableau, Power BI, Metabase, and Grafana
pg_lake: Postgres Meets the Lakehouse
pg_lake is an open source Postgres extension for reading and writing Iceberg tables and Parquet, CSV, and JSON files from Postgres. In Snowflake Postgres, the simplest setup is shared Iceberg: Postgres writes Iceberg tables, and Snowflake reads them through a catalog integration. You don't need your own bucket for that. This gives you:
- Warehouse-scale analytics without running those queries on your OLTP instance
- Joins between Postgres data and your existing Snowflake tables
- A path to Cortex AI functions and agents over your Postgres data
pg_lake needs a STANDARD or HIGHMEM instance. Burstable instances don't support it. See the pg_lake guide for setup.
Extensions
Snowflake Postgres supports the popular Postgres extensions, including:
- pgvector for vector similarity search on embeddings
- PostGIS for geospatial types and functions
- pg_stat_statements for query performance monitoring
- age (Apache AGE) for Cypher graph queries
Get a Snowflake Account
If you don't already have a Snowflake account, sign up for a free trial:
- Go to signup.snowflake.com
- Choose your cloud provider and region
- Complete the registration form
- Activate your account from the confirmation email
The trial includes free credits you can use on Snowflake Postgres. Check the signup page for the current credit amount and trial length.
Your First Instance
You can create an instance from Snowsight in a few clicks:
- Select Postgres in the navigation menu
- Select Create
- Choose your instance size, storage, and Postgres version
- Pick a network policy, or add your IP addresses in the network settings step right after creation
- Select Create and save the credentials it shows you. You won't see them again.
Or do it in SQL:
CREATE POSTGRES INSTANCE my_postgres COMPUTE_FAMILY = 'STANDARD_M' STORAGE_SIZE_GB = 50 AUTHENTICATION_AUTHORITY = POSTGRES POSTGRES_VERSION = 18 NETWORK_POLICY = 'my_network_policy';
The output includes the host and the passwords for the snowflake_admin and application roles. Copy them somewhere safe. An instance with no network policy won't accept any connections, so if you skipped that step, attach one with ALTER POSTGRES INSTANCE my_postgres SET NETWORK_POLICY = 'my_network_policy';.
Once the instance is ready, connect with psql or your preferred client using that host and those credentials.
For a full walkthrough that covers creating an instance, connecting, loading data, and trying out platform features, follow the quickstart:
Step-by-step guide to launch your first instance and explore the platform.
What to Explore Next
Once your instance is running, here's where we'd go next:
- Migrating to Snowflake Postgres to move an existing Postgres database over
- pg_lake to share Postgres data with Snowflake as Iceberg tables
- Cortex AI Integration to build AI features on your Postgres data
- Monitoring & Observability to track instance health and query performance
- Connection Management to tune client connections and pooling
Conclusion
Snowflake Postgres is the Postgres you already know, with Snowflake running the operations and the rest of the platform one step away. Start a trial, run through the quickstart, and point a real app at it.
Related Resources
Complete documentation for configuration, management, and features.
Hands-on quickstart: create an instance, connect, load data, and explore.
Sign up for a free Snowflake account.
This content is provided as is, and is not maintained on an ongoing basis. It may be out of date with current Snowflake instances