Erstellen effizienter Berechnungen

Wenn Ihre Daten nicht alle Informationen bieten, die Sie als Antwort auf Ihre Fragen benötigen, können Sie berechnete Felder als Hilfe für die Analyse erstellen.

In einem berechneten Feld können Sie eine fest definierte Konstante (z. B. einen Steuersatz) definieren, sehr einfache Rechenoperationen wie Subtraktionen oder Multiplikationen durchführen (z. B. Umsätze minus Kosten), komplexere mathematische Formeln anwenden, logische Prüfungen ausführen (IF/THEN, CASE), Typumwandlungen vornehmen, Ausdrücke an externe Dienste wie R senden und vieles mehr.

Tableau bietet unterschiedliche Berechnungsarten:

Einfache und aggregierte Berechnungen: Diese Berechnungsarten werden im Rahmen der Abfrage der zugrunde liegenden Datenquelle erzeugt und in der Datenbank berechnet. Im Allgemeinen lassen sich einfache und aggregierte Berechnungen problemlos skalieren, und ihre Leistung kann mit zahlreichen Datenbankabstimmungstechniken gesteigert werden.

Tabellenberechnungen: Diese Berechnungen werden in Tableau für die Abfrageergebnismenge durchgeführt. Dies bedeutet einen höheren Arbeitsaufwand in Tableau, doch Tabellenberechnungen werden im Allgemeinen über eine deutlich kleinere Anzahl an Datensätzen durchgeführt als in der ursprünglichen Datenquelle vorhanden sind. Wenn die Leistung der Tabellenberechnungen nicht Ihren Erwartungen entspricht (beispielsweise weil eine sehr große Ergebnismenge an Tableau zurückgegeben wird), versuchen Sie, einige Aspekte der Berechnung wieder auf die Datenquellenebene zu bringen. Hierzu können Sie die Daten schrittweise aggregieren und dann die Berechnung für die aggregierten Daten ausführen.

Detailgenauigkeitsausdrücke (LOD-Ausdrücke):LOD-Ausdrücke werden im Rahmen der Abfrage der zugrunde liegenden Datenquelle erzeugt und in der Datenbank berechnet. Die Ausdrücke werden als verschachtelte Auswahl dargestellt, sind also abhängig von der Datenbankleistung. Unter Umständen bietet eine Tabellenberechnung oder eine Verschmelzung eine höhere Leistung als ein LOD-Ausdruck (oder umgekehrt).

Wenn Sie vermuten, dass die Leistung aufgrund eines LOD-Ausdrucks leidet, versuchen Sie, den Ausdruck durch eine Tabellenberechnung oder eine Datenverschmelzung zu ersetzen, und prüfen Sie, ob die Leistung steigt. Ein Beispiel finden Sie unter Beispiel 2 in der Reihenfolge der Vorgänge in Tableau.

LOD-Ausdrücke können durch die Aussortierung von Verknüpfungen beeinträchtigt werden; falls die Abfragen mit LOD-Ausdrücken langsamer ablaufen, beachten Sie also die Anweisungen unter "Referentielle Integrität voraussetzen" für Verknüpfungen.

Weitere Informationen finden Sie im Tableau-Whitepaper Grundlagen der Detailgenauigkeitsausdrücke (LOD-Ausdrücke).

Boolesche Ausdrücke und Ganzzahlen sind schneller.

Beim Erstellen von berechneten Feldern beeinflusst der verwendete Datentyp die Berechnungsgeschwindigkeit maßgeblich. Ganzzahlen und Boolesche Ausdrücke sind im Allgemeinen deutlich schneller als Zeichenfolgen. Wenn die Berechnung ein binäres Ergebnis liefert (z. B. ja/nein, bestanden/nicht bestanden, über/unter), lassen Sie in jedem Fall ein Boolesches Ergebnis anstelle einer Zeichenfolge zurückgeben.

Parameter für bedingte Berechnungen verwenden

In Tableau wird häufig eine Parametersteuerung angezeigt, mit der die Benutzer einen Wert auswählen können, der die Ausführung einer Berechnung definiert. In der Regel sollten Sie die Parameter als Zeichenfolgentyp anlegen, damit die Benutzer leicht verständliche Optionen erhalten. Numerische Berechnungen sind allerdings deutlich schneller als Zeichenfolgenberechnungen; mit der Parameterfunktion Anzeigen als können Sie daher Textbeschriftungen anzeigen und doch ganzzahlige Werte für die Berechnungslogik heranziehen. Weitere Informationen finden Sie unter Erstellen von Parametern.

Konvertieren von Datumsfeldern

Viele Benutzer arbeiten mit Datumsdaten, die nicht in systemeigenen Datumsformaten gespeichert sind (z. B. als Zeichenfolge oder numerischer Zeitstempel). Hier empfiehlt sich die Funktion DATEPARSE, sofern Ihre Daten diese Funktion unterstützen. (Die Funktion ist für nicht veraltete Microsoft Excel- und Textdateiverbindungen sowie für Datenextrakt-Datenquellen von MySQL, Oracle, PostgreSQL und Tableau verfügbar.) Ansonsten analysieren Sie das Feld, sodass eine Datumszeichenfolge wie "2012-01-01" entsteht. Greifen Sie nach Möglichkeit auf ISO-Zeichenfolgen zurück, da diese nicht vom Gebietsschema abhängig sind. Übergeben Sie dann den Wert an die DATE-Funktion. Wenn die ursprünglichen Daten aus einem numerischen Feld stammen, ist die Umwandlung in eine Zeichenfolge und dann in ein Datum äußerst ineffizient. Behalten Sie stattdessen die numerischen Daten bei, und führen Sie die Berechnung mit der Funktion DATEADD und mit Datums-Literalwerten aus. Bei großen Datensätzen können sich erhebliche Leistungssteigerungen ergeben. Weitere Informationen zu diesen Funktionen finden Sie unter Datumsfunktionen.

Logische ELSEIF-Anweisungen verwenden

Beachten Sie bei komplexen logischen Anweisungen, dass ELSEIF schneller ist als ELSE IF, da bei einer verschachtelten IF-Anweisung eine zweite IF-Anweisung separat statt als Teil der ersten Anweisung berechnet wird.

Kennzahlen aggregieren

Wenn die erstellten Ansichten nur langsam reagieren, prüfen Sie, ob aggregierte Kennzahlen vorliegen. Bei disaggregierten Daten wird unter Umständen versucht, zu viele Datenzeilen gleichzeitig anzuzeigen. Sie können die Anzahl an Zeilen reduzieren, indem Sie die Daten aggregieren. Wählen Sie hierzu Analyse > Kennzahlen aggregieren aus.

Tipps zu Berechnungen

Es gibt viele kleine Dinge, mit denen Sie die Leistung von Berechnungen steigern können.

  • Unterschiedliche Zählwerte gehören zu den langsamsten Aggregationstypen in nahezu allen Datenquellen. Setzen Sie die COUNTD-Aggregation nur sparsam ein.

  • Parameter mit umfangreichen Auswirkungen (z. B. in einer benutzerdefinierten SQL-Anweisung) können die Cache-Leistung beeinträchtigen.

  • Das Filtern nach komplexen Berechnungen kann potenziell dazu führen, dass Indizes in den zugrunde liegenden Daten fehlen.

  • Skriptfunktionen wie RAWSQL und SCRIPT_* zum Integrieren mit externen Diensten können langsam ablaufen, insbesondere wenn zahlreiche Werte an den DBMS/R-Server übergeben und von diesem zurückgegeben werden müssen.

  • Setzen Sie NOW nur dann ein, wenn Sie die Detailgenauigkeit auf Zeitstempelebene benötigen. Nutzen Sie TODAY für Berechnungen auf Datumsebene.

  • Denken Sie daran, dass alle einfachen Berechnungen an die zugrunde liegenden Daten weitergegeben werden, selbst Literalberechnungen wie Beschriftungszeichenfolgen. Wenn Sie Beschriftungen erstellen müssen (z. B. für Spaltenüberschriften) und mit äußerst umfangreichen Daten arbeiten, legen Sie eine einfache Text-/Excel-Dateidatenquelle mit einem einzigen Datensatz an, der diese Beschriftungen enthält, sodass sie die große Datenquelle nicht zusätzlich belasten.

Vielen Dank für Ihr Feedback!