Pular para o conteúdo

CLI de schema

O script mondrian-schema envolve a ferramenta Java mondrian.schema.yaml.SchemaCli para que você não precise lembrar uma longa invocação de mvn exec:java. Use-a para converter schemas XML existentes para YAML, converter YAML de volta para XML para deploy ou validar um arquivo de schema antes de salvá-lo no Saiku.


Comandos

to-yaml — converter XML para YAML

Terminal window
./scripts/mondrian-schema to-yaml <input.xml> [-o output.yaml]

Lê um schema XML Mondrian-4 e escreve a representação YAML equivalente. Se -o for omitido, o YAML é escrito no stdout.

Exemplo — converter FoodMart:

Terminal window
./scripts/mondrian-schema to-yaml demo/FoodMart.mondrian.xml -o demo/FoodMart.yaml

Exemplo — preview sem salvar:

Terminal window
./scripts/mondrian-schema to-yaml demo/FoodMart.mondrian.xml | head -40

to-xml — converter YAML para XML

Terminal window
./scripts/mondrian-schema to-xml <input.yaml> [-o output.xml]

Lê um schema YAML Mondrian-4 e escreve o XML equivalente. Se -o for omitido, o XML é escrito no stdout. Esta é a mesma conversão que o engine do Saiku executa automaticamente em runtime — executá-la manualmente é útil para inspecionar a saída antes do deploy ou para migrar de volta para uma toolchain XML-nativa.

Exemplo — converter de volta para XML:

Terminal window
./scripts/mondrian-schema to-xml demo/FoodMart.yaml -o FoodMart-generated.xml

Exemplo — pipe para diff para verificar fidelidade de round-trip:

Terminal window
./scripts/mondrian-schema to-xml demo/FoodMart.yaml | diff demo/FoodMart.mondrian.xml -

lint — validar um arquivo de schema

Terminal window
./scripts/mondrian-schema lint <input.{yaml,xml}>

Parseia e valida um arquivo de schema — YAML ou XML. Erros e warnings são escritos no stderr. Em caso de sucesso, o comando sai silenciosamente com código 0.

Exemplo — fazer lint de um schema YAML:

Terminal window
./scripts/mondrian-schema lint demo/FoodMart.yaml

Exemplo — fazer lint de um schema XML:

Terminal window
./scripts/mondrian-schema lint demo/FoodMart.mondrian.xml

Códigos de saída

CódigoSignificado
0Sucesso — sem erros
1Argumentos ruins ou arquivo de entrada faltando
2Falha de parse ou validação — diagnóstico escrito no stderr

Esses códigos são adequados para uso em pipelines de CI e hooks de pre-save.


Workflows típicos

  1. Converta seu schema XML existente para YAML:

    Terminal window
    ./scripts/mondrian-schema to-yaml my-schema.xml -o my-schema.yaml
  2. Faça lint do YAML para confirmar que é válido:

    Terminal window
    ./scripts/mondrian-schema lint my-schema.yaml
  3. Revise e anote my-schema.yaml com comentários, depois faça upload para o Saiku pela página Schemas.


Pré-requisitos

O script exige:

  • Java — disponível no $PATH (mesma versão de JVM usada para construir o projeto)
  • Maven — para o build de classpath de uma vez; não necessário depois que o cache existe
  • O repositório mondrian-saiku checked-out localmente (o script é parte daquele repo, não um binário standalone)

Relacionado

  • Schemas YAML — a referência completa de elementos YAML.
  • Schemas — faça upload e gerencie schemas no dashboard do Saiku.
  • Schema designer — gere um schema a partir de uma descrição em linguagem natural.