Guide

DuckDB Viewer: Complete Feature Guide & Reference

By FinancialDataTools.com Team  ·  March 2026  ·  13 min read  ·  Last updated March 14, 2026

🦆 Open the DuckDB Viewer to explore every feature described in this guide.

Open DuckDB Viewer →

Contents

  1. What Is the DuckDB Viewer?
  2. How DuckDB-Wasm Works
  3. Supported File Formats
  4. The Toolbar
  5. Table Browser
  6. Sorting Columns
  7. Row Filtering
  8. Global Search
  9. SQL Query Panel
  10. SQL Query Examples
  11. Schema Inspector
  12. Pagination
  13. Export Options
  14. Privacy & Security
  15. Use Cases for Financial Data

What Is the DuckDB Viewer?

The FinancialDataTools.com DuckDB Viewer is a free, browser-based tool for opening, querying, and exporting DuckDB database files. It uses DuckDB-Wasm — the official WebAssembly build of the DuckDB analytical engine — to read your database and execute SQL queries entirely inside your browser. No file is ever transmitted to any server.

Unlike simpler tabular viewers, the DuckDB Viewer gives you a full analytical SQL engine in the browser. You can run window functions, CTEs, JOINs, PIVOT operations, and complex aggregations against your DuckDB data without installing anything.

Try the DuckDB Viewer — runs entirely in your browser and never uploads your files.

Open the DuckDB Viewer →

How DuckDB-Wasm Works

DuckDB-Wasm is the official WebAssembly port of the DuckDB columnar analytical database. It compiles the full DuckDB C++ engine to WebAssembly so it can run natively inside a browser tab. When you open a .duckdb file in the viewer:

  1. The DuckDB-Wasm runtime is initialized in a Web Worker (so it doesn't block the browser's main UI thread)
  2. Your database file is registered in DuckDB-Wasm's virtual file system using registerFileBuffer
  3. The database is attached using DuckDB's ATTACH command
  4. All subsequent queries — table listing, row fetching, and your custom SQL — execute entirely within the Wasm runtime in your browser

The viewer selects the optimal DuckDB-Wasm bundle automatically: the eh (exception handling) bundle on browsers that support it, or the mvp bundle as a fallback. This means you always get the best performance available in your browser.

Supported File Formats

ExtensionDescription
.duckdbStandard DuckDB database file
.dbDuckDB databases saved with the .db extension

Note: The DuckDB Viewer reads DuckDB-native files. SQLite files (.sqlite, .db3) should be opened in the SQLite Viewer instead. Parquet files can be opened in the Parquet Viewer or queried from within a DuckDB database.

The Toolbar

ButtonFunction
Open FileOpens a system file picker to select your .duckdb or .db file
SQLToggles the SQL Query Panel open or closed (amber button)
SchemaOpens the column schema modal for the active table
ExportOpens the export dialog for the active view
File name displayShows the currently loaded database file name
Search boxGlobal text search across all visible columns

Table Browser

When a database is loaded, the tab bar below the toolbar shows a tab for each table in the database. Clicking a tab loads that table's rows into the main data grid. The stats bar below the tab bar shows the total row count, visible row count, column count, and the current table name.

Sorting Columns

Click any column header to sort ascending; click again to sort descending; click a third time to return to the original order. Sorting is applied client-side to the currently loaded page of rows. For paginated tables, sorting reorders the rows within the current page only — use the SQL panel with an ORDER BY clause for globally-sorted results across all rows.

Row Filtering

Each column header contains a filter icon. Click it to open the column filter panel, which offers two modes:

Column filters operate on the loaded page of rows. For large paginated tables, the SQL panel provides server-side filtering with full DuckDB SQL expressiveness.

The toolbar search box performs a real-time text search across all columns in the current view. It works on the currently loaded rows and stacks with active column filters.

SQL Query Panel

The SQL panel is the most powerful feature of the DuckDB Viewer. Click the amber SQL button in the toolbar to toggle it open. The panel contains:

Query results replace the current table view in the main grid. The column headers, type badges, sorting, filtering, and export all work identically on SQL query results as they do on raw table data. You can export the results of any query directly to CSV, JSON, TSV, or Excel.

SQL Query Examples

Because the viewer runs a full DuckDB engine, you have access to the complete DuckDB SQL dialect. Some examples relevant to financial data:

Basic SELECT with filter and sort:

SELECT trade_date, symbol, quantity, price, quantity * price AS notional
FROM trades
WHERE trade_date >= '2025-01-01'
ORDER BY trade_date DESC
LIMIT 500;

Window function — running total:

SELECT
  trade_date,
  amount,
  SUM(amount) OVER (ORDER BY trade_date ROWS UNBOUNDED PRECEDING) AS running_total
FROM transactions
ORDER BY trade_date;

Aggregation with GROUP BY:

SELECT
  symbol,
  COUNT(*) AS num_trades,
  SUM(quantity) AS total_shares,
  AVG(price) AS avg_price,
  MIN(price) AS low,
  MAX(price) AS high
FROM trades
GROUP BY symbol
ORDER BY num_trades DESC;

CTE for multi-step analysis:

WITH daily_pnl AS (
  SELECT trade_date, SUM(pnl) AS daily_total
  FROM positions
  GROUP BY trade_date
)
SELECT
  trade_date,
  daily_total,
  AVG(daily_total) OVER (ORDER BY trade_date ROWS 29 PRECEDING) AS ma_30d
FROM daily_pnl
ORDER BY trade_date;

DuckDB supports many additional features: PIVOT, UNPIVOT, ASOF JOIN, list and struct operations, JSON functions, QUALIFY, EXCLUDE columns, and macro definitions.

Schema Inspector

Click the Schema button in the toolbar to open the column schema modal for the active table. This displays each column's name, DuckDB data type, and nullable status, derived from DuckDB's DESCRIBE command. You can copy the full schema as plain text using the Copy Schema button.

Pagination

Tables with more than 50,000 rows are automatically paginated to 5,000 rows per page. DuckDB-Wasm fetches each page directly from the attached database using LIMIT … OFFSET, so only the rows being displayed are loaded into browser memory at any time. This makes the viewer efficient even for large analytical databases.

The page bar at the bottom shows the current page, total pages, and row range. Navigation buttons — First, Previous, Next, Last — allow quick movement between pages.

Export Options

Click Export in the toolbar to open the export dialog. Four formats are available:

FormatBest ForNotes
CSVPython/pandas, data pipelines, spreadsheetsUTF-8; NULL as empty string
JSONAPIs, JavaScript, downstream processingArray of objects; column names as keys
Excel (.xlsx)Sharing with non-technical stakeholdersFrozen header row; auto-sized columns; attribution sheet
TSVTab-separated import targetsUseful when values may contain commas

Three export scopes are available:

Privacy & Security

The DuckDB Viewer is built privacy-first. Your database file is registered in DuckDB-Wasm's in-memory virtual file system and never transmitted to any server. The entire DuckDB engine — query parsing, execution, and result formatting — runs inside your browser via WebAssembly.

Network requests from the viewer are limited to loading the DuckDB-Wasm runtime from jsDelivr CDN and ExcelJS for Excel export. No query results, table data, or file contents leave your browser.

This makes the viewer appropriate for sensitive analytical databases including:

Closing the browser tab clears all data from memory immediately.

Use Cases for Financial Data

DuckDB has become a widely used in-process analytical database for financial data work, particularly in Python and R data science workflows. Common scenarios where the viewer adds immediate value:

Related Articles

Advertisement