Jeux de données d'exemple FoodMart
FoodMart est le classique jeu de données d’exemple OLAP — une chaîne d’épicerie fictive avec cinq ans de données de vente réparties sur 37 tables (customer, product, store, time_by_day, sales_fact_1997, etc.). C’est le même jeu de données que la boîte de démo de Saiku Cloud utilise, dimensionné pour une itération rapide (~10 Mo compressé) et modelé pour que chaque fonctionnalité Mondrian ait de quoi s’exercer.
Cette page vous permet de charger FoodMart dans votre propre instance de test de n’importe quel dialecte pris en charge, afin que vous puissiez le connecter à Saiku Cloud via le flux BYOC habituel et suivre la procédure pas à pas Inscription et premier cube de bout en bout. Aucune migration d’entrepôt requise.
Ce qui est inclus
Tous les bundles incluent :
- Les données — 37 tables chargées avec cinq ans de ventes, clients, produits, magasins, employés et stock.
- XML de schema Mondrian (
foodmart.xml) — téléversez-le dans le Schema designer de Saiku Cloud une fois vos données chargées. Le XML est neutre du dialecte ; il fonctionne contre n’importe lequel des bundles ci-dessous. - Un script ou runbook de chargement de référence — par dialecte, puisque chaque entrepôt a sa propre sémantique de chargement en masse.
Le dump Postgres est la source canonique. Tous les autres
bundles de dialecte en sont mécaniquement traduits (un petit
script sed par dialecte — voir chaque onglet ci-dessous).
Bundles par dialecte
Postgres 12+ — chargez directement via pg_restore ou psql.
# Download (9.1 MB compressed, ~95 MB uncompressed)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
# Load (Postgres 12+; pipes the gzipped dump into psql)createdb foodmartgunzip -c foodmart.sql.gz | psql -d foodmartpsql -d foodmart -f foodmart-date-string.sqlL’étape 02-date-string-column.sql ajoute un ALTER TABLE
que le schema time_by_day de Saiku attend — c’est une
colonne date_string d’une ligne peuplée depuis the_date.
Exécutez-la toujours après le chargement en masse.
Connectez-vous avec : guide PostgreSQL.
MySQL 5.7+ ou MariaDB 10+ — chargez via une petite traduction sed du dump Postgres.
# Download the source PG dump + the MySQL translation scriptcurl -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
# Translate + load (5 sed rules: type names, identifier quoting,# COPY → INSERT, sequence handling, schema-qualifier strip)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.sqlConnectez-vous avec : guide MySQL.
ClickHouse 23+ (Cloud ou auto-hébergé) — le pattern de chargement par dialecte vit dans le dépôt saiku-cloud. Adaptez-le ou copiez depuis là.
# Translation script for ClickHouse (3 sed rules: type mappings# for INT/VARCHAR, single-quote vs double-quote identifiers, and# DDL preamble — ClickHouse needs explicit engine declarations).curl -L https://raw.githubusercontent.com/spiculedata/saiku-cloud/develop/infra/foodmart-pg/init/01-foodmart.sql.gz \ -o foodmart.sql.gz# Per-dialect translation rules are in the saiku-cloud loader# scripts under infra/hosts/app/foodmart-clickhouse/ — reuse them# to drive your own ClickHouse load.Pour ClickHouse Cloud, le chemin le plus simple est de charger via la console web SQL une fois que vous avez traduit le dump localement.
Connectez-vous avec : guide ClickHouse.
Snowflake — utilisez le flux PUT + COPY INTO. Le
runbook de chargement pour la fixture CI de Saiku elle-même
vit dans le dépôt saiku-cloud à
docs/runbooks/load-foodmart-into-snowflake.md.
Adaptez pour votre compte :
-
Traduisez le dump Postgres pour Snowflake (script sed dans le dossier
infra/hosts/app/foodmart-snowflake/du dépôt). -
Découpez en CSV par table (le DDL/DML mixte du dump ne passe pas proprement à
COPY INTO). -
PUTchaque CSV sur une stage Snowflake, puisCOPY INTO <table> FROM @<stage>par table. -
Appliquez l’ALTER
date_string(idem Postgres).
Connectez-vous avec : guide Snowflake.
BigQuery — le chargeur exporte le fichier DuckDB
canonique FoodMart vers Parquet (schéma auto-détecté par
BigQuery) et téléverse via load_table_from_file. ~10 Mo
au total, compatible avec le free-tier (1 To de requêtes/mois
- 10 Go de stockage inclus).
Le runbook se trouve à
docs/runbooks/load-foodmart-into-bigquery.md
dans le dépôt saiku-cloud. Version courte :
-
Créez un dataset BigQuery (par ex.
foodmart). -
Définissez les variables d’env :
GCP_PROJECT,BQ_DATASET,GOOGLE_APPLICATION_CREDENTIALS(JSON de compte de service). -
Exécutez le chargeur :
Fenêtre de terminal 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 -
Temps de chargement total : 3 à 6 minutes (un LoadJob par table, ~5–10 s chacun).
Connectez-vous avec : guide BigQuery.
MotherDuck — chargez le même format de fichier DuckDB
que MotherDuck utilise. Chemin le plus simple : chargez
localement dans un fichier .duckdb via la CLI DuckDB,
puis poussez-le vers MotherDuck avec ATTACH 'md:<db>'.
-
Construisez le fichier DuckDB FoodMart localement :
Fenêtre de terminal 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# → produces foodmart.duckdb (~12 MB) -
Poussez vers MotherDuck via la CLI DuckDB :
Fenêtre de terminal 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;"
Connectez-vous avec : guide MotherDuck.
Fichier DuckDB local — le chemin le plus simple. Un fichier de ~12 Mo que vous pouvez téléverser directement sur le dashboard Fichiers de Saiku Cloud et référencer depuis votre schema Mondrian.
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# → produces foodmart.duckdbTéléversez foodmart.duckdb via le dashboard Fichiers ;
Saiku Cloud l’expose automatiquement comme une connexion.
Connectez-vous avec : guide DuckDB-fichier.
Après le chargement : téléverser le schema Mondrian
Une fois que votre dialecte de choix a FoodMart chargé, la dernière étape est le XML de schema Mondrian. Il mappe vos tables physiques aux cubes OLAP (Sales, Warehouse, HR, etc.) :
-
Téléchargez le XML de schema :
Fenêtre de terminal curl -L https://raw.githubusercontent.com/spiculedata/saiku-cloud/develop/infra/scripts/demo-seeds/foodmart.xml \-o foodmart.xml -
Dans Saiku Cloud, allez sur le dashboard Schemas et cliquez sur Téléverser un schema. Choisissez
foodmart.xml. -
Le Schema designer croise-vérifie chaque référence
<Table>contre votre connexion. Si la validation passe (coche verte sur chaque cube), votre FoodMart est prêt à être interrogé. -
Allez sur le dashboard Analyze. Choisissez n’importe quel cube. Faites glisser
[Measures].[Unit Sales]vers l’étagère des lignes,[Time].[Year]vers l’étagère des colonnes. Vous devriez voir l’année 1997 = 266 773.
C’est le même nombre que chaque dialecte produit — la preuve canonique que Saiku Cloud lit correctement vos données.
Fichier .duckdb bundlé pour les impatients
Si vous voulez zéro traduction, zéro configuration, voici le fichier DuckDB FoodMart pré-construit directement — le même que la boîte de démo de Saiku Cloud utilise, ~12 Mo, prêt à être téléversé sur le dashboard Fichiers :
Téléchargement direct : voir la page des
releases saiku-cloud
pour le dernier foodmart-bundle-<version>.zip. Le bundle
contient chaque artefact référencé par cette page — dump
Postgres, fichier DuckDB, XML de schema, scripts de
traduction par dialecte — au même endroit.