# 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.