Skip to content

DuckDB schema ​

Pair this with the DuckDB destination. Both sides use the same warehouse and table_namespace.

Before you begin ​

  • A file:/// warehouse directory Skipprd can write.

Configure ​

python
from skippr import Config, DataSinkDuckdb, Pipeline

cfg = Config.discover()
local = cfg.data_sink(
    "local",
    DataSinkDuckdb(warehouse="file:///var/lib/skipprd/duckdb", table_namespace="bronze"),
    schema_sink="local_schema",
)
cfg.pipeline("bikehire", Pipeline(data_source=cfg.get_data_source("sample"), data_sink=local))
cfg.save()
bash
skipprd connect data-sink duckdb \
  --pipeline bikehire \
  --name local \
  --warehouse file:///var/lib/skipprd/duckdb \
  --table-namespace bronze

skipprd connect schema-sink duckdb \
  --pipeline bikehire \
  --name local_schema
yaml
schema_sinks:
  local_schema:
    Duckdb:
      warehouse: file:///var/lib/skipprd/duckdb
      table_namespace: bronze

data_sinks:
  local:
    Duckdb:
      warehouse: file:///var/lib/skipprd/duckdb
      table_namespace: bronze
    schema_sink: schema_sinks.local_schema

Options ​

KeyTypeRequired/DefaultDescription
warehouseURIRequiredSame file:/// root as the destination
table_namespacestringNot setSame namespace as the destination

Troubleshooting ​

SymptomFix
Catalog emptyConfirm schema_sink is set on the data sink and discover has run
Path rejectedUse an absolute file:/// URI

Next steps ​