Przejdź do głównej zawartości

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

Okno terminala
./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:

Okno terminala
./scripts/mondrian-schema to-yaml demo/FoodMart.mondrian.xml -o demo/FoodMart.yaml

Przykład — podgląd bez zapisu:

Okno terminala
./scripts/mondrian-schema to-yaml demo/FoodMart.mondrian.xml | head -40

to-xml — konwertuj YAML na XML

Okno terminala
./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:

Okno terminala
./scripts/mondrian-schema to-xml demo/FoodMart.yaml -o FoodMart-generated.xml

Przykład — rurkowanie do diffa dla weryfikacji wierności round-tripu:

Okno terminala
./scripts/mondrian-schema to-xml demo/FoodMart.yaml | diff demo/FoodMart.mondrian.xml -

lint — waliduj plik schemy

Okno terminala
./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:

Okno terminala
./scripts/mondrian-schema lint demo/FoodMart.yaml

Przykład — lint schemy XML:

Okno terminala
./scripts/mondrian-schema lint demo/FoodMart.mondrian.xml

Kody wyjścia

KodZnaczenie
0Sukces — bez błędów
1Złe argumenty lub brakujący plik wejściowy
2Poraż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

  1. Skonwertuj istniejącą schemę XML na YAML:

    Okno terminala
    ./scripts/mondrian-schema to-yaml my-schema.xml -o my-schema.yaml
  2. Zlintuj YAML, by potwierdzić, że jest prawidłowy:

    Okno terminala
    ./scripts/mondrian-schema lint my-schema.yaml
  3. Przejrzyj i opatrz my-schema.yaml komentarzami, potem wgraj do Saiku przez stronę Schemy.


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.