Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Glossary

Short definitions of the terms used throughout this guide.

Data grid

A scrollable, sortable table of rows and columns rendered in a user interface. Perspective’s data grid, the Datagrid plugin, is virtualized: it renders only the visible cells, so its cost is independent of the number of rows.

Pivot table

A table which groups rows by one or more columns (row pivots), optionally splits them across the distinct values of other columns (column pivots), and shows an aggregate in each cell. In Perspective, row pivots are group_by and column pivots are split_by. See Grouping and Pivots.

Streaming pivot table

A pivot table whose groups and aggregates are updated incrementally as rows are inserted, updated or removed, rather than recomputed. See Streaming pivot tables.

Table

Perspective’s columnar, typed data store. A Table is created from a schema or a dataset (Apache Arrow, CSV, JSON, or a DataFrame in Python), and modified with update(), remove(), clear() and replace().

View

A continuous query over a Table: a combination of group_by, split_by, columns, aggregates, filter, sort and expressions. A View stays current as its Table changes and notifies on_update subscribers.

group_by

The columns whose distinct values become the rows of a pivot. Multiple levels form an expandable tree with subtotals.

split_by

The columns whose distinct values become the column headers of a pivot.

Aggregate

The function which reduces a group’s values to one cell — sum, avg, count, distinct count, median, weighted mean, first, last and others. Chosen per column.

Expression column

A computed column defined in Perspective’s expression language, based on ExprTK. Expressions are evaluated column-wise inside the engine and can be grouped, filtered, sorted and aggregated like stored columns.

Index

A Table option naming a primary key column. Updates to an indexed table replace the row with the matching key (and may be partial); without an index, updates append. See index and limit.

Limit

A Table option which keeps only the most recent n rows, for rolling windows over unbounded streams.

page_to_disk

A Table option which backs the table’s columns with on-disk storage — the Origin Private File System in the browser, memory-mapped files natively — so a Table can exceed the engine’s memory. See page_to_disk.

<perspective-viewer>

The Web Component (Custom Element) providing Perspective’s user interface: configuration panel, plugins, themes, multi-panel layout and save/restore.

Plugin

A visualization hosted by <perspective-viewer> — the Datagrid, or one of the WebGL charts (bar, line, area, scatter, heatmap, treemap, sunburst, candlestick, OHLC, maps).

Client, Server

A Server owns tables and executes queries. A Client is a handle to a Server, whether that server is in the same process, in a Web Worker, or across a WebSocket. The API is the same in every case.

Client-only mode

The engine runs in the browser as WebAssembly in a Web Worker; no server is involved. See Client-only.

Client/server replicated mode

A server owns the authoritative Table; each browser keeps a synchronized copy and queries it locally. See Client/Server replicated.

Server-only mode

Queries run on the server and the browser receives only the rows it is displaying. See Server only.

Virtual server

An implementation of Perspective’s protocol over an external query engine, such as DuckDB, ClickHouse, PostgreSQL or Polars, which translates view configurations into that engine’s native queries. See Virtual Servers.

Virtual scrolling

Rendering only the rows and columns currently in the viewport, and fetching more as the user scrolls.

Apache Arrow

A language-independent columnar memory format. It is Perspective’s preferred interchange format: it loads without parsing and preserves types.

WebAssembly

A portable binary instruction format which runs at near-native speed in browsers. Perspective’s C++ query engine and Rust UI are both compiled to WebAssembly.

Memory64

A WebAssembly extension for 64-bit memory addressing. Perspective ships an optional Memory64 engine build which raises the in-browser heap limit from 4GB to 16GB.