Skip to main content

Connector - DuckDB

By default, wvlet uses in-memory database of DuckDB (catalog: memory, schema: main).

Usage Examples

$ wv
wv> from 'https://shell.duckdb.org/data/tpch/0_01/parquet/customer.parquet'
| group by c_mktsegment
| agg _.count
| limit 5;
┌──────────────┬──────────────┐
│ c_mktsegment │ count_star()
│ string │ long │
├──────────────┼──────────────┤
│ MACHINERY │ 288
│ HOUSEHOLD │ 294
│ AUTOMOBILE │ 302
│ FURNITURE │ 279
│ BUILDING │ 337
├──────────────┴──────────────┤
5 rows │
└─────────────────────────────┘

To call some DuckDB internal functions, use raw SQL blocks:

# Generate TPC-H dataset with scale factor 0.01
wv> from sql"call dbgen(sf=0.01)";
┌─────────┐
│ Success │
│ boolean │
├─────────┤
├─────────┤
0 rows │
└─────────┘
wv> show tables;
┌────────────┐
│ table_name │
│ string │
├────────────┤
│ customer │
│ lineitem │
│ nation │
│ orders │
│ part │
│ partsupp │
│ region │
│ supplier │
├────────────┤
8 rows │
└────────────┘
wv> from orders limit 5;
┌────────────┬───────────┬───────────────┬───────────────┬─────────────┬──────────>
│ o_orderkey │ o_custkey │ o_orderstatus │ o_totalprice │ o_orderdate │ o_orderpr>
│ long │ long │ string │ decimal(15,2)date │ strin>
├────────────┼───────────┼───────────────┼───────────────┼─────────────┼──────────>
1370 │ O │ 172799.491996-01-02 │ 5-LOW >
2781 │ O │ 38426.091996-12-01 │ 1-URGENT >
31234 │ F │ 205654.301993-10-14 │ 5-LOW >
41369 │ O │ 56000.911995-10-11 │ 5-LOW >
5445 │ F │ 105367.671994-07-30 │ 5-LOW >
├────────────┴───────────┴───────────────┴───────────────┴─────────────┴──────────>
5 rows >
└─────────────────────────────────────────────────────────────────────────────────>