QoreDB LogoQoreDB

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

FieldRequiredNotes
PathYesAbsolute 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 .duckdb file 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

Newsletter

Stay updated on new releases

Subscribe to get product releases, new drivers notifications, and technical tutorials.

🎁 Bonus: Get our free SQL Performance Cheat Sheet — 9 pages, PostgreSQL / MySQL / SQLite (PDF)!