DU
SOFTWARE

DuckDB

DuckDB 1.5.5 is an embedded analytical SQL database that queries CSV, JSON, Parquet and local database files for single-machine analytics, OLAP applications, data conversion and reproducible research.

Version 1.5.5Windows x64/ARM64macOS Intel/Apple SiliconLinux x64/ARM64WebAssemblyMIT; extensions and dependencies have separate terms

What DuckDB provides

DuckDB runs as a command-line program or embedded library and can query CSV, JSON, Parquet, Arrow and database files directly. It is useful for local analysis, ETL, notebooks and data products without maintaining a separate database server. It is not a replacement for a multi-tenant service that needs account permissions, auditing and high-concurrency transactional writes.

Files, extensions and resource boundaries

SQL can read local or remote files, load extensions and consume substantial CPU, memory and temporary disk. Treat untrusted SQL like executable code: restrict directories and network access, set resource limits, use process or container isolation and allowlist extensions. Multiple independent processes should not frequently write the same database file.

Stable line and reproducibility

Version 1.5.5 is the current stable line, while 1.4.5 is a parallel LTS line. The CLI, language bindings, database format and extensions must be tested as a set. Pin versions and lockfiles when a query result or pipeline needs to be reproduced. Review date: 2026-08-23.

SAVE TO CLOUD

Save to your cloud drive

Open the cloud drive to get the file directly, or save it for convenient access on another device.

Links checked 2026-08-06
Save first, access when you need itOn desktop, scan with the matching cloud-drive app. On mobile, tap the save button.
GUIDE

DuckDB 1.5.5 installation, Parquet query and safe configuration guide

Create a test database in an isolated directory, inspect a public CSV, query a Parquet file and verify output before connecting real data or accepting external SQL.

Before you start

  • Choose the CLI, Python, R, JDBC, Node.js or another client and pin DuckDB and extension versions together.
  • Reserve space for the database file, WAL and temporary intermediate results, and prepare reproducible test data.
  • Use a least-privilege account for sensitive files and define the directories, network and extensions the process may access.
01

Installation steps

  1. 01

    Install the matching stable build

    Select the 1.5.5 CLI for the Windows, macOS or Linux architecture, or pin the language package in its lockfile; evaluate the 1.4.5 LTS line separately.

  2. 02

    Verify the database location

    Check the version, create a test database in a local directory and keep production files out of automatic sync folders or locations with multiple writers.

  3. 03

    Set memory and external-access limits

    Configure memory, threads and a controlled temporary directory, then use safe mode or directory and network restrictions when processing untrusted input.

02

Quick start

  1. 01

    Inspect input types first

    Describe a sample CSV query and limit rows before analysis; verify date, encoding and large-integer types instead of trusting inference blindly.

  2. 02

    Create a checked table

    Import the sample inside a transaction, check row counts, nulls and keys, then checkpoint the database before continuing.

  3. 03

    Query and export Parquet

    Use projection and filters to read only required columns, export the result to a controlled directory and reopen it to check types and counts.

Usage tips

  • Embedded analytics is convenient, but server databases remain a better fit for accounts, auditing, high-concurrency writes and online transactions.
  • Parameterize values and do not execute complete SQL submitted by an external user.
  • Community extensions come from third parties and should be reviewed and allowlisted for production.
Troubleshooting and uninstall

Why is the database locked or read-only?

Check for another writer, directory permissions and read-only mounts, then back up the file before closing an old process. Do not remove an active WAL or lock file by force.

Why do large queries exhaust memory or temporary disk?

Add filters and column projection, process inputs in batches and set memory, thread and temporary-directory limits. Inspect sorts, joins and aggregations that create large intermediates.

  1. Export and verify required dataExport important tables to Parquet or another supported format, reopen them and compare row counts, checksums and field types before removing the client.
  2. Remove clients and extension cachesClose all connections, uninstall the CLI or language package and clear extension or temporary data only after checking that no other project uses the shared environment.
FAQ

Frequently asked questions

Does DuckDB need a database server to start?

No. It normally runs as a CLI or embedded library with an in-memory or single-file database, rather than as a long-running service like MySQL or PostgreSQL.

Is DuckDB suitable for many independent processes writing one file?

It is designed for embedded analytics and controlled concurrency, not frequent multi-process writes with server-style permissions. Use a server database for that workload.

Can untrusted SQL be treated as harmless text?

No. SQL can read files, reach network resources, load extensions and consume resources. Use isolation, allowlists, resource limits and least-privilege paths.