CLI de schema
Le script mondrian-schema enveloppe l’outil Java mondrian.schema.yaml.SchemaCli afin que vous n’ayez pas à vous souvenir d’une longue incantation mvn exec:java. Utilisez-le pour convertir les schemas XML existants en YAML, convertir le YAML en XML pour le déploiement, ou valider un fichier de schema avant de l’enregistrer dans Saiku.
Commandes
to-yaml — convertir XML en YAML
./scripts/mondrian-schema to-yaml <input.xml> [-o output.yaml]Lit un schema XML Mondrian-4 et écrit la représentation YAML équivalente. Si -o est omis, le YAML est écrit sur stdout.
Exemple — convertir FoodMart :
./scripts/mondrian-schema to-yaml demo/FoodMart.mondrian.xml -o demo/FoodMart.yamlExemple — prévisualiser sans enregistrer :
./scripts/mondrian-schema to-yaml demo/FoodMart.mondrian.xml | head -40to-xml — convertir YAML en XML
./scripts/mondrian-schema to-xml <input.yaml> [-o output.xml]Lit un schema YAML Mondrian-4 et écrit le XML équivalent. Si -o est omis, le XML est écrit sur stdout. C’est la même conversion que le moteur Saiku exécute automatiquement à l’exécution — l’exécuter manuellement est utile pour inspecter la sortie avant le déploiement ou pour migrer vers une chaîne d’outils XML native.
Exemple — convertir vers XML :
./scripts/mondrian-schema to-xml demo/FoodMart.yaml -o FoodMart-generated.xmlExemple — pipe vers un diff pour vérifier la fidélité de l’aller-retour :
./scripts/mondrian-schema to-xml demo/FoodMart.yaml | diff demo/FoodMart.mondrian.xml -lint — valider un fichier de schema
./scripts/mondrian-schema lint <input.{yaml,xml}>Analyse et valide un fichier de schema — YAML ou XML. Les erreurs et avertissements sont écrits sur stderr. En cas de succès, la commande se termine silencieusement avec le code 0.
Exemple — linter un schema YAML :
./scripts/mondrian-schema lint demo/FoodMart.yamlExemple — linter un schema XML :
./scripts/mondrian-schema lint demo/FoodMart.mondrian.xmlCodes de sortie
| Code | Signification |
|---|---|
0 | Succès — pas d’erreurs |
1 | Mauvais arguments ou fichier d’entrée manquant |
2 | Échec d’analyse ou de validation — diagnostic écrit sur stderr |
Ces codes conviennent à une utilisation dans les pipelines CI et les hooks pré-enregistrement.
Flux typiques
-
Convertissez votre schema XML existant en YAML :
Fenêtre de terminal ./scripts/mondrian-schema to-yaml my-schema.xml -o my-schema.yaml -
Lintez le YAML pour confirmer qu’il est valide :
Fenêtre de terminal ./scripts/mondrian-schema lint my-schema.yaml -
Passez en revue et annotez
my-schema.yamlavec des commentaires, puis téléversez-le dans Saiku via la page Schemas.
-
Créez ou éditez votre schema YAML localement.
-
Exécutez lint pour attraper les erreurs avant le téléversement :
Fenêtre de terminal ./scripts/mondrian-schema lint my-schema.yamlUn code de sortie
0signifie que le schema a été analysé proprement. Toute erreur apparaît sur stderr avec une référence de ligne. -
Si vous devez fournir du XML à un outil externe (par ex. un client de reporting hérité), convertissez à la demande :
Fenêtre de terminal ./scripts/mondrian-schema to-xml my-schema.yaml -o my-schema.xml
Ajoutez une étape lint à votre pipeline CI pour attraper les erreurs de schema avant qu’elles n’atteignent la production :
# In .github/workflows/ci.yml or equivalent- name: Lint Mondrian schemas run: | for f in schemas/*.yaml; do ./scripts/mondrian-schema lint "$f" doneLe script sort avec le code 2 en cas d’échec d’analyse ou de validation, ce qui fera échouer le job CI automatiquement.
Prérequis
Le script requiert :
- Java — disponible sur
$PATH(même version JVM utilisée pour construire le projet) - Maven — pour la construction de classpath unique ; non nécessaire après que le cache existe
- Le dépôt
mondrian-saikuextrait localement (le script fait partie de ce dépôt, pas un binaire autonome)
Liens connexes
- Schemas YAML — la référence complète des éléments YAML.
- Schemas — téléversez et gérez les schemas dans le dashboard Saiku.
- Schema designer — générez un schema à partir d’une description en langage naturel.