Sample Datasets
Datomic provides a small library of sample databases used across tutorials and the reference docs. They are mostly tuned for teaching particular concepts rather than reflecting real data.
The datasets are distributed in two forms:
-
datomic-samples– drop-in database files for Datomic Local and Datomic Cloud -
datomic-samples-backups– restorable backups for Datomic Pro
decomposing-a-query
A deliberately abstract dataset of 6,000 datoms with no domain meaning.
Used to teach query performance analysis without the distraction of a domain.
dilithium-crystals
A single-SKU inventory database.
Designed to show off Datomic’s database-level temporal filters (like as-of) by tracing a simple attribute over time.
friends
Four people connected by :person/friend references that intentionally form cycles.
Supports a canonical demo for pull recursion with bounded and unbounded depth.
graph
A small role-based access control (RBAC) graph, drawn from Neo4j’s hyperedges recipe.
mbrainz-1968-1973
A slice of the MusicBrainz open music encyclopedia with rich cross-references.
The slice covers releases from 1968 to 1973 (scientifically determined by the Datomic team to be the most important period in the history of recorded music). Its schema is slightly simplified from the full dataset.
Used throughout Datomic reference docs and supporting material to demonstrate multi-hop joins, recursive and reverse-reference pull, fulltext search, index range queries on years, aggregates over track durations, predicates, Datalog clauses and rules, and more.
Also available at Datomic/mbrainz-sample.
movies
Three 1980s films by title, genre, and release year.
A tiny but “real” data model that exercises Datomic end-to-end. With only three movies, every query result is small enough to verify by hand.
social-news
A miniature link-aggregator data model.
A familiar app schema: stories with URLs and titles, threaded comments, and upvotes. Uses component references so deleting a story cascades to its comments.
solar-system
Objects in our solar system, by size.
Useful for trying out Datalog aggregates over :object/meanRadius, such as count, max, avg, median, stddev, rand, sample.
streets
Three people and the streets they live on, tracked over time.
The schema is simply :person/name (unique identity) and :person/street (cardinality one, so each move retracts the previous street). The data is five back-dated transactions, enabling retraction-aware history queries with d/history and d/log databases.