惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Apple Machine Learning Research
Apple Machine Learning Research
Jina AI
Jina AI
博客园_首页
WordPress大学
WordPress大学
罗磊的独立博客
小众软件
小众软件
Last Week in AI
Last Week in AI
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Hugging Face - Blog
Hugging Face - Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
爱范儿
爱范儿
The Cloudflare Blog
GbyAI
GbyAI
C
Check Point Blog
腾讯CDC
MyScale Blog
MyScale Blog
有赞技术团队
有赞技术团队
博客园 - 聂微东
IT之家
IT之家
雷峰网
雷峰网
H
Help Net Security
博客园 - 叶小钗
美团技术团队
D
DataBreaches.Net

Supabase Blog

AI Agents Know About Supabase. They Don't Always Use It Right. Custom OIDC Providers for Supabase Auth 100,000 GitHub stars Supabase docs over SSH Navigating Regional Network Blocks Supabase Joins the Stripe Projects Developer Preview Log Drains: Now available on Pro Supabase Storage: major performance, security, and reliability updates Supabase incident on February 12, 2026 Hydra joins Supabase X / Twitter OAuth 2.0 is now available for Supabase Auth BKND joins Supabase Supabase is now an official Claude connector Supabase PrivateLink is now available Introducing: Postgres Best Practices When to use Read Replicas vs. bigger compute Introducing TRAE SOLO integration with Supabase Supabase Security Retro: 2025 Sync Stripe Data to Your Supabase Database in One Click Building ChatGPT Apps with Supabase Edge Functions and mcp-use Own Your Observability: Supabase Metrics API Introducing iceberg-js: A JavaScript Client for Apache Iceberg Introducing Supabase for Platforms Adding Async Streaming to Postgres Foreign Data Wrappers Build "Sign in with Your App" using Supabase Auth Introducing Seven New Email Templates for Supabase Auth The new Supabase power for Kiro Introducing Supabase ETL Introducing Vector Buckets Snap, Inc. Launches Snap Cloud, Powered by Supabase
Introducing Analytics Buckets
Fabrizio Fenoglio · 2025-12-02 · via Supabase Blog

Introducing Analytics Buckets

Today Supabase is introducing Analytics Buckets, which you can use to store huge sets of data in Supabase Storage. Postgres is great for your app. But Postgres isn't designed for analytical workloads.

Analytics Buckets are a specialized storage type in Supabase designed for analytical workloads and built on Apache Iceberg and Amazon S3. They store data in columnar Parquet format, which is optimized for scans, aggregations, and time-series queries.

Think of them as cold storage for your data, with a query engine attached.

Your hot transactional data stays in Postgres. Your historical data and analytical workloads live in Analytics Buckets. You query both using familiar tools.

Analytics Buckets give you:

  • Cost-effective storage. S3 pricing instead of database storage. Documented savings of 30-90% on storage costs for large datasets.

  • Open table format. Apache Iceberg means no vendor lock-in. Query your data from any compatible tool.

  • Schema evolution. Change your table schema without rewriting data.

  • Time travel. Query historical snapshots of your data. See what a table looked like at any point in time.

  • Full audit history. Every change is preserved. Track what changed, when, and how.

When to use Analytics Buckets vs Postgres#

Analytics Buckets and Postgres are complementary. They serve different workloads.

Keep data in Postgres when:#

  • You need low-latency reads for your application

  • Data changes frequently and consistency matters

  • Your dataset is small to medium size

  • You need real-time access from your app

Use Analytics Buckets when:#

  • You are storing millions or billions of rows

  • You run heavy analytical queries that scan large tables

  • You need long-term retention at low cost

  • You want to query data from multiple tools

  • You need complete audit history and time travel

Many teams use both. Keep the last 90 days in Postgres. Archive everything to Analytics Buckets. Query historical data when needed.

Analytics Buckets use Apache Iceberg, an open table format created for large analytical datasets. Here is what happens under the hood:

  1. Data is stored in Parquet files on S3

  2. Iceberg manages metadata including schema, partitions, and snapshots

  3. An Iceberg REST Catalog provides the interface for querying

  4. You connect using any Iceberg-compatible tool

The separation of compute and storage means you can scale each independently. Store petabytes of data and query only what you need.

You can create an Analytics Bucket from the Dashboard or using the SDK.

Using the Dashboard#

  1. Navigate to Storage in your Supabase Dashboard

  2. Click Create Bucket

  3. Enter a name for your bucket

  4. Select Analytics Bucket as the bucket type

  5. Click Create

You can use the Supabase Dashboard to define columns and set data types, including complex types like decimal with precision and scale. The foreign data wrapper schema will automatically be configured for you. Once your table is created, you can manage Analytics Buckets in the same way that you manage your Postgres tables.

Using the SDK#


_10

import { createClient } from '@supabase/supabase-js'

_10

_10

const supabase = createClient('https://your-project.supabase.co', 'your-service-key')

_10

_10

await supabase.storage.createBucket('my-analytics-bucket', {

_10

type: 'ANALYTICS',

_10

})


Analytics Buckets require authentication with two services:

Iceberg REST Catalog manages metadata for your tables. It handles schema, partitions, and snapshots.

S3-Compatible Storage stores the actual data in Parquet format.

You authenticate using your Supabase service key for the catalog and S3 credentials for storage.

Analytics Buckets work hand in hand with Supabase ETL. ETL captures changes from your Postgres database and streams them to Analytics Buckets in near real time.

This gives you:

  • Automatic replication of your Postgres tables

  • Near real-time data in your analytics bucket

  • Complete changelog with every insert, update, and delete

  • No manual data movement or scheduled jobs

To set up replication, create a Postgres publication for the tables you want to replicate, then add an Analytics Buckets destination in the Replication section of the Dashboard.

Querying from Postgres#

You can query Analytics Buckets directly from Postgres using Foreign Data Wrappers. This lets you join hot data in Postgres with historical data in Analytics Buckets.


_17

-- Create a foreign server for your Iceberg data

_17

create server iceberg_server

_17

foreign data wrapper iceberg_wrapper

_17

options (

_17

aws_access_key_id 'your-access-key',

_17

aws_secret_access_key 'your-secret-key',

_17

region_name 'us-east-1'

_17

);

_17

_17

-- Import tables from your analytics bucket

_17

import foreign schema "analytics"

_17

from server iceberg_server

_17

into iceberg;

_17

_17

-- Query historical data

_17

select * from iceberg.events

_17

where event_timestamp > '2024-01-01';


A common architecture is data tiering: keeping recent data in Postgres and archiving history to Analytics Buckets.

  1. Partition tables by time in Postgres, keeping a rolling window like the last 90 days

  2. Stream all data to Analytics Buckets using Supabase ETL

  3. Drop old partitions from Postgres

  4. Query recent data from Postgres, historical data from Analytics Buckets

This keeps your Postgres database small and fast. Storage costs drop. Analytics queries run on data optimized for scans.

Analytics Buckets work with any tool that supports the Iceberg REST Catalog API:

  • PyIceberg

  • Apache Spark

  • DuckDB

  • Amazon Athena

  • Trino

  • Apache Flink

  • Snowflake (via external tables)

  • BigQuery (via BigLake)

Analytics Buckets are free during the Private Alpha. Standard egress charges apply when you move data out of the region.

To request access, fill out the form at forms.supabase.com/analytics-buckets.

  1. Request access to the Private Alpha

  2. Create an Analytics Bucket in the Dashboard

  3. Connect using PyIceberg, Spark, or your tool of choice

  4. Set up ETL to stream data from Postgres automatically

Separate your transactional and analytical workloads. Keep Postgres fast. Store history at S3 prices. Query from any tool.

We are excited to see what you build.