sources.sql

On this page

Sources: attach external databases

Phase: Post-catalog | Order: 7 | Required: No

Attach external databases via DuckDB’s attach mechanism. Data stays in the source system, read at query time.

PostgreSQL

ATTACH 'postgresql://user:pass@host:5432/warehouse' AS warehouse (READ_ONLY);

Requires postgres in extensions.sql and credentials in secrets.sql.

MySQL

ATTACH 'mysql:host=db.example.com port=3306 database=app' AS app_db (READ_ONLY);

Requires mysql in extensions.sql and credentials in secrets.sql.

Files

No setup required. Read directly in models:

SELECT * FROM read_parquet('data/*.parquet')
SELECT * FROM read_csv('data/events.csv')
SELECT * FROM read_json('s3://bucket/api-dump.json')