toolsmith

No upload · everything runs in your browser

CSV & Parquet query (SQL)

Opens a CSV or Parquet file and lets you query it with real SQL. DuckDB runs inside this tab, so the file is never uploaded.

Drop a CSV or Parquet file here

CSV · TSV · Parquet · JSON — one at a time

Where do my files go?

Nowhere. DuckDB is handed a reference to the file and reads it straight off your disk. Nothing is uploaded. What does get downloaded is the DuckDB engine itself, from a public CDN — that traffic goes the other way.

Why does it download about 6MB first?

Because DuckDB is a real analytical database compiled to WebAssembly. It is 35MB uncompressed and about 6MB over the wire. We fetch it the moment you press the button and not before, and your browser keeps it afterwards.

How large a file can it handle?

Larger than you would expect, especially for Parquet. The file is not loaded into memory up front — DuckDB reads only the parts a query needs, so a query touching two columns of a wide Parquet file barely reads anything. A CSV has to be scanned, so it is slower.

What SQL can I write?

DuckDB's dialect, which is close to PostgreSQL. Your file is available as the table `data`, so `SELECT * FROM data LIMIT 50` is the starting point. Joins, window functions, aggregates and CTEs all work. Errors come back from DuckDB word for word so you can fix them.

Does it show every row?

The table on screen stops at 200 rows so the page stays usable, and it tells you when it has. The query itself is not limited, and the CSV download contains every row that was displayed.

Other tools

Worth reading