DuckDB
Connect QoreDB to DuckDB, the in-process analytical database. File-based, in-memory, or used as the engine behind cross-database federation.
DuckDB is an in-process analytical database, optimized for fast aggregations, joins and reads over columnar data. It has no server: you point QoreDB at a file (or use an in-memory database) and you're connected.
Quick connect
Open New Connection, choose DuckDB, and either browse to a file or paste a path.
The driver also accepts a path of :memory: for an ephemeral in-memory database.
Connection fields
| Field | Required | Notes |
|---|---|---|
| Path | Yes | Absolute or relative path to a .duckdb or .db file. Or :memory:. |
Like SQLite, there is no host, port, user or password. QoreDB creates the file automatically if it doesn't exist; first write persists it to disk.
Supported file extensions
The driver validates the file extension. Two are accepted:
.duckdb.db
If you have a different extension, rename the file or use :memory:.
In-memory databases
Use :memory: (or duckdb::memory:) for a database that lives only in RAM and disappears when the connection closes. Useful for:
- One-off exploratory queries
- Testing analytical queries before persisting them
- Loading a CSV or Parquet, doing some transformations, exporting the result
What DuckDB is good at
DuckDB is a columnar engine designed for analytical workloads (OLAP). It shines at:
- Aggregations and joins over millions of rows on a single machine, without a server.
- Reading Parquet and CSV directly with SQL (
SELECT * FROM 'data.parquet'works out of the box). - Embedded analytics: you can ship a
.duckdbfile with a desktop app and query it locally. - Time-series and analytical queries that would be slow on row-stored OLTP databases.
For high-throughput transactional workloads (lots of single-row inserts and updates), pick PostgreSQL or another row-store.
Cross-database federation
DuckDB is also the engine behind QoreDB's cross-database federation: it can attach external databases (Postgres, MySQL, SQLite, and others) and query them as if they were local DuckDB tables. This lets you join data across heterogeneous sources from a single SQL query.
The federation feature is set up at the workspace level rather than per-connection. The DuckDB driver itself is for connecting to a regular DuckDB file or in-memory instance; the federation engine reuses DuckDB internally but isn't exposed through the same connection dialog.
Common issues
Where to go next
- SQLite for the row-store equivalent on a single file
- Querying: editor and autocomplete for the SQL editor
- Reference: connection URLs for the full URI grammar
Stay updated on new releases
Subscribe to get product releases, new drivers notifications, and technical tutorials.