basalt

DestinationNativeGA

Views, streamed into Snowflake.

Send any Basalt view to a Snowflake table. Rows arrive through Snowpipe Streaming in seconds, with no warehouse running for the load.

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

How it works.

Basalt opens a Snowpipe Streaming channel per view partition and writes rows with offset tokens. Snowflake commits each batch with its token, so a restart resumes from the last committed row with no duplicates.

KAFKA TOPICSBASALTVIEWSSERVEpayments.v3orders.v1refunds.v2ORDERED LOGpayments_liverevenue_by_minAPI3.1 MS
Setup

Set it up in three steps.

01

Add the destination

Create a user with key-pair auth and a role that can insert into the target schema. Basalt creates the table from the view's types.

terminal
# stream the revenue view into Snowflake
basalt sink add revenue --snowflake ANALYTICS.PUBLIC --view revenue_by_min
✓ table REVENUE_BY_MIN created · 8 columns
✓ 4 channels open · end-to-end 2.3 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

Offset tokens

Each channel commits with a token, so a retry never writes the same row twice.

02

No warehouse load

Snowpipe Streaming writes rows directly. You pay for storage, not a running warehouse.

03

Typed tables

Columns map to NUMBER, VARCHAR, TIMESTAMP_TZ and VARIANT from the view schema.

04

Keyed merges

Keyed views can merge into a target table on a schedule as short as one minute.

Related

Other ways to stream in.

All integrations →
Beta

Anthropic

AI & ML

Give Claude live, row-level context through a typed tool.

Beta

OpenAI

AI & ML

Embed events as they land and store vectors beside the rows.

Partner

Hex

BI & notebooks

Query views from SQL cells and keep notebooks current.

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.

2,400+ teams in production

SOC 2 Type II

38 regions

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.

2,400+ teams in production

SOC 2 Type II

38 regions

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.

2,400+ teams in production

SOC 2 Type II

38 regions

© 2026 Basalt Labs

All systems normal

Back to top ↑

404

© 2026 Basalt Labs

All systems normal

Back to top ↑

404

© 2026 Basalt Labs

All systems normal

Back to top ↑

404

Create a free website with Framer, the website builder loved by startups, designers and agencies.