Prerequisites
The Overture bucket is in AWSus-west-2, so this guide uses the aws-us-west-2 Archil region. Export an API key created in
that region, then install the SDK for the language you’ll orchestrate from. You’ll also use curl to call the query endpoint.
npx tsx <name>.ts and Python
scripts with python <name>.py.
Create the disks and a sandbox
You need two disks:overture-mapsis backed by the public bucket, using therelease/2026-09-23.0/prefix as its root. Archil reads the Parquet files from the bucket as DuckDB asks for them, and caches what it reads.duckdb-workspaceis a regular Archil disk for everything you write: the DuckDB binary and the database you build.
setup.sh
/mnt/overture and the workspace at
/mnt/work, then run the script:
Query the bucket in place
Every Overture row has abbox column with its bounding box, and the files store min/max statistics for it. When a query
filters on bbox, DuckDB uses those statistics to skip the row groups that can’t match, so it only reads a small part of
the 11 GB.
This script finds the sandbox by name and runs two statements. The first breaks down the places in Seattle by category,
straight from the bucket. The second saves every place in Washington state as a table in places.duckdb on the workspace
disk.
places.duckdb is an ordinary file on the workspace disk, so it survives the sandbox stopping, and
anything that mounts the workspace can query it.
Serve queries over HTTPS
This server opensplaces.duckdb read-only and runs the SQL in each POST body. External file access is turned off and the
setting is locked, so a query can read the places table but not other files in the sandbox or on the disks.
server.py
X-Archil-Token header gets a
401, so you don’t need to build authentication into the server.
export lines the script prints, then send a query from your machine:
401. Hand the URL and token to a dashboard, a notebook, or an
agent tool, and create a new token when this one expires.
Run a one-off query with serverless execution
For a quick question, you don’t have to go through the sandbox. Serverless execution runs a command in a short-lived VM, andarchil.exec can mount several disks at once, each under /mnt/archil/<name>, which is
also the working directory. This command mounts both disks read-only and runs the DuckDB binary from the workspace against
the bucket, this time for Paris:
totalMs is measured by the server, from receiving the request to returning the result. In our runs the first Paris
query took about 1.2 seconds, including starting the VM, mounting both disks, and reading the row groups it needed from the
bucket. Repeat runs took under a second. Each serverless command is limited to 5 minutes, so use the sandbox for long-running work.
Clean up
Stop and delete the sandbox, then delete both disks. Deletingoverture-maps doesn’t affect the public bucket.
Next steps
- S3 Object Storage — attach your own buckets with read-write access
- Persistent sandboxes — services, port tokens, and stopping a sandbox between sessions
- Serverless execution — run commands against several disks at once
- Search logs across sandboxes — another analytics workflow on Archil disks