Documentation

Introduction to the Analytical Database

At the heart of Altertable is a set of hosted DuckDB workers that run your queries inside preconfigured SQL sessions.

                         ╔════════════════ Altertable ════════════════════╗
╔════════════╗           ║                                                ║░
║            ║░          ║   ┏━━━━━━━━━━━━━━━━━━┓    ┏━━━━━━━━━━━━━━━┓    ║░
║   Client   ║░───REST──▶║   ┃  DuckDB Workers  ┃    ┃ Distributed   ┃    ║░
║            ║░          ║   ┃  ┌──┐ ┌──┐ ┌──┐  ┃    ┃ Storage (R2)  ┃    ║░
║            ║░──Arrow──▶║   ┃  │W1│ │W2│ │WN│  ┃───▶┃  ┌─────────┐  ┃    ║░
║            ║░  Flight  ║   ┃  └──┘ └──┘ └──┘  ┃    ┃  │ Parquet │  ┃    ║░
║            ║░          ║   ┃                  ┃    ┃  │ File 1  │  ┃    ║░
║            ║░───PG───▶ ║   ┗━━━━━━━━┬━━━━━━━━━┛    ┃  └─────────┘  ┃    ║░
╚════════════╝░ Adapter  ║            │         ┃    ┃  ┌─────────┐  ┃    ║░
 ░░░░░░░░░░░░            ║    ┏━━━━━━━┻━━━━━━┓  ┃    ┃  │ Parquet │  ┃    ║░
                         ║    ┃   Local SSD  ┃  ┃    ┃  │ File... │  ┃    ║░
                         ║    ┃     Cache    ┃  ┃    ┃  └─────────┘  ┃    ║░
                         ║    ┗━━━━━━━━━━━━━━┛  ┃    ┃  ┌─────────┐  ┃    ║░
                         ║                      ┃    ┃  │ Parquet │  ┃    ║░
                         ║                      ┃    ┃  │ File N  │  ┃    ║░
                         ║                      ┃    ┃  └─────────┘  ┃    ║░
                         ║                      ┃    ┗━━━━━━━━━━━━━━━┛    ║░
                         ║                      ┃                         ║░
                         ╚════════════════════════════════════════════════╝░
                           ░░░░░░░░░░░░░░░░░░░░░┃░░░░░░░░░░░░░░░░░░░░░░░░░
                                                ┃
                                                ┃    ┏━━━━━━━━━━━━━━━┓
                                                ┃    ┃               |░
                                                ┃    ┃    External   |░
                                                ┗───▶┃ DB & Warehouse|░
                                                     ┃               |░
                                                     ┗━━━━━━━━━━━━━━━┛░
                                                      ░░░░░░░░░░░░░░░░

You may create altertable databases or connect your own existing data sources via connections.

By default, you have 1 read-only altertable connection for product analytics. This connection is managed by Altertable and data is inserted automatically as your application pushes product events.

You may create as many connections as you want, for instance:

altertable(built-in)
TableDescription
main.eventsRaw events (everything /track receives)
main.identitiesRaw identities (everything /identify receives)
main.web_sessionsAggregated session data
main.web_pageviewsPage-level analytics
system.metricsSystem metrics
acme_lakehouse(your lakehouse)
TableDescription
main.usersExample of raw table copied by your ETL
main.ordersExample of raw table copied by your ETL
main.productsExample of raw table copied by your ETL
main.subscriptionsExample of raw table copied by your ETL
analytics.usersExample of analytics table generated by DBT
analytics.journeyExample of analytics table generated by DBT
analytics.featuresExample of analytics table generated by DBT
analytics.retentionExample of analytics table generated by DBT
PostgreSQLacme_pg(external PG)Production database read replica
TableDescription
public.usersUser accounts and profiles
public.ordersCustomer orders
public.productsProduct catalog
public.subscriptionsCustomer subscriptions
Crafted with <3 by former Algolia × Front × Sorare builders© 2025 AltertableTermsPrivacySecurityCookies