Busabase
Busabase is an open-source (MIT) database and workspace for AI agents — data, docs, skills, and apps in one place. Run it locally, self-host it inside your network, or use Busabase Cloud, and turn age
翻訳待ち
No updates detected yet. GitHub releases will appear here.
Serverless lakehouse: dbt-core + DuckDB over Parquet on S3/GCS, event-driven on AWS Lambda or Cloud Run. Incremental Gold, data contracts, cost per run. Live demo with DuckDB-WASM.
翻訳待ち
Loading the full README.
Read the full README ↗Español · English · Demo en vivo · Linaje dbt
TL;DR. Un data warehouse que no paga por estar encendido. Los datos viven como Parquet en S3/GCS, cada día de datos dispara una Lambda (o Cloud Run) que corre
dbt buildcon DuckDB en memoria y se apaga. Cada ejecución lee solo la partición del día y Gold recalcula solo los meses afectados. Un test verifica que ese resultado incremental sea idéntico a reprocesar todo. Cada ejecución registra su duración y su costo estimado, y un chequeo diario alerta si un día no llegó. Mismo código en local, AWS y GCP, con Terraform para ambas nubes.
Data warehouse sin servidores siempre encendidos: los datos viven como Parquet en
almacenamiento de objetos, DuckDB los procesa en memoria y dbt-core
(dbt-duckdb) define las capas Bronze → Silver → Gold. El cómputo corre en
AWS Lambda o GCP Cloud Run, se dispara por eventos y escala a cero.
El mismo código corre en local, en AWS y en GCP. Solo cambian LAKE_ROOT (carpeta,
s3:// o gs://) y DBT_TARGET (local, aws, gcp).
productor ──► raw/ecommerce/<entidad>/year=/month=/day=/*.json
raw/ecommerce/_markers/year=/month=/day=/_SUCCESS ──┐
│ evento
┌────────────────────────────────────────────────────┘
▼
AWS: notificación S3 ──► Lambda (imagen) ┐
GCP: notificación GCS ──► Pub/Sub push ──► Cloud Run ├─► dbt build --vars run_date=AAAA-MM-DD
┘ │ DuckDB :memory:
▼
bronze/<entidad>/year=/month=/day=/part_0.parquet (solo la partición del día)
silver/<entidad>/year=/month=/day=/part_0.parquet (solo la partición del día)
gold/<tabla>/year=/month=/part_0.parquet (solo los meses afectados)
gold/<tabla>.parquet (dimensiones y totales)
galvysrodriguez.github.io/serverless-lakehouse-duckdb-dbt es un
sitio estático que .github/workflows/pages.yml regenera en cada push a main:
ops/pipeline_runs y los consulta en
el navegador con DuckDB-WASM, sin backend. Muestra ventas y también lo que cuesta
producirlas: duración de cada ejecución diaria y costo estimado con precios de Lambda./dbt/): modelos, columnas con sus contratos, tests y linaje.Los datos son sintéticos: el workflow genera ~2 meses, corre el pipeline día por día
como lo harían los eventos y publica el resultado. En local: make site-serve.
Requiere Python ≥ 3.11.
make install # crea .venv e instala el paquete + dbt-duckdb
make generate # 7 días de datos e-commerce sintéticos en ./data/lake/raw
make run # dbt build día por día (como lo haría cada evento)
make test # pytest: unitarios + pipeline de punta a punta
Consultar el resultado con DuckDB:
.venv/bin/python -c "import duckdb; print(duckdb.sql(\"from 'data/lake/gold/customer_ltv.parquet'\"))"
Otros comandos:
.venv/bin/lakehouse run --date 2026-10-21 # reprocesar un día (idempotente)
.venv/bin/lakehouse run --date 2026-10-21 --select tag:gold
make generate START=2026-09-01 END=2026-09-30 # rango propio
make test-unit # sin el test e2e
.venv/bin/lakehouse report --days 30 # duración y costo estimado por ejecución
.venv/bin/lakehouse check-freshness # ¿llegó y se procesó ayer?
make lint
make smoke # imágenes Lambda/Cloud Run contra un lago local
make docs # linaje dbt en localhost:8080
make site-serve # dashboard + dbt docs en localhost:8000
This is the beginning of the README. Read the rest at the original. Read the full README ↗