Skip to main content
Materialize is wire-compatible with PostgreSQL, which means it integrates seamlessly with many SQL clients, programming languages, BI tools, and other tools that support PostgreSQL.

Quick Start

To connect to Materialize, you’ll need:
  • Host: Your Materialize host name (e.g., instance.region.aws.materialize.cloud)
  • Port: 6875
  • Database: materialize (default)
  • Username: Your Materialize user email
  • Password: App-specific password (prefixed with mzp_)
  • SSL Mode: require
Before connecting, make sure you’ve created an app password for your user in the Materialize console. This password is auto-generated and prefixed with mzp_.

Integration Categories

Client Libraries

Connect to Materialize using PostgreSQL drivers in your favorite programming language:
  • Python - psycopg2 or psycopg3
  • Node.js - node-postgres (pg)
  • Java - PostgreSQL JDBC driver
  • Go - pgx driver
  • Ruby - pg gem
  • Rust - postgres-openssl
  • PHP - pdo_pgsql
View all client libraries →

BI Tools

Create real-time dashboards and visualizations with popular BI tools:
  • Metabase - Native PostgreSQL connector
  • Tableau - Tableau Cloud and Desktop support
  • Looker - PostgreSQL 9.5+ dialect
  • Power BI - DirectQuery mode
  • Hex - Real-time notebooks
  • Deepnote - Collaborative notebooks
  • Excel - ODBC connection
View all BI tools →

dbt Integration

Use dbt (data build tool) to transform data in Materialize:
  • dbt-materialize adapter for dbt Core
  • Support for materialized views, indexes, and sources
  • Native integration with dbt’s testing and documentation features
Learn about dbt integration →

Connection String Format

Most PostgreSQL clients accept connection strings in this format:
postgresql://[USERNAME]:[PASSWORD]@[HOST]:6875/materialize?sslmode=require

Example Connection String

postgresql://[email protected]:[email protected]:6875/materialize?sslmode=require

Runtime Connection Parameters

You can pass runtime connection parameters using the options parameter or PGOPTIONS environment variable:
# Using options parameter
postgresql://user@host:6875/materialize?sslmode=require&options=--cluster%3Dprod

# Using PGOPTIONS environment variable
export PGOPTIONS='--cluster=prod --transaction_isolation=serializable'
Common parameters:
  • cluster - Specify which cluster to use
  • search_path - Set the schema search path
  • transaction_isolation - Set isolation level
Parameters set in the connection string work for the lifetime of the session only. To permanently change defaults for a user, use ALTER ROLE...SET.

Additional Tools

Materialize CLI

The official Materialize command-line interface:
mz sql --cluster prod

SQL Clients

Connect using standard PostgreSQL clients:
  • psql - PostgreSQL command-line client
  • DBeaver - Universal database tool with native Materialize driver
  • DataGrip - JetBrains database IDE
  • TablePlus - Modern database management tool

HTTP & WebSocket APIs

  • HTTP API - Query via HTTP requests
  • WebSocket API - Real-time streaming via WebSockets

Feature Compatibility

While Materialize is PostgreSQL wire-compatible, some client tools may run introspection queries that use features not yet implemented in Materialize. This includes certain system functions and pg_catalog tables.
As Materialize extends coverage of pg_catalog and PostgreSQL compatibility, integration support continues to improve.

Need Help?

If you need assistance with a specific integration:
  1. Check the detailed integration guide for your tool
  2. Review known limitations in the compatibility docs
  3. Submit a feature request for new integrations

Next Steps

Client Libraries

Connect using Python, Node.js, Java, and more

BI Tools

Build dashboards with Metabase, Tableau, and Looker

dbt Integration

Transform data with dbt-materialize

SQL Clients

Connect with psql, DBeaver, and other SQL clients

Build docs developers (and LLMs) love