# Datasets Project datasets accumulate knowledge across runs: scan observations are reconciled into tables you can query, filter, and reuse. Every project can have up to 100 datasets, and workflows push into them with `step.update_dataset`. Use this section as a reference for the whole feature:
| Page | What it covers |
|---|---|
| Overview | Current state vs history, identity, the reserved columns, query surfaces, and limits. |
| Schemas and identity | Column kinds, naming rules, identity columns, reconciliation, and schema changes. |
| Pushing and reading dataset rows |
step.update_dataset
(mapping, upsert/sync modes) and
step.download_dataset
, with a complete asset-tracking workflow.
|
| SQL reference | DuckDB dialect, query scope, pagination and ordering, allowed statements, result types, and examples. |
| Structured filters | The filter AST and operators, time ranges, where filters run, and the UI filter builder. |
| Saved views | Reusable read-only queries, nesting, cycles, validity, and execution. |
| API and CLI |
DatasetService
,
DatasetViewService
,
bh dataset
, exports, and scopes.
|