CLI schemy
Skrypt mondrian-schema opakowuje narzędzie Java mondrian.schema.yaml.SchemaCli, byś nie musiał pamiętać długiej inwokacji mvn exec:java. Używaj go do konwertowania istniejących schem XML na YAML, konwertowania YAML z powrotem na XML do wdrożenia lub walidowania pliku schemy przed zapisaniem do Saiku.
Komendy
to-yaml — konwertuj XML na YAML
./scripts/mondrian-schema to-yaml <input.xml> [-o output.yaml]Czyta schemę XML Mondrian-4 i zapisuje równoważną reprezentację YAML. Jeśli pominiesz -o, YAML jest zapisywany na stdout.
Przykład — konwersja FoodMart:
./scripts/mondrian-schema to-yaml demo/FoodMart.mondrian.xml -o demo/FoodMart.yamlPrzykład — podgląd bez zapisu:
./scripts/mondrian-schema to-yaml demo/FoodMart.mondrian.xml | head -40to-xml — konwertuj YAML na XML
./scripts/mondrian-schema to-xml <input.yaml> [-o output.xml]Czyta schemę YAML Mondrian-4 i zapisuje równoważny XML. Jeśli pominiesz -o, XML jest zapisywany na stdout. To ta sama konwersja, którą silnik Saiku uruchamia automatycznie w czasie wykonania — uruchamianie ręcznie przydaje się do inspekcji wyniku przed wdrożeniem lub do migracji z powrotem do toolchainu natywnego dla XML.
Przykład — konwersja z powrotem na XML:
./scripts/mondrian-schema to-xml demo/FoodMart.yaml -o FoodMart-generated.xmlPrzykład — rurkowanie do diffa dla weryfikacji wierności round-tripu:
./scripts/mondrian-schema to-xml demo/FoodMart.yaml | diff demo/FoodMart.mondrian.xml -lint — waliduj plik schemy
./scripts/mondrian-schema lint <input.{yaml,xml}>Parsuje i waliduje plik schemy — albo YAML, albo XML. Błędy i ostrzeżenia są zapisywane na stderr. W razie powodzenia komenda kończy cicho z kodem 0.
Przykład — lint schemy YAML:
./scripts/mondrian-schema lint demo/FoodMart.yamlPrzykład — lint schemy XML:
./scripts/mondrian-schema lint demo/FoodMart.mondrian.xmlKody wyjścia
| Kod | Znaczenie |
|---|---|
0 | Sukces — bez błędów |
1 | Złe argumenty lub brakujący plik wejściowy |
2 | Porażka parsowania lub walidacji — diagnostyka zapisana na stderr |
Te kody nadają się do użycia w pipeline’ach CI i hookach pre-save.
Typowe workflowy
-
Skonwertuj istniejącą schemę XML na YAML:
Okno terminala ./scripts/mondrian-schema to-yaml my-schema.xml -o my-schema.yaml -
Zlintuj YAML, by potwierdzić, że jest prawidłowy:
Okno terminala ./scripts/mondrian-schema lint my-schema.yaml -
Przejrzyj i opatrz
my-schema.yamlkomentarzami, potem wgraj do Saiku przez stronę Schemy.
-
Autorzyj lub edytuj schemę YAML lokalnie.
-
Uruchom lint, by złapać błędy przed wgraniem:
Okno terminala ./scripts/mondrian-schema lint my-schema.yamlKod wyjścia
0oznacza, że schema sparsowała się czysto. Wszelkie błędy pojawiają się na stderr z odniesieniem do linii. -
Jeśli musisz dostarczyć XML do narzędzia zewnętrznego (np. legacy klient raportowy), konwertuj na żądanie:
Okno terminala ./scripts/mondrian-schema to-xml my-schema.yaml -o my-schema.xml
Dodaj krok lint do swojego pipeline’u CI, by łapać błędy schemy, zanim dotrą do produkcji:
# W .github/workflows/ci.yml lub równoważnym- name: Lint Mondrian schemas run: | for f in schemas/*.yaml; do ./scripts/mondrian-schema lint "$f" doneSkrypt kończy z kodem 2 przy każdej porażce parsowania lub walidacji, co automatycznie zawali joba CI.
Wymagania wstępne
Skrypt wymaga:
- Java — dostępna w
$PATH(ta sama wersja JVM, której użyto do zbudowania projektu) - Maven — do jednorazowego budowania classpath; niepotrzebny po istnieniu cache
- Lokalnie sklonowanego repozytorium
mondrian-saiku(skrypt jest częścią tego repo, nie samodzielnym binarnym)
Powiązane
- Schemy YAML — pełna referencja elementów YAML.
- Schemy — wgrywaj i zarządzaj schemami w dashboardzie Saiku.
- Schema designer — generuj schemę z opisu w języku naturalnym.