Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

135 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Docker Dataset

CI

Pre-populated sample databases as Docker images — ready-to-run PostgreSQL, MySQL, CockroachDB, SQLite, and DuckDB containers loaded with real, valid sample data (Chinook, Northwind, Sakila/Pagila, World, AdventureWorks, Stack Exchange, and more). Ever needed a database already populated with valid data — to practice SQL, run tests, demo an app, or benchmark — without hand-crafting rows or hunting for a usable dump? Every image ships exactly one dataset in its own database, so you just docker run and connect.

Dataset support matrix

Each cell is the image tag to pull for that dataset on that engine; means it isn't shipped there (yet). The dataset name links to its upstream source when every engine pulls from the same one; where engines use different upstreams, the source link is on the individual tag instead. All images are published for linux/amd64 and linux/arm64.

Dataset PostgreSQL MySQL CockroachDB SQLite DuckDB
AdventureWorks adventureworks
Airlines airlines airlines
Chinook yugabyte-chinook chinook chinook chinook chinook
Dell DVD Store dellstore dellstore dellstore dellstore dellstore
Employees employees
French Towns frenchtowns frenchtowns frenchtowns frenchtowns frenchtowns
GeoNames geonames geonames geonames geonames
ISO 3166 iso3166 iso3166 iso3166 iso3166 iso3166
MoMA moma moma moma moma moma
Northwind yugabyte-northwind northwind northwind northwind
NYC Taxi Trip Records nyc-taxi
OMDb omdb
OpenFlights openflights openflights openflights openflights
PGExercises yugabyte-pgexercises pgexercises pgexercises pgexercises pgexercises
Sakila / Pagila pagila sakila sakila
SportsDB sportsdb, yugabyte-sportsdb sportsdb sportsdb sportsdb
Stack Exchange¹ stackexchange-<site> stackexchange-<site> stackexchange-<site> stackexchange-<site> stackexchange-<site>
USDA usda usda usda usda usda
World world world world world world

¹ <site> is one of beer, coffee, poker, woodworking, chess, cooking, outdoors, boardgames (e.g. stackexchange-chess).

Every engine also publishes a latest tag: it tracks world on PostgreSQL and MySQL, and chinook on CockroachDB, SQLite, and DuckDB.

ClickHouse, Apache Druid, and Apache Pinot are planned — see Future Work.

Quick start

docker run -d --name pg-ds-world aa8y/postgres-dataset:world
docker exec -it pg-ds-world psql -d world

Each engine's README has the equivalent client invocation and per-dataset notes: PostgreSQL, MySQL, CockroachDB, SQLite, DuckDB.

Tag naming

The database inside each image is the bare dataset name — the tag minus any yugabyte-/stackexchange- prefix (e.g. yugabyte-chinookchinook, stackexchange-beerbeer). Source prefixes exist so a dataset could ship from a second mirror later; sportsdb and yugabyte-sportsdb are the same image today, with the unprefixed sportsdb kept as a backwards-compatible alias.

Documentation

Docker Hub repositories: aa8y/postgres-dataset · aa8y/mysql-dataset · aa8y/cockroach-dataset · aa8y/sqlite-dataset · aa8y/duckdb-dataset

Dataset licenses

This repository's own software and packaging are MIT licensed. Each bundled dataset keeps its upstream license — see docs/ATTRIBUTION.md for the per-dataset sources, licenses, and required attributions (notably the Stack Exchange dumps, which are CC BY-SA 4.0).

Future Work

  • More MySQL datasets: port additional PostgreSQL datasets where a MySQL-native source exists or the upstream is format-neutral enough to hand-translate faithfully (see Datasets not ported to MySQL).
  • ClickHouse images: an OLAP columnar engine whose SQL dialect and bulk-load model (MergeTree, INSERT/CSV) differ from PostgreSQL enough that most datasets would need engine-specific transforms rather than reusing the postgres dumps verbatim.
  • More DuckDB datasets: the engine now carries chinook, the pgFoundry family, moma, nyc-taxi, and the Stack Exchange sites; the remaining gaps (northwind, sakila, sportsdb) need either a DuckDB-readable upstream or a per-dataset transform (see duckdb/README.md).
  • Apache Druid images: a real-time OLAP datastore built around immutable segments and batch/stream ingestion rather than conventional DDL + INSERT/COPY, so each dataset would need a dedicated ingest pipeline and schema mapping.
  • Apache Pinot images: a distributed OLAP engine oriented toward star-schema analytics tables and offline/online ingestion jobs, so the relational sample dumps would need similar per-dataset transforms and load paths.
  • More Parquet-native datasets: nyc-taxi showed the shape (fetch a Parquet file, CREATE TABLE ... AS FROM read_parquet(...)), and the open-data world publishes plenty more.
  • Find and add more free data sources.

About

Docker database images with pre-populated data for testing and/or practice.

Topics

Resources

Stars

39 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages