Ship AI-ready datasets, not pipelines.
LakeSwan turns any source into semantic, versioned, queryable datasets you describe once and reuse everywhere. Your models, your analysts, and your partners all read the same tables with the same meaning.
| order_idPK | customer_idFK → customers.id | amountmetric · money | countrydimension |
|---|---|---|---|
| 10421 | C-0088 | 1,240.00 | DE |
| 10422 | C-0107 | 89.90 | US |
| 10423 | C-0088 | 412.50 | DE |
| 10424 | C-0211 | 2,990.00 | IL |
Every data tool stops one step short of the dataset.
ETL moves rows. Warehouses store them. Catalogs describe them after the fact. None of them produce the thing a model or an analyst actually needs: a described, versioned dataset someone else can run.
Pipeline thinking
- Months on connectors, schedules, and retries before anyone sees a table.
- Raw columns with no keys, no relationships, no business names.
- "Orders by country" lives in twelve notebooks and none agree.
- LLMs guess at the schema and get it wrong.
Dataset thinking
- Describe the dataset once in a Dataset App. Run it in minutes.
- Keys, relationships, metrics, and descriptions ship with every table.
- One published app; every team runs it with their own Connections.
- Models read the semantic layer and write correct SQL the first time.
Describe once. Run anywhere. Query everywhere.
Build a Dataset App
Pick a reader, point it at a source, describe the tables. The app holds no data, so it can be versioned, shared, or published.
# Dataset App
reader_service: web-scraping-reader
tables: [products, prices]
parameters: [region]
Create a Dataset Instance
Attach your Connections, set parameters and a schedule. Each run writes Parquet to your bucket and archives the previous version.
# Dataset Instance
name: eu-prices
schedule: "0 6 * * *"
connections: [acme-postgres]
Query, join, share
Every dataset appears as database.schema.table in the Workbench. Join across sources with DuckDB, diff versions, or ask the SQL assistant.
SELECT country, sum(amount) FROM acme.sales.orders GROUP BY 1 ORDER BY 2 DESC
Datasets are the product. Integrations are infrastructure.
A lightweight semantic layer that travels with the data
Primary and foreign keys, relationships, business names, metrics, and descriptions, on every table, in every tenant that runs the app.
Time travel by snapshot
Every run archives the previous Parquet. Diff versions, audit a change, or derive a "what changed" dataset. No Delta, no Iceberg.
DuckDB Workbench with an assistant that reads only the schema
Query every dataset in one place. The SQL assistant sees table and column metadata, never your rows, and drafts SQL you review before running.
SELECT country, sum(amount) AS revenue FROM acme.sales.orders WHERE order_date >= date_trunc('quarter', now()) - INTERVAL 3 MONTH GROUP BY 1 ORDER BY 2 DESC LIMIT 5
Readers for the sources you already have
Databases, files, APIs, feeds, and the open web, plus Airbyte for the long tail.
Your storage. Your runtime.
Land datasets in platform storage or your own S3. Execute in LakeSwan's cloud, or run a one-container private runtime so your sources and datasets stay in your network.
Share and reuse
Grant a Dataset App to another team or tenant. They run it with their own Connections and get the same shape, the same semantics, the same SQL.
See it running
The pitch, and a short product walkthrough.
The pitch
0:49 · MP4Why datasets, not pipelines, are the thing worth building: GitHub, Shopify, and Docker Hub for datasets.
Product demo
5:12 · MP4Build a data product in LakeSwan: Shopify, a spreadsheet, and a public web page combined into one described, versioned dataset, then queried in the Workbench.
Built for the people who ship data
For data engineers
- 1Stop re-implementing the same extract for every team. Publish the Dataset App once.
- 2Keys, relationships, and definitions live with the table, not in a wiki nobody reads.
- 3Parquet on S3 and DuckDB. No new warehouse, no lock-in, your bucket.
- 4Snapshot versions on every run, so "what changed since Tuesday" is a query.
For founders
- 1AI-ready data for your product without hiring a data team first.
- 2Source to queryable dataset in minutes, not a quarter.
- 3Keep data in your own bucket or network from day one. Investors and customers ask.
- 4Reuse Dataset Apps shared with you instead of building the same feed everyone builds.
See LakeSwan on your own data.
Tell us what you're working on. We'll reply by email to set up a walkthrough, or to talk about piloting, building, or partnering together.