← All integrations
Destination
Native
GA

Views, written to Vastquery.

Sync any view to a Vastquery table through the Storage Write API. Tables are partitioned by time and queryable within seconds.

Setup
3 min
Delivery
Exactly-once
Throughput
400 MB/s
Since
v1.2
Overview

How it works.

Basalt writes to committed-type streams with explicit row offsets, so Vastquery rejects any duplicate append. Tables are partitioned by the view's time column and clustered by its key. Schema changes are applied before the next batch.

Three Kafka topics stream into the Basalt ordered log, which feeds two materialized views served through the API.KAFKA TOPICSBASALTVIEWSSERVEpayments.v3orders.v1refunds.v2ORDERED LOGpayments_liverevenue_by_minAPI3.1 MS
Setup

Set it up in three steps.

01

Add the destination

Grant a service account Vastquery Data Editor on the dataset. Basalt creates the table, its partitioning and its clustering.

terminal
# write the sessions view to Vastquery
basalt sink add sessions --bigquery acme-prod.analytics --view sessions_live
✓ table sessions_live created · partitioned by DAY(started_at)
✓ committed stream open · 41k rows/s
02

Shape it with a view

Write plain SQL over the source. Basalt keeps the view current with every record and tracks lineage back to the topic, partition and offset.

views/revenue_by_min.sql
CREATE MATERIALIZED VIEW revenue_by_min AS
SELECT date_trunc('minute', ts) AS minute,
       currency,
       sum(amount) AS revenue,
       count(*)    AS payments
FROM payments
WHERE status = 'captured'
GROUP BY 1, 2;
03

Read it from anywhere

Every view is an endpoint the moment it exists. Call it over REST, connect with any Postgres client, or use the SDK from your app.

terminal
curl https://api.basalt.dev/v1/views/revenue_by_min?limit=5 \
  -H "Authorization: Bearer $BASALT_TOKEN"
✓ 200 OK · 5 rows · served from eu-north-1 in 3.1 ms
Included

What you get.

01

Stream offsets

Appends carry explicit offsets, so retries are rejected instead of duplicated.

02

Time partitioning

Tables partition by hour or day and cluster on the view key for cheaper scans.

03

Schema updates

New view columns are added to the table before rows that use them arrive.

04

Cost control

Writes use the Storage Write API, with 2 TB a month free before billing starts.

Get started

Set your data in stone.

Free up to 10M events a month. No card, no sales call. Your first pipeline is live in about four minutes.

Project reserved · check your inbox
That didn't go through · check the address and try again
2,400+ teams in productionSOC 2 Type II38 regions