Data connectors

Connectors are declared in sources.yaml and loaded lazily the first time a query asks for that type. Each backend's heavy dependencies are an optional pip extra, so you only install what you use. A query's connector= (default main) chooses which one runs it.

# sources.yaml
main:
  type: csv
  directory: data

warehouse:
  type: postgres
  host: ${PG_HOST}        # ${ENV_VAR} expansion is supported everywhere
  database: analytics
  user: ${PG_USER}
  password: ${PG_PASSWORD}

The built-in connectors #

Type Family Extra Page
csv DuckDB-backed (core) CSV
json DuckDB-backed (core) JSON
parquet DuckDB-backed (core) Parquet
duckdb DuckDB-backed (core) DuckDB
motherduck DuckDB-backed (core) MotherDuck
quack DuckDB-backed (core) Quack
postgres SQL DB-API dashdown-md[postgres] Postgres
mysql SQL DB-API dashdown-md[mysql] MySQL
mssql SQL DB-API dashdown-md[mssql] SQL Server
snowflake SQL DB-API dashdown-md[snowflake] Snowflake
bigquery SQL DB-API dashdown-md[bigquery] BigQuery
excel Tabular dashdown-md[excel] Excel
sheets Tabular dashdown-md[sheets] Google Sheets
dax REST (Fabric/PBI) dashdown-md[dax] DAX / Fabric
cube Semantic (Cube) dashdown-md[cube] Cube

The csv, json, parquet, duckdb, excel, and sheets connectors all run SQL on an embedded DuckDB — so files and spreadsheets answer the same SQL as a real database.

Tip

Third-party connectors ship as separate PyPI packages declaring the dashdown.connectors entry-point group — no change to the core is needed.

Generated