Uploading Data
Upload CSV, Excel, JSON, XML, and log files for analysis in DuckViz.
DuckViz ingests data files directly in your browser using DuckDB-WASM. No data is uploaded to any server — parsing and table creation happen locally.
Supported file formats
| Format | Extensions | Notes |
|---|---|---|
| CSV | .csv, .tsv | Comma or tab-separated. Auto-detects delimiter. |
| Excel | .xlsx, .xls | Reads the first sheet. |
| JSON | .json | Objects or arrays of objects. Nested objects are flattened. |
| JSONL | .jsonl | One JSON object per line. |
| XML | .xml | Structured elements. Nested nodes are expanded into rows. |
| Log files | .log, .syslog, .clf, .combined, .evt, .evtx | Automatic format detection via AI. See Log Analysis. |
Single file upload
- Go to Upload from the home screen
- Drag and drop a file onto the upload zone, or click to browse
- DuckViz parses the file off the main thread so the UI stays responsive
- Once parsed, the table appears in the Explorer sidebar
Folder upload
You can drop an entire folder onto the upload zone. DuckViz will:
- Walk the directory recursively
- Skip binaries, dotfiles, and unsupported formats
- Ingest each file into its own DuckDB table
Each table is named after the file. You can query across tables using standard SQL JOIN or UNION ALL BY NAME.
Progress feedback
Large files are processed in chunks so the page stays responsive. Three non-dismissible notifications track progress as ingestion runs: Reading, Parsing, and Ingesting.
File size considerations
Since everything runs in the browser, available memory is your main constraint:
- Files up to ~100 MB work well on most machines
- Files up to ~500 MB work on machines with 16+ GB RAM
- For very large files, DuckViz monitors memory and shows a warning modal before hitting limits
You can unmount individual tables from the memory badge in the header to free up space.
Continuing a session
DuckViz persists all tables, files, and state in IndexedDB. When you return later, the Upload page offers:
- Continue session — restore your previous tables and dashboards
- Start fresh — wipe everything and start clean
The CLI is another way to get data into DuckViz — push files directly from your terminal. See CLI docs.