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
./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:
./scripts/mondrian-schema to-yaml demo/FoodMart.mondrian.xml -o demo/FoodMart.yamlExemplo — preview sem salvar:
./scripts/mondrian-schema to-yaml demo/FoodMart.mondrian.xml | head -40to-xml — converter YAML para XML
./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:
./scripts/mondrian-schema to-xml demo/FoodMart.yaml -o FoodMart-generated.xmlExemplo — pipe para diff para verificar fidelidade de round-trip:
./scripts/mondrian-schema to-xml demo/FoodMart.yaml | diff demo/FoodMart.mondrian.xml -lint — validar um arquivo de schema
./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:
./scripts/mondrian-schema lint demo/FoodMart.yamlExemplo — fazer lint de um schema XML:
./scripts/mondrian-schema lint demo/FoodMart.mondrian.xmlCódigos de saída
| Código | Significado |
|---|---|
0 | Sucesso — sem erros |
1 | Argumentos ruins ou arquivo de entrada faltando |
2 | Falha 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
-
Converta seu schema XML existente para YAML:
Terminal window ./scripts/mondrian-schema to-yaml my-schema.xml -o my-schema.yaml -
Faça lint do YAML para confirmar que é válido:
Terminal window ./scripts/mondrian-schema lint my-schema.yaml -
Revise e anote
my-schema.yamlcom comentários, depois faça upload para o Saiku pela página Schemas.
-
Escreva ou edite seu schema YAML localmente.
-
Rode lint para pegar erros antes do upload:
Terminal window ./scripts/mondrian-schema lint my-schema.yamlUm código de saída
0significa que o schema foi parseado limpo. Quaisquer erros aparecem no stderr com uma referência de linha. -
Se você precisa fornecer XML para uma ferramenta externa (ex.: um cliente de reporting legado), converta sob demanda:
Terminal window ./scripts/mondrian-schema to-xml my-schema.yaml -o my-schema.xml
Adicione uma etapa de lint ao seu pipeline de CI para pegar erros de schema antes que cheguem à produção:
# In .github/workflows/ci.yml or equivalent- name: Lint Mondrian schemas run: | for f in schemas/*.yaml; do ./scripts/mondrian-schema lint "$f" doneO script sai com código 2 em qualquer falha de parse ou validação, o que falhará o job de CI automaticamente.
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-saikuchecked-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.