To use DuckDB as Data Accelerator, specify duckdb as the engine for acceleration.
datasets :
- from : spice.ai:path.to.my_dataset
name : my_dataset
acceleration :
engine : duckdb
Warning
Spice v2.4 deprecates the duckdb engine, and Spice v2.5 removes it. Move each acceleration to Spice Cayenne : set engine: cayenne. On native Windows, Cayenne is not available: run Spice in Docker or WSL first. Restart Spice and confirm that Cayenne finished its first load before you delete anything. The old acceleration can hold data that the source no longer has. Then delete the DuckDB database file and its .wal file, unless another dataset still uses that file on duckdb. A mode: memory acceleration leaves no file. See the Cayenne migration guide .
Configuration
The DuckDB accelerator supports mode: memory, mode: file, mode: file_create, and mode: file_update.
Configuration params are provided in the acceleration section for a data store. Other common acceleration fields can be configured for DuckDB, see see datasets .
Warning
LIMITATIONS
The DuckDB accelerator does not support nested lists, or structs with nested structs/lists field types . For example:
Supported:
SELECT {'x': 1, 'y': 2, 'z': 3}
Unsupported:
SELECT [['duck', 'goose', 'heron'], ['frog', 'toad']]
SELECT {'x': [1, 2, 3]}
The DuckDB accelerator does not support enum, dictionary, or map field types . For example:
Unsupported:
SELECT MAP(['key1', 'key2', 'key3'], [10, 20, 30])
The DuckDB accelerator does not support Decimal256 (76 digits), as it exceeds DuckDB's maximum Decimal width of 38 digits.
Updating a dataset with DuckDB acceleration while the Spice Runtime is running (hot-reload) will cause the DuckDB accelerator query federation to disable until the Runtime is restarted.
Warning
MEMORY CONSIDERATIONS
When accelerating a dataset using mode: memory (the default), some or all of the dataset is loaded into memory. Ensure sufficient memory is available, including overhead for queries and the runtime, especially with concurrent queries.