Datasets de exemplo FoodMart
FoodMart é o clássico dataset de exemplo OLAP — uma rede de mercados fictícia com cinco anos de dados de vendas em 37 tabelas (customer, product, store, time_by_day, sales_fact_1997, etc.). É o mesmo dataset que a demo box do Saiku Cloud usa, dimensionado para iteração rápida (~10 MB comprimidos) e moldado para que cada recurso do Mondrian tenha algo para exercitar.
Esta página permite que você carregue o FoodMart na sua própria instância de teste de qualquer dialeto suportado, para conectá-lo ao Saiku Cloud pelo fluxo regular BYOC e seguir o passo a passo Cadastro e primeiro cubo de ponta a ponta. Sem migração de data warehouse necessária.
O que está incluído
Todos os bundles incluem:
- Os dados — 37 tabelas carregadas com cinco anos de vendas, clientes, produtos, lojas, funcionários e estoque.
- XML de schema Mondrian (
foodmart.xml) — envie isso ao Schema designer do Saiku Cloud assim que seus dados estiverem carregados. O XML é neutro em relação a dialeto; funciona contra qualquer um dos bundles abaixo. - Um script de loader de referência ou runbook — por dialeto, já que cada data warehouse tem sua semântica própria de carga em lote.
O dump Postgres é a fonte canônica. Todo bundle de outro dialeto
é traduzido mecanicamente dele (um pequeno script sed
por dialeto — veja cada aba abaixo).
Bundles por dialeto
Postgres 12+ — carregue direto 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.sqlA etapa 02-date-string-column.sql adiciona um ALTER TABLE que
o schema time_by_day do Saiku espera — é uma coluna date_string
de uma linha populada a partir de the_date. Sempre rode-a após a
carga em lote.
Conecte com: Guia PostgreSQL.
MySQL 5.7+ ou MariaDB 10+ — carregue via uma pequena tradução sed do 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.sqlConecte com: Guia MySQL.
ClickHouse 23+ (Cloud ou self-hosted) — o padrão de loader por dialeto fica no repo saiku-cloud. Adapte ou copie de 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.Para o ClickHouse Cloud, o caminho mais fácil é carregar pelo console SQL web depois de traduzir o dump localmente.
Conecte com: Guia ClickHouse.
Snowflake — use o fluxo PUT + COPY INTO. O runbook
do loader para a fixture própria de CI do Saiku está no repo saiku-cloud
em
docs/runbooks/load-foodmart-into-snowflake.md.
Adapte para sua conta:
-
Traduza o dump Postgres para Snowflake (script sed na pasta
infra/hosts/app/foodmart-snowflake/do repo). -
Divida em CSVs por tabela (o dump misto de DDL/DML não roda
COPY INTOdireito). -
PUTcada CSV em um stage Snowflake, depoisCOPY INTO <table> FROM @<stage>por tabela. -
Aplique o ALTER
date_string(igual ao Postgres).
Conecte com: Guia Snowflake.
BigQuery — o loader exporta o arquivo DuckDB canônico do FoodMart
para Parquet (com schema auto-detectado pelo BigQuery) e envia
via load_table_from_file. ~10 MB no total, amigável ao tier gratuito
(1 TB de consultas/mês + 10 GB de storage incluídos).
O runbook está em
docs/runbooks/load-foodmart-into-bigquery.md
no repo saiku-cloud. Versão curta:
-
Crie um dataset do BigQuery (ex.:
foodmart). -
Defina variáveis de ambiente:
GCP_PROJECT,BQ_DATASET,GOOGLE_APPLICATION_CREDENTIALS(service-account JSON). -
Rode o loader:
Terminal window 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 -
Tempo total de carga: 3–6 minutos (um LoadJob por tabela, ~5–10s cada).
Conecte com: Guia BigQuery.
MotherDuck — carregue o mesmo formato de arquivo DuckDB que o MotherDuck
usa. Caminho mais fácil: carregue localmente em um arquivo .duckdb via a
CLI do DuckDB, depois empurre para o MotherDuck com ATTACH 'md:<db>'.
-
Monte o arquivo FoodMart DuckDB localmente:
Terminal window 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) -
Empurre para o MotherDuck via a CLI do DuckDB:
Terminal window 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;"
Conecte com: Guia MotherDuck.
Arquivo DuckDB local — o caminho mais simples. Um arquivo ~12 MB que você pode subir direto para o dashboard Arquivos do Saiku Cloud e referenciar do seu 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 pelo dashboard Arquivos;
o Saiku Cloud automaticamente o expõe como uma conexão.
Conecte com: Guia DuckDB-file.
Depois da carga: envie o schema Mondrian
Uma vez que o seu dialeto de escolha tenha o FoodMart carregado, o último passo é o XML do schema Mondrian. Ele mapeia suas tabelas físicas para cubos OLAP (Sales, Warehouse, HR, etc.):
-
Baixe o XML do schema:
Terminal window curl -L https://raw.githubusercontent.com/spiculedata/saiku-cloud/develop/infra/scripts/demo-seeds/foodmart.xml \-o foodmart.xml -
No Saiku Cloud, vá ao dashboard Schemas e clique em Enviar schema. Escolha
foodmart.xml. -
O Schema designer faz uma checagem cruzada de cada referência
<Table>contra sua conexão. Se a validação passar (check verde em cada cubo), seu FoodMart está pronto para consulta. -
Vá ao dashboard Analyze. Escolha qualquer cubo. Arraste
[Measures].[Unit Sales]para a prateleira de linhas,[Time].[Year]para a prateleira de colunas. Você deve ver o ano 1997 = 266,773.
Esse é o mesmo número que cada dialeto produz — a prova canônica de que o Saiku Cloud está lendo seus dados corretamente.
Arquivo .duckdb empacotado para os impacientes
Se quiser zero tradução, zero setup, aqui está o arquivo FoodMart DuckDB pré-construído diretamente — o mesmo que a demo box do Saiku Cloud usa, ~12 MB, pronto para subir para o dashboard Arquivos:
Download direto: veja a página
saiku-cloud releases
para o foodmart-bundle-<version>.zip mais recente. O bundle
contém cada artefato que esta página referencia — dump Postgres,
arquivo DuckDB, XML de schema, scripts de tradução por dialeto — em
um só lugar.