Postgres endpoint

Connect BI tools, SQL clients and Postgres drivers to your warehouse at pg.embrasure.ai. In alpha.

Alpha

The Postgres endpoint is in alpha. Expect rough edges: some tools' generated SQL or catalog queries may not work yet, and limits may change. Tell us what breaks, with the tool and its version.

Embrasure speaks the PostgreSQL wire protocol at pg.embrasure.ai. Tools that connect to PostgreSQL, such as Tableau, Power BI, Metabase, DBeaver, psql, JDBC, psycopg, Npgsql and node-postgres, can query your warehouse without an Embrasure driver. Every query goes through the same access checks, data policies and query history as queries in Embrasure.

The endpoint is read-only. It runs SELECT and other read statements; writes, DDL and COPY are refused.

Connect

SettingValue
Hostpg.embrasure.ai
Port5432
DatabaseA warehouse database, such as ember
UserYour email (any name works; the token identifies you)
PasswordA personal access token (dpt_…)
SSLRequired

The token decides the workspace and what you can read. Create one in Access Embrasure → API → Personal access tokens; it needs the read scope and lasts 30 days unless you choose another lifetime. Revoking the token ends access, including for connections that are already open. For a shared BI service, create a token for a service account so it doesn't expire with a person's access.

psql "host=pg.embrasure.ai port=5432 dbname=ember user=you@example.com sslmode=verify-full sslrootcert=system"

sslrootcert=system (libpq 16 and later) verifies the certificate against your operating system's trusted roots. With older clients, use sslmode=require.

Drivers and tools

ClientConnection details
JDBC (DBeaver, DataGrip, Metabase, Tableau, Looker)jdbc:postgresql://pg.embrasure.ai:5432/ember?sslmode=verify-full&sslfactory=org.postgresql.ssl.DefaultJavaSSLFactory
Npgsql, Power BIHost=pg.embrasure.ai;Database=ember;Username=you@example.com;Password=<token>;SSL Mode=VerifyFull
psycopg, SQLAlchemypostgresql://you%40example.com:<token>@pg.embrasure.ai:5432/ember?sslmode=require
node-postgresnew pg.Client({ host: "pg.embrasure.ai", database: "ember", user, password, ssl: true })

In Power BI and Tableau, choose the PostgreSQL connector, enter the host and database, and use your token as the password.

Databases and schemas

Each warehouse database is a PostgreSQL database; connect to the one you query most. Its schemas are the schemas you see in the catalog, such as default or a synced source's public. Tables can be named with one, two or three parts, as in SQL: orders, public.orders or ember.public.orders.

Tools browse tables through information_schema and pg_catalog, which list the tables and columns you can read. The warehouse has no primary keys, foreign keys or indexes, so those lists are empty.

SQL dialect

Queries are DuckDB SQL and run as written on DuckDB, with no translation. DuckDB's syntax is close to PostgreSQL's (:: casts, ILIKE, date_trunc, extract, CASE, CTEs and window functions), so SQL that BI tools generate usually runs unchanged. SHOW embrasure.sql_dialect returns duckdb.

Queries read your warehouse tables with DuckDB's common scalar, date, string, JSON, aggregate and window functions. Files, URLs, table functions, extensions and settings are refused; a function outside that set fails with Function is not supported by this execution profile.

Settings

SettingEffect
statement_timeoutCancels a statement after this long. The longest is one hour.
TimeZoneTime zone for timestamp with time zone values.
embrasure.max_result_rows10000, 100000 or unlimited (default). A result above the cap ends with an error.

Set them with SET, or at connect time with options='-c statement_timeout=60000'.

Behavior and limits

  • Cancelling from your client (Ctrl+C in psql, a query timeout in a driver, closing a dashboard) stops the query in the warehouse.
  • Transactions are accepted and have no effect: there is nothing to commit.
  • Cursors (DECLARE … CURSOR, FETCH) and driver fetch sizes stream a result to your client without loading it there at once. They don't raise the result limit below.
  • Idle connections close after eight hours, and briefly during updates; pooled clients reconnect on their own.
  • Each token can hold 200 connections.
  • A query can read tables totalling up to 25 GiB and return up to 256 MiB. Aggregate or filter larger results.

Troubleshooting

MessageCause
SSL connection is requiredSet sslmode=require or verify-full.
password authentication failedThe password is not a valid, unrevoked access token.
database "…" does not existUse a warehouse database name; the error lists some.
cannot execute … in a read-only transactionThe endpoint only reads.
the result has more than one column named "…"Give each result column a distinct alias.
Function is not supported by this execution profileThe query uses a DuckDB function outside the supported set; see SQL dialect.
Query result exceeds its byte budgetThe result is over 256 MiB. Aggregate, filter or select fewer columns.
Iceberg snapshots exceed the query scan budgetThe tables the query reads total more than 25 GiB.