How to display data as a percentage in Kibana visualizations | Elastic Blog
Engineering

Anzeigen von Daten als Prozentwerte in Kibana-Visualisierungen

Prozentwerte werden bei Datenanalysen oft eingesetzt, um Zahlen effektiv vergleichen zu können, insbesondere bei stark unterschiedlichem Stichproben- oder Gesamtumfang der entsprechenden Daten. Mit Prozentwerten können wir uns einen schnellen und genauen Überblick darüber verschaffen, wie stark sich die Summen in den Daten über eine dimensionale Kategorie wie etwa Zeitraum, geografische Regionen, Produktlinien usw. verändert haben.

Liniendarstellung nach Region

Liniendarstellung nach Region mit Prozentwerten

In diesem Blogeintrag zeigen wir Ihnen anhand von einigen Beispielen, wie Sie Prozentwerte in Kibana mit häufig verwendeten Visualisierungen wie etwa Kreisdiagrammen, Einzelwertmetriken, Tabellen und Zeitreihen mit dem TSVB (Time Series Data Visualizer) berechnen können.

Für diesen Blogeintrag verwenden wir die Beispieldatensätze flights und ecommerce, die zusammen mit Kibana verfügbar sind. Wir zeigen Ihnen anhand dieser Daten, wie Sie die folgenden Fragen beantworten können:

  • Welcher Prozentanteil der Flüge war pünktlich?
  • In welchem Verhältnis stehen die Verspätungstypen zueinander über einen bestimmten Zeitraum?
  • Wie hat sich die Summe der Verkäufe von Woche zu Woche verändert?

Bevor wir anfangen, müssen Sie die Beispieldaten für Flüge und E-Commerce installieren. Sie können die Beispieldaten in Ihrem eigenen Cluster (6.5 oder neuer) installieren oder eine 14-tägige kostenlose Testversion unseres Elasticsearch Service hochfahren.

Welcher Prozentanteil der Flüge war pünktlich?

Eine Fluggesellschaft ist Ihr Kunde und möchte auf einem Dashboard groß anzeigen lassen, wie das Erreichen der Pünktlichkeitsziele fortschreitet. Jedes Dokument im Beispielindex „kibana_sample_data_flights“ steht für einen einzelnen Flug. Um einen Prozentwert zu berechnen, müssen Sie also die Anzahl der Dokumente mit pünktlichen Flügen durch die Gesamtzahl der Flüge teilen.

Pünktliche Flüge geteilt durch Flüge gesamt

Für diese Division sollten Sie die TSVB-Metrikvisualisierung verwenden, die die Berechnung Filter ratio enthält. Filter ratio teilt eine Metrik nach zwei Dokumentsätzen auf und gibt eine Zahl zurück. TSVB benötigt lediglich ein Zeitfeld im Index. Diese Anforderung ist im Index „kibana_sample_data_flights“ erfüllt.

Prozentanteil pünktlicher Flüge

Für die Konfiguration in TSVB in Kibana 7.4 und neuer wählen Sie zunächst Visualisierungstyp und Datensatz aus und konfigurieren anschließend die verwendeten Aggregationen, um den oben gezeigten Prozentwert anzuzeigen.

So wählen Sie Visualisierungstyp und Datensatz aus:

  1. Öffnen Sie TSVB und wählen Sie die Registerkarte Metric aus:Registerkarte Metric auswählen
  2. Wählen Sie die Registerkarte Panel options aus:
  3. Registerkarte Panel options
  1. Wählen Sie unter Data timerange mode die Option „Entire time range“ aus, anstatt nur das letzte Intervall zu verwenden. Hinweis: Diese Einstellung ist nur in Kibana 7.4 und neueren Versionen verfügbar. In älteren Versionen können Sie stattdessen einen sehr hohen Wert für das Datumsintervall festlegen.
  2. Geben Sie kibana_sample_data_flights als Index ein. Legen Sie im Feld Time den Wert timestamp fest.Feld „Time“ auf „timestamp“ festlegen

Nachdem Sie Index und Zeitbereich ausgewählt haben, können Sie die angezeigten Daten konfigurieren.

  1. Kehren Sie zur Registerkarte Data zurück und verwenden Sie Filter Ratio, um den Prozentwert für einen bestimmten Wert zu berechnen, wie etwa FlightDelayType: "No Delay".Filter Ratio verwenden
  1. Öffnen Sie die Registerkarte Options und wählen Sie die Formatierung „Percent“ aus.
    • Wenn Ihnen die standardmäßige Präzision von vier Stellen zu hoch ist, können Sie die Ziffern mit einer benutzerdefinierten Formatierungszeichenfolge abschneiden.Benutzerdefinierte Formatierungszeichenfolge verwenden

Falls Sie mehrere Werte anstelle eines einzigen Werts miteinander vergleichen möchten, haben Sie in Kibana zwei weitere Visualisierungen zur Auswahl. Wenn Sie eine Bucket Aggregation verwenden, um die zu vergleichenden Wert auszuwählen, können Sie die einzelnen Werte mit einem Kreisdiagramm oder einer Tabelle zu Prozentwerten konvertieren.

Werte mit einem Kreisdiagramm zu Prozentwerten konvertieren

Werte mit einer Tabellenvisualisierung zu Prozentwerten konvertieren

Diese Visualisierungen verwenden eine Terms Bucket Aggregation über das Feld „FlightDelayType“ und zeigen die Anzahl pro Bucket als Prozentanteil der Gesamtsumme an. Diese Beispielflugdaten enthalten nur 6 verschiedene Werte für FlightDelayType. Daher sind die Prozentwerte exakter, wenn die Größe für „Terms“ auf 6 oder höher festgelegt wird. Wenn Ihre Daten mehr einzigartige Werte enthalten, müssen Sie den Bucket „Other“ aktivieren, um 100 % der Daten abzudecken:

Bucket „Other“ aktivieren

In welchem Verhältnis stehen die Verspätungstypen zueinander über einen bestimmten Zeitraum?

Dieselbe Fluggesellschaft möchte zwei Visualisierungen nebeneinander in einem Dashboard anzeigen: die Zusammenfassung der oben gezeigten Werte im Vergleich zu einer Zeitreihe. Auf diese Weise kann das Unternehmen mit einem Drilldown in einen bestimmten Zeitbereich sowohl Zusammenfassung als auch Aufschlüsselung gleichzeitig ablesen.

Da die Flugdokumente ein Zeitfeld enthalten, eignet sich TSVB optimal für die Erstellung dieser Visualisierung. Mit demselben Setup wie oben beschrieben können Sie Filter Ratio verwenden, um Flüge mit „No Delay“ durch die Gesamtzahl der Flüge pro Intervall zu dividieren:

Visualisierung: pünktliche Flüge

Um mehr als eine Reihe zu vergleichen, können Sie entweder mehrere Filterverhältnisse erstellen oder eine Aggregation verwenden, um die Gruppen auszuwählen. In TSVB gibt es einen Modus, mit dem Sie mehrere Reihen auf 100 % skaliert anzeigen können.

Visualisierung: mehrere Reihen

Um die gestapelte Visualisierung der Prozentwerte in TSVB zu konfigurieren, wählen Sie zunächst die gewünschten Daten aus und konfigurieren dann Ihre Aggregationen. So wählen Sie die gewünschten Daten aus:

  1. Öffnen Sie TSVB, wählen Sie Panel options aus und geben Sie kibana_sample_data_flights als Index ein.
  2. Legen Sie im Feld Time den Wert timestamp fest.Feld „Time“ auf „timestamp“ festlegen

So konfigurieren Sie Ihre Aggregationen:

  1. Kehren Sie zur Registerkarte Data zurück.
  2. Wählen Sie unter Group by die Option Terms für „FlightDelayType“ aus.
  3. Öffnen Sie die Registerkarte Options.Auswahl in der Registerkarte „Options“
  4. Wählen Sie Data Formatter > Percent aus.
  5. Wählen Sie Stacked > Percent aus.
  6. stacked data-percent auswählen
  7. Wählen Sie Split color theme > Rainbow aus.

Wie haben sich die Verkäufe von Woche zu Woche entwickelt?

Angenommen, Sie haben einen E-Commerce-Kunden, der sämtliche Transaktionen im Index „kibana_sample_data_ecommerce“ speichert. Dieser Kunde braucht eine Visualisierung mit der Entwicklung der Verkäufe von Woche zu Woche, einem kritischen Wert für sein Geschäft. Da diese Fragestellung eine Zeitkomponente enthält, werden wir TSVB für die Visualisierung verwenden. Sie können Woche-über-Woche-Diagramme auch mit Timelion erstellen. Dies wird jedoch hier nicht behandelt.

Wie Sie bereits oben gesehen haben, können Sie mit TSVB dieselben Aggregationen verwenden, um Metrik- und Zeitreihenvisualisierungen zu erstellen. Im Gegensatz zum vorherigen Beispiel, bei dem Sie Data timerange mode auf Entire time range festgelegt haben, werden wir in dieser Visualisierung nur die Daten des aktuellsten Tags mit demselben Tag aus der Vorwoche vergleichen. In den beiden Visualisierungen erkennen wir, dass die Verkäufe am aktuellsten Tag der Daten um 5,2 % abgenommen haben.

Verkaufsrückgang

Visualisierung des Rückgangs

In diesem Fall müssen Sie die Verkäufe der einzelnen Tage addieren und mit der Summe von vor sieben Tagen vergleichen. Der einfachste Weg für diesen Vergleich ist die Aggregation Serial Difference, die einzelne Werte betrachtet und sie von einem bestimmten Intervall subtrahiert.

Richten Sie TSVB wie in den vorherigen Beispielen ein. Wählen Sie den Index kibana_sample_data_ecommerce aus und legen Sie im Feld „Time“ den Wert order_date fest. Legen Sie das Intervall außerdem auf genau 1d fest. Das Standardintervall für TSVB ändert sich mit dem Gesamtzeitbereich, während das Intervall für diese Berechnung immer gleich sein muss.

Datensample auswählen

Kehren Sie zur Registerkarte „Data“ zurück und wählen Sie die Aggregation Sum für das Feld taxful_total_price aus.

Aggregation „Sum“

Fügen Sie anschließend die Aggregation Serial Difference über Sum of taxful_total_price mit einer Verzögerung von 7 Buckets hinzu, da Sie das Zeitintervall bereits auf einen Tag festgelegt haben. „Serial Difference“ subtrahiert den Wert von vor 7 Buckets für jeden einzelnen Tag und liefert uns die gesamte Differenz der Verkäufe Woche über Woche. Aufgrund der Art, wie die Metrik „Serial Difference“ berechnet wird, sind die sieben Tage ganz links immer leer. Wählen Sie daher einen großen Zeitbereich aus:

Aggregation „Serial Difference“

Zuletzt können wir die Differenz Woche über Woche mit etwas Mathe in einen Prozentwert umwandeln. Wir addieren die aktuellen Verkäufe zur Differenz und teilen anschließend durch den aktuellen Wert:

Prozentwert mit einer Formel berechnen

Das verwendete Painless-Skript ist ((params.total + params.diff) / params.total) - 1.

Das Ergebnis ist die oben gezeigte Visualisierung. Sie könnten auch eine neue Reihe mit dem statischen Wert 0 verwenden, um die Baseline der Differenz von 0 hervorzuheben.

Anschließend können Sie zwischen den Registerkarten Time Series und Metric wechseln, um zu entscheiden, welche Darstellung sich für Ihren Anwendungsfall eignet.

Fazit

Dies sind nur einige Beispiele dafür, wie Sie Prozentwerte in Kibana effektiv berechnen und verwenden können. Falls Sie tiefer in diese Materie eintauchen und weitere Optionen für Berechnungen rund um Prozentwerte kennenlernen möchten, können Sie Canvas in Kibana verwenden, um sowohl die Abfrage als auch die Darstellung der Daten zu steuern.

Weitere Ressourcen