DevToolsmith

DuckDB Analytics Lab

Analyze local files with DuckDB SQL: join tables, group records and calculate aggregates. Import CSV, TSV, JSON, NDJSON or Parquet, run a query and download the result without uploading your files.

Runs 100% in your browser — nothing is uploaded

  • Sample table: sample(name, team, score)
SQL query
Tip: drop a file here114 chars · 114 bytes · 4 lines

Local files only · 50 MB total · 256 MB database memory budget · 60-second timeout · 5,000 result rows. Each run starts fresh. File and network access are disabled before your query runs. Big integers and decimals export as strings. Timestamps use Arrow milliseconds; CAST to VARCHAR in SQL to keep finer precision.

Query files as tables

Add local files and use their displayed table names. For example, SELECT team, count(*) FROM sample GROUP BY team aggregates the built-in fixture. To join imported files, use their suffixed names in a normal JOIN expression.

Choose the right SQL workspace

Try a query that requires no import. It creates two in-query rows and calculates a total, so you can verify the engine before adding a file:

SELECT team, SUM(score) AS total
FROM (VALUES ('platform', 10), ('platform', 15)) AS scores(team, score)
GROUP BY team;
teamtotal
platform25

For an imported orders.csv shown as orders_1, select or group from that displayed name. Upload order affects the suffix. Use a single SELECT or WITH query; a CREATE TABLE script and remote file URLs are outside this workspace’s supported interface.

DuckDB is useful for analytics over columnar Parquet and multiple imported files. SQLite Database Lab is useful when you want to inspect or download a SQLite database. This workspace accepts a single SELECT or a WITH query returning rows; it does not persist a database between runs.

Limits and cancellation

For offline queries, save the basic tools and the DuckDB analytics pack before disconnecting. SQLite is included in the basic tools and needs no extra download.

Import up to eight files totaling fifty megabytes. The database uses a 256 MB memory budget and one thread. Each run has a sixty-second timeout and can be cancelled. Results have at most one hundred columns and five thousand rows; use filters and LIMIT for larger source data.

Choose SQLite Database Lab to open or download a SQLite database. Use Data File Lab to page through a supported file without a SQL query, SQL Formatter to reformat a query, or JSON to CSV to reshape a small JSON result.

Powered by open-source software. Third-party licenses.

Documentation examples checked: . How these tools are checked.

Frequently asked questions

How are table names assigned?

Each file gets a sanitized name plus a numeric suffix, shown above the SQL editor. Use that exact name in the query. Without imported files, a built-in sample table is available.

Are files or SQL sent to a database server?

No. DuckDB runs in a local WebAssembly worker. Input files are registered in memory, and external access is disabled before user SQL runs. Each query starts with a fresh database.

How are large results and integers exported?

Results are limited to five thousand rows and two million output characters. Truncated results are explicitly marked. Large integer and decimal values export as strings to preserve precision. Timestamps use Arrow milliseconds; cast timestamps to VARCHAR in SQL to preserve sub-millisecond precision.

Sources

Spotted a mistake? Email hello@devtoolsmith.com and we’ll fix it.