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

FieldDescription
URLHTTP URL of the Quack endpoint (e.g., http://localhost:9494)
TokenAuthentication token returned by quack_serve
SSL VerifyVerify the server's TLS certificate. Disable if the certificate is not issued by a trusted CA.

Target database and schema

FieldDefaultDescription
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 SchemaOptional. 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

On this page