// the find
duckdb/dbt-duckdb
dbt adapter for DuckDB
dbt-duckdb is the official dbt adapter for DuckDB, letting you run your entire dbt transformation pipeline against an in-process analytical database. The in-memory mode makes it genuinely useful for CI pipelines and local development without any infrastructure setup.
The plugin system is well-designed — custom UDFs, Excel/GSheet sources, and SQLAlchemy bridges all hang off the same clean interface without touching adapter internals. External file materializations (Parquet/CSV/JSON with S3 support) turn DuckDB into a lightweight lakehouse without a separate catalog. The merge strategy implementation is unusually complete: UPDATE BY NAME, explicit column lists, custom SET expressions, and per-clause conditions are all there. MotherDuck and DuckLake integration is first-class, not bolted on.
The in-memory concurrency model is a real constraint — DuckDB's single-writer rule means parallel dbt threads can silently serialize or fail, and the docs bury this. External materialization doesn't support incremental strategies, so any append/upsert pattern on external files requires workarounds. The retries config is helpful but the default of 1 connect attempt with no query retry means transient S3 errors fail your whole run unless you remember to configure it. Python models run in-process, which means a buggy model can crash the dbt process rather than failing cleanly.