DuckDB

DuckDB is an in-memory database designed to be fast and reliable.

omniload supports DuckDB as both a source and destination.

URI format

The URI format for DuckDB is as follows:

duckdb:///<database-file>

URI parameters:

  • database-file: the path to the DuckDB database file

The same URI structure can be used both for sources and destinations. See the DuckDB SQLAlchemy dialect for details.

Remote source files

A DuckDB source file that lives in Amazon S3, Cloudflare R2, Azure Blob Storage, or Google Cloud Storage is addressed by its object URI, with the storage credentials as query parameters:

omniload ingest \
  --source-uri 's3://analytics/snapshots/events.duckdb?access_key_id=ACCESS&secret_access_key=SECRET' \
  --source-table 'main.events' \
  --dest-uri 'duckdb:///local.duckdb' \
  --dest-table 'raw.events'

Percent-encode every query value that contains reserved characters such as +, /, =, &, or ?.

The object is staged locally for the duration of the run, so remote databases are sources only. See Database files for the whole contract.