Funktionsweise von Detailgenauigkeitsausdrücken in Tableau
In diesem Artikel wird erläutert, wie Detailgenauigkeitsausdrücke berechnet werden und wie sie in Tableau funktionieren. Weitere Informationen zu LOD-Ausdrücken und deren Funktionsweise finden Sie im Whitepaper Grundlegendes zu Detailgenauigkeitsausdrücken(Link wird in neuem Fenster geöffnet) auf der Tableau-Website.
Ausdrücke auf Zeilenebene und Ausdrücke auf Ansichtsebene
In Tableau werden Ausdrücke, die auf nicht aggregierte Datenquellenspalten verweisen, für jede Zeile in der zugrunde liegenden Tabelle berechnet. In diesem Fall ist Zeilenebene die Dimensionalität des Ausdrucks. Im Folgenden finden Sie ein Beispiel eines Ausdrucks auf Zeilenebene:
[Sales] / [Profit]
Diese Berechnung wird in jeder Zeile der Datenbank ausgewertet. Für jede Zeile wird der Wert "Umsatz" in dieser Zeile durch den Wert "Gewinn" in dieser Zeile geteilt. Dies führt zu einer neuen Spalte mit dem Ergebnis der Division (ein Gewinnverhältnis).
Wenn Sie eine Berechnung mit dieser Definition erstellen, speichern Sie sie mit dem Namen [ProfitRatio] und ziehen Sie sie dann aus dem Bereich Daten zu einem Container. Tableau aggregiert für gewöhnlich das berechnete Feld für die Ansicht:
SUM([ProfitRatio])
Im Gegensatz dazu werden Ausdrücke, die auf aggregierte Datenquellenspalten verweisen, auf der Dimensionalität berechnet, die durch die Dimensionen in der Ansicht definiert wurde. In diesem Fall ist Ansichtsebene die Dimensionalität des Ausdrucks. Im Folgenden finden Sie ein Beispiel eines Ausdrucks auf Ansichtsebene:
SUM(Sales) / SUM(Profit)
Wenn Sie diese Berechnung auf einen Container ziehen (oder sie direkt auf einem Container als eine Ad-hoc-Berechnung eingeben), umschließt Tableau sie in einer AGG-Funktion:
AGG(SUM(Umsatz) / SUM(Gewinn))
Dies wird als Aggregatberechnung bezeichnet. Details finden Sie unter Aggregationsfunktionen in Tableau(Link wird in neuem Fenster geöffnet).
Dimensionen und Felder, die an den im folgenden Bild hervorgehobenen Stellen platziert werden, tragen zur Ansichtsdetailgenauigkeit bei:
Bevor Detailgenauigkeitsausdrücke in Tableau unterstützt wurden, war es nur möglich, Berechnungen auf der Ansichtsebene zu erstellen. Wenn Sie beispielsweise versuchen, den folgenden Ausdruck zu speichern, zeigt Tableau die folgende Fehlermeldung an: "Für diese Funktion können keine Aggregatargumente und Nicht-Aggregatargumente gemischt werden."
[Sales] – AVG([Sales])
Die Absicht des Benutzers in diesem Fall besteht darin, die Geschäftsumsätze für jedes einzelne Geschäft mit dem Mittelwert der Umsätze für alle Geschäfte zu vergleichen. Dies kann nur mit einem Detailgenauigkeitsausdruck erreicht werden:
[Sales] - {AVG([Sales])}
Dies wird als tabellenbereichsbezogener Detailgenauigkeitsausdruck bezeichnet. Siehe Tabellenbereichsbezogen.
Begrenzungen für Detailgenauigkeitsausdrücke
Die folgenden Begrenzungen gelten für Detailgenauigkeitsausdrücke. Informationen finden Sie auch im Thema über Datenquellenbeschränkungen für Detailgenauigkeitsausdrücke.
Detailgenauigkeitsausdrücke, die auf Gleitkommakennzahlen verweisen, können sich unzuverlässig verhalten, wenn sie in einer Ansicht verwendet werden, für die der Vergleich der Werte im Ausdruck erforderlich ist. Details finden Sie unter Grundlegendes zu Datentypen in Berechnungen(Link wird in neuem Fenster geöffnet).
Detailgenauigkeitsausdrücke werden auf der Seite "Datenquelle" nicht angezeigt. Siehe Datenquellenseite.
Verwenden Sie beim Referenzieren eines Parameters in einer Dimensionalitätsdeklaration immer den Parameternamen und nicht den Parameterwert.
Bei der Datenverschmelzung muss das Verknüpfungsfeld von der primären Datenquelle in der Ansicht vorhanden sein, bevor Sie einen Detailgenauigkeitsausdruck von der sekundären Datenquelle nutzen können. Weitere Informationen finden Sie unter Problembehandlung bei der Datenverschmelzung.
Zusätzlich weisen einige Datenquellen Komplexitätsbegrenzungen auf. Tableau deaktiviert Berechnungen für diese Datenbanken nicht, es sind jedoch Abfragefehler möglich, wenn Berechnungen zu komplex werden.
Detailgenauigkeitsausdrücke können "Dimensionen" oder "Kennzahlen" sein.
Wenn Sie einen Detailgenauigkeitsausdruck speichern, fügt Tableau ihn den "Dimensionen" oder "Kennzahlen" im Bereich "Daten" hinzu.
FIXED-Detailgenauigkeitsausdrücke können in Abhängigkeit des zugrunde liegenden Feldes im Aggregatausdruck zu Kennzahlen oder Dimensionen führen. MIN([Datum])} wird dadurch zu einer Dimension, da [Datum] eine Dimension ist, und {fixed Store : SUM([Umsatz])} wird zu einer Kennzahl, da [Umsatz] eine Kennzahl ist. Wenn ein FIXED-Detailgenauigkeitsausdruck als eine Kennzahl gespeichert wird, haben Sie die Möglichkeit, ihn auf Dimensionen zu verschieben.
INCLUDE- und EXCLUDE-Detailgenauigkeitsausdrücke sind immer Kennzahlen.
Filter und Detailgenauigkeitsausdrücke
In Tableau stehen mehrere verschiedene Filtertypen zur Verfügung, sie können in der folgenden Reihenfolge von oben nach unten ausgeführt werden.
Der Text auf der rechten Seite zeigt, wo Detailgenauigkeitsausdrücke in dieser Sequenz ausgewertet werden.
Extraktfilter (in Orange) sind nur relevant, wenn Sie einen Tableau-Extrakt aus einer Datenquelle erstellen. Tabellenberechnungsfilter (dunkelblau) werden angewendet, nachdem Berechnungen ausgeführt wurden, sie blenden daher Markierungen aus, ohne die in den Berechnungen verwendeten zugrunde liegenden Daten herauszufiltern.
Wenn Sie mit SQL vertraut sind, können Sie sich die Kennzahlfilter als Entsprechung zur HAVING-Klausel in einer Abfrage und Dimensionsfilter als Entsprechung zur WHERE-Klausel vorstellen.
FIXED-Berechnungen werden vor Dimensionsfiltern angewendet, sie werden also ignoriert, es sei denn, Sie stufen die Felder auf Ihrem Container "Filter" zu Verwenden von Kontextfiltern herauf. Angenommen, Sie haben die folgende Berechnung auf einem Container in einer Ansicht zusammen mit [Bundesstaat] auf einem anderen Container:
SUM([Sales]) / ATTR({FIXED : SUM([Sales])})
Diese Berechnung gibt Ihnen das Verhältnis der Umsätze des Bundesstaats im Vergleich zu den Gesamtumsätzen zurück.
Wenn Sie dann [Bundesstaat] auf dem Container "Filter" ablegen, um einige der Bundesstaaten auszublenden, wirkt sich der Filter nur auf den Zähler in der Berechnung aus. Da es sich beim Nenner um einen FIXED-Detailgenauigkeitsausdruck handelt, teilt er weiterhin die Umsätze für die Bundesstaaten in der Ansicht mit den Gesamtumsätzen für alle Bundesstaaten, einschließlich jener, die aus der Ansicht herausgefiltert wurden.
INCLUDE- und EXCLUDE-Detailgenauigkeitsausdrücke werden nach Dimensionsfiltern berücksichtigt. Wenn Sie also Filter auf Ihren FIXED-Detailgenauigkeitsausdruck anwenden, jedoch keine Kontextfilter verwenden möchten, ziehen Sie in Betracht, ihn als INCLUDE- oder EXCLUDE-Ausdrücke umzuschreiben.
Aggregation und Detailgenauigkeitsausdrücke
Die Detailgenauigkeit der Ansicht bestimmt die Anzahl der Markierungen in Ihrer Ansicht. Wenn Sie der Ansicht einen Detailgenauigkeitsausdruck hinzufügen, muss Tableau zwei Detailebenen zusammenführen, eine in der Ansicht und die andere in Ihrem Ausdruck.
Das Verhalten eines Detailgenauigkeitsausdrucks in der Ansicht variiert in Abhängigkeit davon, ob die Detailgenauigkeit des Ausdrucks allgemeiner oder höher ist oder der Detailgenauigkeit in der Ansicht entspricht. Was bedeutet "allgemeiner" oder "höher" in diesem Fall?
Detailgenauigkeitsausdruck ist allgemeiner als die Detailgenauigkeit der Ansicht
Ein Ausdruck verfügt über eine allgemeinere Detailgenauigkeit als die Ansicht, wenn er eine Teilmenge der Dimensionen in der Ansicht referenziert. Beispielsweise würden Sie für eine die Dimensionen [Category] und [Segment] enthaltende Ansicht einen Detailgenauigkeitsausdruck erstellen, der nur die folgenden Dimensionen enthält:
{FIXED [Segment] : SUM([Sales])}
In diesem Fall hat der Ausdruck eine allgemeinere Detailgenauigkeit als die Ansicht. Seine Werte basieren auf einer Dimension ([Segment]). Die Ansicht der Ansicht hingegen basiert auf den zwei Dimensionen ([Segment] und [Category]).
Die Verwendung des Detailgenauigkeitsausdrucks in der Ansicht führt dazu, dass bestimmte Werte repliziert, also mehrfach angezeigt werden.
Replizierte Werte sind für das Vergleichen von bestimmten Werten mit Durchschnittswerten in einer Kategorie hilfreich. Beispielsweise wird in der folgenden Berechnung der Durchschnittsumsatz für einen Kunden vom durchschnittlichen Gesamtumsatz abgezogen:
[Sales] - {FIXED [Customer Name] : AVG([Sales])}
Wenn Werte repliziert werden, wirkt sich das Ändern der Aggregation für das relevante Feld in der Ansicht (beispielsweise von AVG zu SUM) nicht auf das Ergebnis der Aggregation aus.
Detailgenauigkeitsausdruck ist genauer als die Detailgenauigkeit der Ansicht
Ein Ausdruck verfügt über eine genauere Detailgenauigkeit als die Ansicht, wenn er eine Obermenge der Dimensionen in der Ansicht referenziert. Wenn Sie einen derartigen Ausdruck in der Ansicht verwenden, aggegiert Tableau die Ergebnisse bis zur Ansichtsebene. Beispielsweise referenziert der folgende Detailgenauigkeitsausdruck zwei Dimensionen:
{FIXED [Segment], [Category] : SUM([Sales])}
Wenn dieser Ausdruck in einer Ansicht verwendet wird, die nur über [Segment] als Detailgenauigkeit verfügt, müssen die Werte aggregiert werden. Im Folgenden erfahren Sie, was angezeigt wird, wenn Sie diesen Ausdruck auf einen Container ziehen:
AVG([{FIXED [Segment]], [Category]] : SUM([Sales]])}])
Eine Aggregation (in diesem Fall der Durchschnitt) wird automatisch durch Tableau zugewiesen. Sie können die Aggregation bei Bedarf ändern.
Hinzufügen eines Detailgenauigkeitsausdrucks zur Ansicht
Ob ein Detailgenauigkeitsausdruck in der Ansicht aggregiert oder repliziert wird, wird durch den Ausdruckstyp (FIXED, INCLUDE oder EXCLUDE) und abhängig davon bestimmt, ob die Granularität des Ausdrucks allgemeiner oder genauer als die in der Ansicht ist.
INCLUDE-Detailgenauigkeitsausdrücke weisen entweder dieselbe Detailgenauigkeit wie die Ansicht oder eine höhere Detailgenauigkeit als die Ansicht auf. Daher werden Werte niemals repliziert.
FIXED-Detailgenauigkeitsausdrücke können eine höhere Detailgenauigkeit als die Ansicht, eine allgemeinere Detailgenauigkeit oder eine identische Detailgenauigkeit aufweisen. Die Notwendigkeit, die Ergebnisse einer FIXED-Detailgenauigkeit zu aggregieren, hängt davon ab, welche Dimensionen sich in der Ansicht befinden.
EXCLUDE-Detailgenauigkeitsausdrücke führen immer dazu, dass replizierte Werte in der Ansicht angezeigt werden. Wenn Berechnungen mit EXCLUDE-Detailgenauigkeitsausdrücken in einem Container platziert werden, verwendet Tableau standardmäßg die ATTR-Aggregation (im Gegensatz zu SUM oder AVG), um zu bestimmen, dass der Ausdruck nicht tatsächlich aggregiert wird und dass sich das Ändern der Aggregation nicht auf die Ansicht auswirkt.
Detailgenauigkeitsausdrücke werden immer automatisch in einem Aggregat umgebrochen, wenn sie zu einem Container in der Ansicht hinzugefügt werden, sofern sie nicht als Dimensionen verwendet werden. Doppelklicken Sie auf einen Container und geben Sie Folgendes ein:
{FIXED[Segment], [Category] : SUM([Sales])}
Drücken Sie anschließend die EINGABETASTE, um einen Commit für den Ausdruck durchzuführen. Nun wird auf dem Container Folgendes angezeigt:
SUM({FIXED[Segment], [Category] : SUM([Sales])})
Wenn Sie jedoch im Container doppelklicken, um den Ausdruck zu bearbeiten, wird im Bearbeitungsmodus der ursprüngliche Ausdruck angezeigt.
Wenn Sie einen Detailgenauigkeitsausdruck in einer Aggregation umbrechen, wenn Sie ihn erstellen, verwendet Tableau die von Ihnen angegebene Aggregation statt eine zuzuweisen, wenn eine beliebige Berechnung, die diesen Ausdruck enthält, in einem Container platziert wird. Wenn keine Aggregation erforderlich ist (da die Detailgenauigkeit des Ausdrucks allgemeiner ist als die der Ansicht), wird die von Ihnen angegebene Aggregation weiterhin gezeigt, wenn sich der Ausdruck in einem Container befindet, wird sie jedoch ignoriert.
Datenquellenbeschränkungen für Detailgenauigkeitsausdrücke
Bei einigen Datenquellen unterstützen nur aktuellere Versionen Detailgenauigkeitsausdrücke. Einige Datenquellen unterstützen Detailgenauigkeitsausdrücke überhaupt nicht.
Zusätzlich weisen einige Datenquellen Komplexitätsbegrenzungen auf. Tableau deaktiviert Berechnungen für diese Datenbanken nicht, es sind jedoch Abfragefehler möglich, wenn Berechnungen zu komplex werden.
Datenquelle | Support |
Actian Vectorwise | Wird nicht unterstützt. |
Amazon EMR Hadoop Hive | Wird für Hive 0.13 und höher unterstützt. |
Amazon Redshift | Wird unterstützt. |
Aster Database | Wird für Version 4.5 und höher unterstützt. |
Cloudera Hadoop | Wird für Hive 0.13 und höher unterstützt. |
Cloudera Impala | Wird für Impala 1.2.2 und höher unterstützt. |
Cubes (mehrdimensionale Datenquellen) | Wird nicht unterstützt. |
DataStax Enterprise | Wird nicht unterstützt. |
EXASOL | Wird unterstützt. |
Firebird | Wird für Version 2.0 und höher unterstützt. |
Generische ODBC | Begrenzt. Hängt von der spezifischen Datenquelle ab. |
Google BigQuery | Unterstützt für Standard-SQL, nicht für Legacy-SQL. |
Hortonworks Hadoop Hive | Wird für Hive 0.13 und höher unterstützt. Ist in Version 1.1 der HIVE-Detailgenauigkeitsausdrücke nicht zuverlässig, die Kreuzverknüpfungen erstellen. Kreuzverknüpfungen treten auf, wenn kein explizites Feld für die Verknüpfung verfügbar ist. Wenn beispielsweise beim Detailgenauigkeitsausdruck |
IBM BigInsights | Wird unterstützt. |
IBM DB2 | Wird für Version 8.1 und höher unterstützt. |
MarkLogic | Wird für Version 7.0 und höher unterstützt. |
Microsoft Access | Wird nicht unterstützt. |
Microsoft Jet-basierte Verbindungen (ältere Connectoren für Microsoft Excel, Microsoft Access und Text) | Wird nicht unterstützt. |
Microsoft SQL Server | SQL Server 2005 und höher. |
MySQL | Wird unterstützt. |
IBM PDA (Netezza) | Wird für Version 7.0 und höher unterstützt. |
Oracle | Wird für Version 9i und höher unterstützt. |
Actian Matrix (ParAccel) | Wird für Version 3.1 und höher unterstützt. |
Pivotal Greenplum | Wird für Version 3.1 und höher unterstützt. |
PostgreSQL | Wird für Version 7 und höher unterstützt. |
Progress OpenEdge | Wird unterstützt. |
SAP HANA | Wird unterstützt. |
SAP Sybase ASE | Wird unterstützt. |
SAP Sybase IQ | Wird für Version 15.1 und höher unterstützt. |
Spark SQL | Wird unterstützt. |
Splunk | Wird nicht unterstützt. |
Tableau Data Extract | Wird unterstützt. |
Teradata | Wird unterstützt. |
Vertica | Wird für Version 6.1 und höher unterstützt. |
Siehe auch
Erstellen von Detailgenauigkeitsausdrücken in Tableau
Grundlegendes zu Detailgenauigkeitsausdrücken(Link wird in neuem Fenster geöffnet)