Datasets de muestra FoodMart
FoodMart es el clásico dataset de muestra OLAP — una cadena ficticia de supermercados con cinco años de datos de ventas en 37 tablas (customer, product, store, time_by_day, sales_fact_1997, etc.). Es el mismo dataset que usa la demo box de Saiku Cloud, dimensionado para iteración rápida (~10 MB comprimido) y con una forma que hace que cada funcionalidad de Mondrian tenga algo con lo que ejercitarse.
Esta página le permite cargar FoodMart en su propia instancia de prueba de cualquier dialecto soportado, para que pueda conectarlo a Saiku Cloud mediante el flujo BYOC habitual y seguir el recorrido Registro y primer cubo de principio a fin. Sin migración de data warehouse necesaria.
Qué se incluye
Todos los bundles incluyen:
- Los datos — 37 tablas cargadas con cinco años de ventas, clientes, productos, tiendas, empleados e inventario.
- XML de schema Mondrian (
foodmart.xml) — suba este al Diseñador de schemas de Saiku Cloud una vez que sus datos estén cargados. El XML es neutral respecto al dialecto; funciona contra cualquiera de los bundles siguientes. - Un script de cargador o runbook de referencia — por dialecto, ya que cada data warehouse tiene su propia semántica de carga masiva.
El dump de Postgres es la fuente canónica. Cada bundle de los
demás dialectos se traduce mecánicamente desde él (un pequeño
script sed por dialecto — consulte cada pestaña a continuación).
Bundles por dialecto
Postgres 12+ — cargue directamente mediante pg_restore o 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.sqlEl paso 02-date-string-column.sql añade un ALTER TABLE que el
schema time_by_day de Saiku espera — es una columna date_string
de una línea poblada desde the_date. Ejecútelo siempre tras la
carga masiva.
Conéctelo con: guía de PostgreSQL.
MySQL 5.7+ o MariaDB 10+ — cargue mediante una pequeña traducción sed del dump de 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.sqlConéctelo con: guía de MySQL.
ClickHouse 23+ (Cloud o autoalojado) — el patrón de cargador por dialecto vive en el repo saiku-cloud. Adáptelo o cópielo de ahí.
# 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.Para ClickHouse Cloud, la ruta más fácil es cargar mediante la consola SQL web una vez que haya traducido el dump localmente.
Conéctelo con: guía de ClickHouse.
Snowflake — use el flujo PUT + COPY INTO. El runbook del
cargador para la propia fixture de CI de Saiku vive en el repo
saiku-cloud en
docs/runbooks/load-foodmart-into-snowflake.md.
Adáptelo a su cuenta:
-
Traduzca el dump de Postgres para Snowflake (script sed en la carpeta
infra/hosts/app/foodmart-snowflake/del repo). -
Divida en CSVs por tabla (el DDL/DML mixto del dump no hace
COPY INTOlimpiamente). -
Haga
PUTde cada CSV en un stage de Snowflake, luegoCOPY INTO <table> FROM @<stage>por tabla. -
Aplique el ALTER de
date_string(igual que Postgres).
Conéctelo con: guía de Snowflake.
BigQuery — el cargador exporta el archivo DuckDB canónico de
FoodMart a Parquet (autodetección de schema por BigQuery) y sube
mediante load_table_from_file. ~10 MB en total, compatible con
el nivel gratuito (1 TB de consultas/mes + 10 GB de
almacenamiento incluidos).
El runbook está en
docs/runbooks/load-foodmart-into-bigquery.md
en el repo saiku-cloud. Versión corta:
-
Cree un dataset de BigQuery (por ejemplo,
foodmart). -
Defina variables de entorno:
GCP_PROJECT,BQ_DATASET,GOOGLE_APPLICATION_CREDENTIALS(JSON de cuenta de servicio). -
Ejecute el cargador:
Ventana 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 -
Tiempo total de carga: 3–6 minutos (un LoadJob por tabla, ~5–10 s cada uno).
Conéctelo con: guía de BigQuery.
MotherDuck — cargue el mismo formato de archivo DuckDB que
usa MotherDuck. Ruta más fácil: cargue localmente en un archivo
.duckdb mediante la CLI de DuckDB, luego empújelo a MotherDuck
con ATTACH 'md:<db>'.
-
Construya el archivo DuckDB de FoodMart localmente:
Ventana 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) -
Empuje a MotherDuck mediante la CLI de DuckDB:
Ventana 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;"
Conéctelo con: guía de MotherDuck.
Archivo DuckDB local — la ruta más simple. Un archivo de ~12 MB que puede subir directamente al dashboard de Archivos de Saiku Cloud y referenciar desde su 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.duckdbSuba foodmart.duckdb mediante el dashboard de Archivos;
Saiku Cloud lo expone automáticamente como una conexión.
Conéctelo con: guía de DuckDB-archivo.
Tras la carga: suba el schema de Mondrian
Una vez que su dialecto elegido tiene FoodMart cargado, el último paso es el XML del schema de Mondrian. Mapea sus tablas físicas a cubos OLAP (Sales, Warehouse, HR, etc.):
-
Descargue el XML del schema:
Ventana de terminal curl -L https://raw.githubusercontent.com/spiculedata/saiku-cloud/develop/infra/scripts/demo-seeds/foodmart.xml \-o foodmart.xml -
En Saiku Cloud, vaya al dashboard de Schemas y haga clic en Subir schema. Elija
foodmart.xml. -
El Diseñador de schemas comprueba cada referencia
<Table>contra su conexión. Si la validación pasa (marca verde en cada cubo), su FoodMart está listo para consultar. -
Vaya al dashboard de Analizar. Elija cualquier cubo. Arrastre
[Measures].[Unit Sales]al estante de filas,[Time].[Year]al estante de columnas. Debería ver el año 1997 = 266 773.
Ese es el mismo número que produce cada dialecto — la prueba canónica de que Saiku Cloud está leyendo sus datos correctamente.
Archivo .duckdb empaquetado para los impacientes
Si quiere cero traducción y cero configuración, aquí tiene el archivo DuckDB de FoodMart preconstruido directamente — el mismo que usa la demo box de Saiku Cloud, ~12 MB, listo para subir al dashboard de Archivos:
Descarga directa: consulte la página de
releases de saiku-cloud
para el último foodmart-bundle-<version>.zip. El bundle contiene
cada artefacto que esta página referencia — dump de Postgres,
archivo DuckDB, XML del schema, scripts de traducción por dialecto
— en un solo lugar.