MainTargetsDuckdb
DuckDB Setup
Prerequisites
- A DuckDB instance with the Quack extension serving over HTTP.
- Network connectivity from Supermetal to the Quack endpoint (default port 9494).
Setup
Start a Quack server
Install the Quack extension and start serving.
INSTALL quack;
LOAD quack;
CALL quack_serve('quack:0.0.0.0:9494', allow_other_hostname => true);This prints the listen URI, HTTP URL, and a generated authentication token. Save the token for the next step.
Configure the connection
| Field | Description |
|---|---|
| URL | HTTP URL of the Quack endpoint (e.g., http://localhost:9494) |
| Token | Authentication token returned by quack_serve |
| SSL Verify | Verify the server's TLS certificate. Disable if the certificate is not issued by a trusted CA. |
Target database and schema
| Field | Default | Description |
|---|---|---|
| Target Database | (required) | Database to write into. Must be attached on the DuckDB server before syncing. Can be any attached database, including DuckLake catalogs. Verify with SHOW DATABASES. |
| Target Schema | Optional. When set, all source tables land in this schema regardless of their source schema. Otherwise, each table keeps its source schema. Created if it does not exist. |
Primary Keys
Opt in. Supermetal deduplicates using MERGE without primary key constraints on the table. Enabling primary keys adds the constraint, enforcing uniqueness at the database level.
On DuckDB versions before 1.4, primary key constraints are required for dedup.
Multi table transactions
Opt in. When enabled, each CDC batch wraps in a transaction, preserving source transaction boundaries across tables.
DuckLake
DuckLake databases work as any other attached target database. Set the target database to the name of your attached DuckLake catalog and Supermetal writes to it directly. No additional setup required.
Last updated on