Skip to content

Datavo User Guide

A sixteen-chapter path from "I have a tar of data" to "two training runs scored on the same held-out split" — with a shortcut at chapter 3 for when you just want existing data on your disk. Read it in order the first time: every chapter introduces exactly one new concept and uses only what earlier chapters introduced. Chapters 17 and 18 are advanced branches off chapter 12, read when you need them rather than in sequence.

Most chapters have a runnable companion in ../../examples/. The scripts are self-contained and self-cleaning — run the chapter's script while you read it. (The intro and CLI chapters — 1, 2, 3 — have nothing to run beyond the commands inline.)

# Chapter You learn Runnable companion
1 Concepts store, sample, key, operation, producer, workset, dataset; replay and convergence —
2 Setup install the SDK, sign in, point at a server —
3 Download data find a dataset and pull it to disk with the CLI — no SDK, no build —
4 Ingest a source create a store; import a tar into canonical samples; replay 01_ingest_source.py
5 Add samples to a store bring existing samples into another store 02_add_to_store.py
6 Attach derived keys compute a derived key group and write it back under a producer; convergence 03_attach_keys.py
7 Store operations read the operation graph; remove an operation; the two idempotency mechanisms 04_operations.py
8 Read samples select a workset and iterate decoded samples 05_read_samples.py
9 Consume derived keys pin a producer to read a derived key; compare two producers 06_consume_produced_features.py
10 Combine sources union stores with different schemas; OR and optional keys 07_union_sources.py
11 Datasets convert a workset into a frozen, reproducible dataset 08_workset_to_dataset.py
12 Split sets cut a dataset into train/val/test: selectors, rules, determinism 09_split_a_dataset.py
13 Evaluation score and compare runs on the same held-out split 10_train_eval_compare.py
14 Staged pipelines chain producers; move an intermediate; compare options 11_nested_pipeline_compare.py
15 Access: teams, sharing and tokens your role; who owns what; share and publish; run tokens for programs 12_share_a_dataset.py
16 Shard caching and the cache hierarchy cache shards locally: tiers, fall-through, warming — the second read is free 13_warm_and_read_cache.py
17* Manual split sets (advanced, branches off 12) materialize a partition you already have: id-list splits, staged upload, partial coverage 14_manual_split.py
18* Reuse a membership (advanced, branches off 12) read a dataset's or split's samples with other keys, in a store they were added into, or everything else: MemberOf 15_member_of.py

Two shapes of work

If you just want existing data, chapter 3 pulls it to disk with the CLI and you are done. To build or select data yourself, the rest splits into a write side and a read side, and you can stop after either one:

 chapters 4-7            chapters 8-10             chapters 11-14
 build a store    ──▶    read it live       ──▶    keep it and train
 import / add /          workset + iterate         convert to a dataset,
 attach / inspect        (nothing frozen)          split it, score runs

Everything you build that way is private to you. Chapter 15 is how you let other people — and your programs — at it.

If you just want data on your disk, chapter 3 (CLI) is enough. If you read data other people built in Python, chapters 1, 2, 8, 9 and 11 are enough. If you only attach derived keys, chapters 1, 2 and 4–7 are enough. Chapter 15 stands on its own once you have something to share, or a program to run.

Beyond the guide

  • Reference — CLI, the shard cache, idempotency, deletion, teams and sharing, local shard IO.
  • Internals — the architecture, what one sample costs in storage, the read path, the split engine.