Storage

Query with PostgreSQL

Query analytics bucket data directly from PostgreSQL using SQL.


Once your data flows into an analytics bucket—either via the Replication Pipeline or custom pipelines—you can query it directly from Postgres using standard SQL.

This is made possible by the Iceberg Foreign Data Wrapper, which creates a bridge between your Postgres database and Iceberg tables.

Setup overview#

You have two options to enable querying:

  1. Dashboard UI (recommended) - Streamlined setup through the Supabase Dashboard
  2. Manual installation - Install the wrapper using SQL and configuration

Installing via Dashboard UI#

The dashboard provides the easiest setup experience:

  1. Navigate to your Analytics Bucket page in the Supabase Dashboard.
  2. Locate the namespace you want to query and click Query with Postgres.
Query with PostgreSQL button on analytics bucket page
  1. Enter the Postgres schema where you want to create the foreign tables.
Select destination PostgreSQL schema
  1. Click Connect. The wrapper is now configured.

Querying your data#

Once the foreign data wrapper is installed, you can query your Iceberg tables using standard SQL:

1
select *
2
from schema_name.table_name
3
limit 100;

Common query examples#

Get the latest events:

1
select event_id, event_name, event_timestamp
2
from analytics.events
3
order by event_timestamp desc
4
limit 1000;

Join with transactional data:

1
SELECT
2
e.event_id,
3
e.event_name,
4
u.user_email
5
FROM analytics.events e
6
JOIN public.users u ON e.user_id = u.id
7
WHERE e.event_timestamp > NOW() - INTERVAL '7 days'
8
LIMIT 100;

Manual installation#

For advanced use cases, you can manually install and configure the Iceberg Foreign Data Wrapper. See the Iceberg Foreign Data Wrapper documentation for detailed instructions.