DuckDB#
Vortex is a core extension shipped with DuckDB, available from DuckDB 1.4.2+ on Linux and macOS (amd64, arm64).
Setup#
INSTALL vortex;
LOAD vortex;
Reading Vortex Files#
Use the read_vortex function to query a Vortex file:
SELECT * FROM read_vortex('data.vortex');
Filters and projections are pushed down into Vortex, so only the columns and rows needed by the query are read and decompressed.
SELECT name, age
FROM read_vortex('data.vortex')
WHERE age > 30;
Note
Direct file path syntax (SELECT * FROM 'data.vortex') is coming in an upcoming DuckDB release.
Writing Vortex Files#
Export data to Vortex using the COPY statement. The FORMAT vortex clause is required —
without it, DuckDB defaults to CSV.
COPY (SELECT * FROM my_table) TO 'output.vortex' (FORMAT vortex);
Extension Options#
vortex_filesystem#
Controls which filesystem implementation is used for reading and writing Vortex files.
Value |
Description |
|---|---|
|
Uses Vortex’s built-in object store filesystem. Supports |
|
Uses DuckDB’s built-in filesystem, including any filesystem extensions such as |
SET vortex_filesystem = 'duckdb';
Use 'duckdb' when you want to leverage DuckDB’s filesystem extensions (e.g., httpfs for HTTP
or S3 access with DuckDB’s credential management). Use 'vortex' (the default) for direct
object store access via Vortex’s own S3 integration, which reads credentials from environment
variables.
Python#
The DuckDB Python client works with read_vortex the same way:
import duckdb
duckdb.sql("INSTALL vortex")
duckdb.sql("LOAD vortex")
result = duckdb.sql("SELECT * FROM read_vortex('data.vortex') WHERE age > 30")
result.show()