Seiten & Tiles bauen
Eine App ist ein Stapel von Seiten, und jede Seite ist ein Raster von Tiles — dasselbe Tile-Modell, das Dashboards verwenden. Wenn Sie schon ein Saiku-Dashboard gebaut haben, fühlt sich das identisch an; die einzige neue Schicht sind die Seiten der App und die Navigation darum herum.
Seiten
Jede App startet mit einer Seite. Im Bearbeitungsmodus:
- Eine Seite hinzufügen über das Navigationsmenü (Leiste oder oben)
— das
+neben der Seitenliste. - Eine Seite umbenennen an Ort und Stelle; der Name ist das, was in der Navigation erscheint.
- Seiten wechseln, indem Sie sie in der Navigation anklicken. Jede Seite merkt sich ihren eigenen Filterzustand, während Sie zwischen ihnen wechseln.
Ordnen Sie Ihre Seiten so, wie die Geschichte laufen soll, die Sie erzählen wollen — eine Übersichtsseite zuerst, Detailseiten danach.
Tiles hinzufügen
Klicken Sie auf einer Seite im Bearbeitungsmodus auf + Tile hinzufügen, um das Tile-Menü zu öffnen. Die eingebauten Tile-Typen sind:
| Tile | Was es zeigt |
|---|---|
| Chart | Sechzehn Diagrammtypen — Balken / Linie / Fläche / Torte / Donut / Wasserfall / Treemap / Sunburst / Heatmap / Radar / Scatter / Bubble / Karte. Siehe Das Chart-Tile |
| Table | Records von Measure-Zellen mit Zeilenköpfen |
| KPI | Eine einzelne Measure als große Zahl, mit optionalem Vergleich und Sparkline |
| Text / Notiz | Eine Markdown-Annotation — keine Daten |
| Bild | Ein Logo, Diagramm oder Screenshot aus einer URL oder einem Upload |
Wählen Sie einen Typ, und das Tile fällt aufs Raster. Platzierung und Größe funktionieren wie in einem Dashboard — ziehen zum Verschieben, am Griff ziehen zum Skalieren.
Filter stehen nicht in diesem Menü — sie werden im Filter-Panel der Seite über dem Raster hinzugefügt.
Ein Tile an Daten binden
Ein Tile hinzuzufügen wählt seinen Typ; der ⚙-Tile-Editor ist der Ort, an dem Sie ihm Daten geben. Öffnen Sie ihn über die Bearbeiten-Schaltfläche des Tiles. Je nach Tile-Typ konfigurieren Sie:
- Den Cube und die Abfrage — bei Chart-, Table- und KPI-Tiles wählen Sie Verbindung / Cube und bauen die Abfrage (Measures, Dimensionen auf Zeilen oder Spalten, Slicer). Siehe Woher die Abfrage eines Tiles kommt weiter unten.
- Den Diagrammtyp, und hinter der Schaltfläche Chart-Optionen einen zweiten Editor mit Dual-Achsen, Combo-Serientypen, Trendlinien, Sortierung / Top N, Zahlenformatierung, Referenzlinien und -bändern. Ein Chart-Tile kann außerdem Anomalien erkennen, einen Forecast projizieren und einen Cross-Filter senden, wenn Sie darin aufziehen. Das alles hat seine eigene Seite: Das Chart-Tile.
- Die Measure und den Vergleich — bei einem KPI, welche Measure die
große Zahl ist und (optional), womit sie verglichen wird. Verwenden
Sie das Formatmuster
$cNfür kompakte Währung ($48.2K). Siehe KPI-Vergleiche weiter unten. - Den Inhalt — den Markdown-Rumpf für ein Text-Tile oder die URL / den Upload für ein Bild-Tile (diese beiden brauchen keine Abfrage).
- Bedingte Formatierung — Table-Tiles unterstützen Regeln pro Spalte: Hintergrundfarbe, Datenbalken, Schriftfarbe oder ein Icon (↑ ↓ →), geschlüsselt an relative (Perzentil) oder absolute Schwellen. Eine Tabelle kann außerdem eine abschließende Sparkline-Spalte anfügen, die pro Zeile ein Minidiagramm aus den Measure-Werten dieser Zeile zeichnet — sinnvoll, wenn diese Spalten eine Serie bilden (etwa Monate), weniger bei unverwandten Measures.
- Zahlenformat (pro Spalte) — Table-Tiles nehmen ein Anzeigemuster
pro Spalte, gematcht an der Kopf-Caption, mit demselben Vokabular wie
die KPI- und Ranked-List-Tiles:
$cNkompakte Währung,$Nschlichte Währung,N%Prozent, blankesNNachkommastellen. Bei jeder Ganzzahl-Measure, deren Cube-Formatstring eine Dezimalstelle trägt, lohnt es sich — sonst rendert eine Stückzahl als10759.0. Spalten, die Sie auslassen, behalten die Formatierung des Cubes. - Auto-Refresh — jedes abfragegebundene Tile kann sich alle 1, 5, 15, 30 oder 60 Minuten selbst neu ausführen, beachtet dabei aktive Filter und pausiert, während der Browser-Tab verborgen ist.
Für ECharts-option-Custom-Tiles ergänzt der Editor Anzeigeoptionen: einen Live-Umschalter Trend / Breakdown (die Serie zwischen einer Linie und Balken über denselben Daten tauschen), letzten Punkt hervorheben (ein Akzent-Marker „aktuelle Periode”) und ein Wertachsen-Format. Siehe Custom Tiles.
Text- und Bild-Tiles sind die beiden, die keine Abfrage tragen; alles andere bindet an einen Cube.
Woher die Abfrage eines Tiles kommt
Es gibt zwei Wege, einem Tile seine Abfrage zu geben, und sie sitzen an verschiedenen Stellen im ⚙-Editor.
Hier bauen. Klicken Sie auf Abfrage visuell bearbeiten, und der volle Saiku-Query-Builder öffnet sich innerhalb des Tile-Editors: der Cube-Baum links, die Drop-Zonen Measures / Columns / Rows / Filter und darunter ein Live-Ergebnisraster. Er läuft, während Sie bauen, Sie sehen also die echten Zahlen, bevor Sie das Tile festschreiben. Übernehmen schreibt die Abfrage fest; das Speichern des Tiles persistiert sie. Das ist der übliche Weg — wählen Sie zuerst einen Cube, sonst bleibt die Schaltfläche deaktiviert.
Oder auf etwas Bestehendes zeigen, unter Abfragequelle:
- Gespeicherte Abfrage — wählen Sie eine vorhandene
.saiku-Datei, und das Tile rendert live daraus. Der Server lädt die gespeicherte Abfrage, merged alle zutreffenden Dashboard-Filter und führt sie bei jedem Refresh neu aus — eine gespeicherte Abfrage kann also Tiles in mehreren Apps unterlegen, und alle folgen, wenn Sie sie ändern. - Inline-JSON — siehe unten.
Inline-JSON nimmt direkt einen AiQueryRequest-Rumpf. Greifen Sie
danach, wenn Sie eine Abfrageform wollen, die der Builder nicht bietet —
etwa eine bestimmte Hierarchie, wenn zwei sich einen Levelnamen teilen —
oder wenn Sie eine Abfrage zwischen Tiles kopieren.
Eine Hierarchie kann nicht auf einer Achse und in den Filtern sein
Legen Sie Time / Time / Month auf Rows und versuchen dann, auf
Time / Time / Year zu filtern, wird die Abfrage abgelehnt:
Hierarchy ‘Time’ is already on the rows/columns axis. Mondrian rejects the same hierarchy on two independent axes. Either move the filter members onto the axis selection’s
members[], or filter on a different hierarchy/dimension.
Das ist eine Regel der zugrundeliegenden OLAP-Engine, keine
Saiku-Beschränkung. Um eine Achse auf einen Teil einer Hierarchie
einzugrenzen, benennen Sie die Member auf der Achse selbst, statt
separat zu filtern — in Inline-JSON ist das das members[]-Array auf
der Zeile:
"rows": [{ "dimension": "Time", "hierarchy": "Time", "level": "Month", "members": ["[Time].[Time].[1998].[Q1].[January]", "…"]}]Dieselbe Technik ist die Notluke, wenn die Member eines Levels in einer Reihenfolge zurückkommen, die Sie nicht wollen: Sie explizit aufzuzählen, fixiert die Abfolge, denn Kategorien sortieren im Chart-Tile sortiert nach Measure-Wert, nicht nach Kategorie. Die Referenz-App FoodMart Ops nutzt genau das, um ihr Trend-Diagramm auf acht benannte Wochen zu pinnen.
KPI-Vergleiche
Die Delta-Auszeichnung eines KPI — das „+6.7% vs last month” unter der Zahl — ist aus dem eigenen Zeitlevel des Tiles abgeleitet, beschreibt also immer den Vergleich, den das Tile tatsächlich gemacht hat. Fragen Sie auf Monatsgranularität ab, sagt es „vs last month”; auf Wochengranularität „vs last week”.
Setzen Sie zuerst das Zeitlevel
Dieses Zeitlevel ist etwas, das Sie wählen, nicht etwas, das das Tile ableitet — und bis Sie es setzen, hat ein Vergleich nichts, womit er vergleichen könnte.
Nahe dem unteren Rand des KPI-Editors, unter **Zeitlevel (für Vergleich
- Sparkline)**, wählen Sie eine Dimension, Hierarchie und ein Level (z. B. Time / Time / Month). Dann:
- hat der Vergleich eine Vorperiode, gegen die er messen kann, und
- wird die Checkbox Sparkline verfügbar — sie plottet die Measure über dieses Level.
Sie können die Formulierung mit Delta-Label überschreiben, wenn ein Cube sein eigenes Vokabular hat („vs last trading day”), aber der Standard kann den Daten nicht mehr widersprechen.
Unvollständige letzte Perioden
Der neueste Eimer einer Zeitreihe füllt sich oft noch — die laufende Woche oder der laufende Monat — oder ist eine Datengrenze, an der die letzte Periode ein paar Tage hält. Gegen eine ganze Vorperiode gemessen erzeugt das eine Zahl, die den Kalender beschreibt statt das Geschäft: ein −84 %, das bedeutet, dass sich nichts geändert hat außer dem Datum.
Setzen Sie Unvollständige letzte Perioden, um dem Tile zu sagen, wie viele der neuesten Perioden noch partiell sind. Diese Perioden:
- behalten ihre echten Werte — nichts wird versteckt, und die Sparkline plottet weiterhin jeden Punkt
- werden beschriftet „Week 52 · partial” unter der Zahl
- haben keinen Prozentsatz gegen sich ausgewiesen, weil es keinen ehrlichen zu zeigen gibt
Speichern
Speichern Sie die App aus dem Editor. Sie wird als
.saikuapp-Dokument im Repository in dem Ordner persistiert, den Sie
beim Erstellen gewählt haben. Öffnen Sie sie jederzeit erneut aus der
Apps-Liste oder betten Sie sie auf einer
anderen Site ein — siehe Eine App
einbetten.
Verwandt
- App-Builder-Überblick — was eine App ist und wie sie sich von einem Dashboard unterscheidet.
- Custom Tiles — deklarative ECharts- und Graph-Renderer jenseits der eingebauten fünf.
- Analyze — die Abfragen bauen und speichern, die Ihre Tiles wiederverwenden.