FoodMart-Sample-Datensätze
FoodMart ist der klassische OLAP-Sample-Datensatz — eine fiktive Lebensmittelkette mit fünf Jahren Verkaufsdaten über 37 Tabellen (customer, product, store, time_by_day, sales_fact_1997 usw.). Es ist derselbe Datensatz, den die Demo-Box von Saiku Cloud verwendet, dimensioniert für schnelle Iteration (~10 MB komprimiert) und so geformt, dass jedes Mondrian-Feature etwas zum Üben hat.
Diese Seite lässt Sie FoodMart in Ihre eigene Testinstanz eines beliebigen unterstützten Dialekts laden, sodass Sie sie über den regulären BYOC-Flow mit Saiku Cloud verbinden und die Anleitung Registrierung & erster Cube end-to-end befolgen können. Keine Warehouse-Migration erforderlich.
Was enthalten ist
Alle Bundles enthalten:
- Die Daten — 37 Tabellen, geladen mit fünf Jahren Verkäufen, Kunden, Produkten, Stores, Mitarbeitern und Inventar.
- Mondrian-Schema-XML (
foodmart.xml) — laden Sie diese in den Schema-Designer von Saiku Cloud hoch, sobald Ihre Daten geladen sind. Die XML ist dialekt-neutral; sie funktioniert gegen jedes der unten aufgeführten Bundles. - Ein Referenz-Loader-Skript oder Runbook — pro Dialekt, weil jedes Warehouse seine eigenen Bulk-Load-Semantiken hat.
Der Postgres-Dump ist die kanonische Quelle. Jedes andere
Dialekt-Bundle wird mechanisch von ihm übersetzt (ein kleines
sed-Skript pro Dialekt — siehe jeden Tab unten).
Bundles pro Dialekt
Postgres 12+ — direkt über pg_restore oder psql laden.
# Download (9,1 MB komprimiert, ~95 MB unkomprimiert)curl -L https://raw.githubusercontent.com/spiculedata/saiku-cloud/develop/infra/foodmart-pg/init/01-foodmart.sql.gz \ -o foodmart.sql.gzcurl -L https://raw.githubusercontent.com/spiculedata/saiku-cloud/develop/infra/foodmart-pg/init/02-date-string-column.sql \ -o foodmart-date-string.sql
# Laden (Postgres 12+; pipet den gzipped Dump in psql)createdb foodmartgunzip -c foodmart.sql.gz | psql -d foodmartpsql -d foodmart -f foodmart-date-string.sqlDer 02-date-string-column.sql-Schritt fügt ein ALTER TABLE hinzu,
das Saikus time_by_day-Schema erwartet — es ist eine einzeilige
date_string-Spalte, die aus the_date gefüllt wird. Führen Sie ihn
immer nach dem Bulk-Load aus.
Verbinden mit: PostgreSQL-Anleitung.
MySQL 5.7+ oder MariaDB 10+ — laden Sie über eine kleine sed-Übersetzung des Postgres-Dumps.
# Den Quell-PG-Dump + das MySQL-Übersetzungsskript herunterladencurl -L https://raw.githubusercontent.com/spiculedata/saiku-cloud/develop/infra/foodmart-pg/init/01-foodmart.sql.gz \ -o foodmart.sql.gzcurl -L https://raw.githubusercontent.com/spiculedata/saiku-cloud/develop/infra/hosts/app/foodmart-mysql/pg-to-mysql.sed \ -o pg-to-mysql.sed
# Übersetzen + laden (5 sed-Regeln: Typnamen, Identifier-Quoting,# COPY → INSERT, Sequenzbehandlung, Schema-Qualifier-Stripping)gunzip -c foodmart.sql.gz | sed -E -f pg-to-mysql.sed > foodmart-mysql.sql
mysql -u root -p -e "CREATE DATABASE foodmart CHARACTER SET utf8mb4;"mysql -u root -p foodmart < foodmart-mysql.sqlVerbinden mit: MySQL-Anleitung.
ClickHouse 23+ (Cloud oder selbstgehostet) — das Loader-Muster pro Dialekt lebt im saiku-cloud-Repo. Anpassen oder von dort kopieren.
# Übersetzungsskript für ClickHouse (3 sed-Regeln: Typ-Mappings# für INT/VARCHAR, Single-Quote vs. Double-Quote-Identifier und# DDL-Präambel — ClickHouse benötigt explizite Engine-Deklarationen).curl -L https://raw.githubusercontent.com/spiculedata/saiku-cloud/develop/infra/foodmart-pg/init/01-foodmart.sql.gz \ -o foodmart.sql.gz# Dialektspezifische Übersetzungsregeln befinden sich in den# saiku-cloud-Loader-Skripten unter infra/hosts/app/foodmart-clickhouse/# — verwenden Sie sie wieder, um Ihren eigenen ClickHouse-Load# anzutreiben.Für ClickHouse Cloud ist der einfachste Pfad das Laden über die Web-SQL-Konsole, nachdem Sie den Dump lokal übersetzt haben.
Verbinden mit: ClickHouse-Anleitung.
Snowflake — verwenden Sie den PUT + COPY INTO-Flow. Das
Loader-Runbook für Saikus eigene CI-Fixture lebt im saiku-cloud-Repo
unter
docs/runbooks/load-foodmart-into-snowflake.md.
Anpassen für Ihren Account:
-
Den Postgres-Dump für Snowflake übersetzen (sed-Skript im Ordner
infra/hosts/app/foodmart-snowflake/des Repos). -
In Per-Tabelle-CSVs aufteilen (der gemischte DDL/DML-Dump
COPY INTO-iert nicht sauber). -
PUTjeder CSV auf einen Snowflake-Stage, dannCOPY INTO <table> FROM @<stage>pro Tabelle. -
Das
date_string-ALTER anwenden (gleich wie Postgres).
Verbinden mit: Snowflake-Anleitung.
BigQuery — der Loader exportiert die kanonische
FoodMart-DuckDB-Datei nach Parquet (Auto-Schema-Erkennung durch
BigQuery) und lädt über load_table_from_file hoch. ~10 MB
insgesamt, free-tier-freundlich (1 TB Queries/Monat + 10 GB
Speicher enthalten).
Das Runbook ist unter
docs/runbooks/load-foodmart-into-bigquery.md
im saiku-cloud-Repo. Kurze Version:
-
Erstellen Sie ein BigQuery-Dataset (z. B.
foodmart). -
Setzen Sie Env-Variablen:
GCP_PROJECT,BQ_DATASET,GOOGLE_APPLICATION_CREDENTIALS(Service-Account-JSON). -
Führen Sie den Loader aus:
Terminal-Fenster curl -L https://raw.githubusercontent.com/spiculedata/saiku-cloud/develop/infra/hosts/app/foodmart-bigquery/load-foodmart-bigquery.py \-o load-foodmart-bigquery.pypip install google-cloud-bigquery pyarrow duckdbpython load-foodmart-bigquery.py -
Gesamte Ladezeit: 3–6 Minuten (ein LoadJob pro Tabelle, ~5–10 s je).
Verbinden mit: BigQuery-Anleitung.
MotherDuck — laden Sie dasselbe DuckDB-Datei-Format, das
MotherDuck verwendet. Einfachster Weg: lokal in eine
.duckdb-Datei über die DuckDB-CLI laden und dann mit
ATTACH 'md:<db>' zu MotherDuck pushen.
-
Die FoodMart-DuckDB-Datei lokal bauen:
Terminal-Fenster curl -L https://raw.githubusercontent.com/spiculedata/saiku-cloud/develop/infra/hosts/app/foodmart-duckdb/build-foodmart-duckdb.sh \-o build-foodmart-duckdb.shcurl -L https://raw.githubusercontent.com/spiculedata/saiku-cloud/develop/infra/hosts/app/foodmart-duckdb/pg-to-duckdb.sed \-o pg-to-duckdb.sedcurl -L https://raw.githubusercontent.com/spiculedata/saiku-cloud/develop/infra/foodmart-pg/init/01-foodmart.sql.gz \-o foodmart.sql.gzchmod +x build-foodmart-duckdb.sh./build-foodmart-duckdb.sh# → erzeugt foodmart.duckdb (~12 MB) -
Über die DuckDB-CLI zu MotherDuck pushen:
Terminal-Fenster export motherduck_token=<your-md-token>duckdb -c "ATTACH 'foodmart.duckdb' AS local; \ATTACH 'md:?motherduck_token=$motherduck_token' AS md; \CREATE OR REPLACE DATABASE md.foodmart FROM local;"
Verbinden mit: MotherDuck-Anleitung.
Lokale DuckDB-Datei — der einfachste Weg. Eine ~12-MB-Datei, die Sie direkt in das Dateien-Dashboard von Saiku Cloud hochladen und aus Ihrem Mondrian-Schema referenzieren können.
curl -L https://raw.githubusercontent.com/spiculedata/saiku-cloud/develop/infra/hosts/app/foodmart-duckdb/build-foodmart-duckdb.sh \ -o build-foodmart-duckdb.shcurl -L https://raw.githubusercontent.com/spiculedata/saiku-cloud/develop/infra/hosts/app/foodmart-duckdb/pg-to-duckdb.sed \ -o pg-to-duckdb.sedcurl -L https://raw.githubusercontent.com/spiculedata/saiku-cloud/develop/infra/foodmart-pg/init/01-foodmart.sql.gz \ -o foodmart.sql.gzchmod +x build-foodmart-duckdb.sh./build-foodmart-duckdb.sh# → erzeugt foodmart.duckdbLaden Sie foodmart.duckdb über das
Dateien-Dashboard hoch; Saiku Cloud stellt
es automatisch als Verbindung bereit.
Verbinden mit: DuckDB-Datei-Anleitung.
Nach dem Laden: das Mondrian-Schema hochladen
Sobald Ihr gewählter Dialekt FoodMart geladen hat, ist der letzte Schritt die Mondrian-Schema-XML. Sie mappt Ihre physischen Tabellen auf OLAP-Cubes (Sales, Warehouse, HR usw.):
-
Laden Sie die Schema-XML herunter:
Terminal-Fenster curl -L https://raw.githubusercontent.com/spiculedata/saiku-cloud/develop/infra/scripts/demo-seeds/foodmart.xml \-o foodmart.xml -
Gehen Sie in Saiku Cloud zum Schemas-Dashboard und klicken Sie auf Schema hochladen. Wählen Sie
foodmart.xml. -
Der Schema-Designer prüft jeden
<Table>-Verweis gegen Ihre Verbindung. Wenn die Validierung erfolgreich ist (grüner Haken auf jedem Cube), ist Ihr FoodMart bereit für Abfragen. -
Gehen Sie zum Analysieren-Dashboard. Wählen Sie einen beliebigen Cube. Ziehen Sie
[Measures].[Unit Sales]auf das Zeilen-Shelf,[Time].[Year]auf das Spalten-Shelf. Sie sollten das Jahr 1997 = 266.773 sehen.
Das ist dieselbe Zahl, die jeder Dialekt produziert — der kanonische Beweis, dass Saiku Cloud Ihre Daten korrekt liest.
Gebündelte .duckdb-Datei für die Ungeduldigen
Wenn Sie null Übersetzung, null Setup wollen, hier ist die vorgebaute FoodMart-DuckDB-Datei direkt — dieselbe, die die Demo-Box von Saiku Cloud verwendet, ~12 MB, bereit zum Hochladen ins Dateien-Dashboard:
Direkt-Download: Siehe die
saiku-cloud Releases-Seite
für das neueste foodmart-bundle-<version>.zip. Das Bundle enthält
jedes Artefakt, auf das diese Seite verweist — Postgres-Dump,
DuckDB-Datei, Schema-XML, dialektspezifische Übersetzungsskripte —
an einem Ort.