1
Bewährte Verfahrensweisen für den Entwurf effizienter Tableau-Arbeitsmappen Zweite Ausgabe
Alan Eldridge
Tableau Software
15. April 2014
2
Vorwort Ich möchte nochmals darauf hinweisen, dass dieses Dokument auf Unterlagen von zahlreichen Autoren
basiert. Ich habe diese Arbeiten lediglich in einem Dokument zusammengeführt und versucht, ihnen
eine Struktur zu verleihen. Viele Personen werden bei der Lektüre diverser Abschnitte ihre Beiträge
wiedererkennen (einige werden sogar weite Teile ihrer Texte wiederfinden). Ihnen allen möchte ich
meinen Dank aussprechen, weil ich ohne ihre ausgezeichnete Arbeit und ihren Verzicht auf
Urheberrechtsansprüche immer noch beim Nachforschen und Schreiben wäre.
Dieses Dokument wurde hinsichtlich der Funktionen von Tableau 8.1 sowie mit einigen Kommentaren zu
erwarteten Änderungen in Tableau 8.2 aktualisiert. Zukünftige Versionen von Tableau werden neue
Features und Funktionen bieten, die möglicherweise einige dieser Anleitungen verändern.
3
Inhalt Vorwort ..................................................................................................................................................... 2
Was ist Effizienz?....................................................................................................................................... 5
Warum befassen wir uns damit? .......................................................................................................... 5
Grundprinzipien .................................................................................................................................... 5
Teil 1 – Liegt es am Aufbau der Arbeitsmappe? ....................................................................................... 7
Wofür ist Tableau gut? .......................................................................................................................... 7
Wofür ist Tableau nicht so gut? ............................................................................................................ 8
Design-Ansätze – „schlecht“ im Gegensatz zu „gut“ ............................................................................ 9
Teil 2 – Liegt es an der Datenverbindung?.............................................................................................. 13
Dateien ................................................................................................................................................ 13
Relational ............................................................................................................................................ 15
Hadoop ................................................................................................................................................ 18
OLAP .................................................................................................................................................... 19
Cloud ................................................................................................................................................... 19
Data Server .......................................................................................................................................... 21
Extrakte ............................................................................................................................................... 21
Teil 3 – Liegt es an der Abfrage? ............................................................................................................. 30
Untersuchung der Abfragen ............................................................................................................... 30
Leistungsaufzeichnungen .................................................................................................................... 30
Verknüpfungsauswahl (Join Culling) ................................................................................................... 32
Verschmelzung .................................................................................................................................... 34
Filtern .................................................................................................................................................. 39
Teil 4 – Liegt es an den Berechnungen? ................................................................................................. 48
Grundlegende und aggregierte Berechnungen .................................................................................. 48
Tabellenberechnungen ....................................................................................................................... 48
Berechnungen im Vergleich zu nativen Funktionen ........................................................................... 49
Einfluss von Datentypen ..................................................................................................................... 49
Leistungstechniken ............................................................................................................................. 50
Teil 5 – Liegt es an den Unterschieden zwischen Desktop und Server? ................................................. 54
Allgemeine Richtlinien ........................................................................................................................ 54
4
Konfiguration ...................................................................................................................................... 54
Überwachen von Tableau Server ........................................................................................................ 55
Zwischenspeicherung .......................................................................................................................... 55
Teil 6 – Müssen andere Faktoren berücksichtigt werden? ..................................................................... 60
Umgebung ........................................................................................................................................... 60
Anhang A – Relationale und OLAP-Funktionen .......................................................................................... 61
5
Was ist Effizienz? Mehrere Faktoren machen eine Arbeitsmappe „effizient“. Einige dieser Faktoren sind technik- und
andere eher benutzerorientiert, aber im Allgemeinen zeichnet sich eine effiziente Arbeitsmappe durch
folgende Merkmale aus:
Eine Arbeitsmappe, die die „Prinzipien der visuellen Analyse“ so nutzt, dass die Botschaft des
Autors und der Daten effizient vermittelt wird, möglicherweise durch Einbindung der Benutzer in
eine interaktive Erfahrung.
Eine Arbeitsmappe, die schnell reagiert. Dies kann ein etwas subjektiver Blickwinkel sein, aber im
Allgemeinen soll die Arbeitsmappe innerhalb weniger Sekunden eine erste Anzeige von Daten
bieten und auf Benutzereingaben reagieren.
Der erste Abschnitt dieses Dokuments konzentriert sich auf den ersten Punkt, also den Entwurf einer
Arbeitsmappe. Der zweite Abschnitt befasst sich mit den Faktoren, die die Leistung einer Arbeitsmappe
beeinflussen. Sie werden sehen, dass viele Faktoren zur Leistung einer Arbeitsmappe beitragen:
Die Datenverbindung
Die Abfrage
Die Berechnungen
Das Visualisierungs-Design
Einige Unterschiede zwischen Tableau Desktop und Server.
Warum befassen wir uns damit? Aufgrund unserer umfassenden Erfahrung haben wir festgestellt, dass die meisten Leistungsprobleme
durch die Arbeitsmappe bedingt sind. Wenn wir dies beheben (oder noch besser durch Schulung
vermeiden) und optimale, effiziente Arbeitsmappen vorbereiten, sind auch die Probleme behoben.
Grundprinzipien Bevor wir uns in technische Details vertiefen, um aufzuzeigen, wie die verschiedenen Funktionen die
Leistung von Arbeitsmappen beeinflussen, gibt es drei weitgefasste Prinzipien, die Ihnen beim
Entwerfen effizienter Dashboards und Ansichten helfen werden:
Immer maßhalten!
Hier gilt die gleiche Regel wie allgemein im Leben: zu viel des Guten kann schlecht sein. Versuchen Sie nicht,
absolut alles in einer einzigen, monolithischen Arbeitsmappe unterzubringen. Eine Tableau-Arbeitsmappe kann
zwar 50 Dashboards umfassen, die jeweils wieder 20 Diagrammobjekte haben und mit 50 verschiedenen
Datenquellen verbunden sind. Aber Sie können sicher sein, dass sie sehr langsam funktionieren wird.
Wenn Sie eine solche Arbeitsmappe haben, sollten Sie sie in mehrere separate Dateien aufteilen. Dies ist in
8.1 wesentlich einfacher zu bewerkstelligen, weil Sie jetzt Dashboards von einer Arbeitsmappe in eine andere
kopieren können. Wenn Ihre Dashboards zu komplex sind, vereinfachen Sie sie mithilfe von Interaktionen, die
den Benutzer von Ansicht zu Ansicht führen. Vergessen Sie nicht, dass der Preis für unsere Software von der
Anzahl der Dokumente unabhängig ist, also breiten Sie die Daten ruhig ein wenig aus.
6
Wenn es in der Datenbank nicht schnell geht, dann geht es auch in Tableau nicht schnell.
Wenn Ihre Tableau-Arbeitsmappe auf einer Abfrage basiert, die unabhängig vom unterbreitenden Tool
langsam abläuft, wird auch Ihre Arbeitsmappe langsam sein.
In den folgenden Abschnitten finden Sie Tuning-Tipps für Ihre Datenbanken, damit Abfragen schneller
ablaufen. Außerdem wird erörtert, wie die schnelle Daten-Engine von Tableau eingesetzt werden kann,
um die Abfrageleistung zu verbessern.
Wenn sie in Tableau Desktop nicht schnell ist, dann ist sie auch in Tableau Server nicht schnell.
Eine Arbeitsmappe, die in Tableau Desktop langsam abläuft, wird durch die Veröffentlichung in Tableau
Server nicht schneller. Arbeitsmappen sind auf Tableau Server im Allgemeinen sogar etwas langsamer.
Erstens, weil mehrere Benutzer die Server-Ressourcen gemeinsam nutzen, um gleichzeitig
Arbeitsmappen zu generieren, und zweitens, weil der Server die Dashboards und Diagramme rendern
muss. Dies findet nicht auf der Client-Workstation statt.
Die Ausnahme von dieser Regel liegt dann vor, wenn Tableau Desktop begrenzte Ressourcen hat und
der Server nicht, etwa mehr RAM zur Verarbeitung der zu analysierenden Datenmengen. Bei einigen
Benutzern treten geringe Leistung oder sogar die Fehlermeldung „Nicht genügend Arbeitsspeicher“ auf,
wenn sie auf ihrer Workstation mit einem Datensatz und nur 2 GB RAM arbeiten, jedoch feststellen,
dass die veröffentlichte Arbeitsmappe mit akzeptabler Geschwindigkeit funktioniert, weil der Server
über viel mehr Speicher und Verarbeitungsleistung verfügt.
7
Teil 1 – Liegt es am Aufbau der Arbeitsmappe? Das Arbeiten mit Tableau ist für viele Benutzer eine neue Erfahrung. Für die Erstellung effizienter
Arbeitsmappen gibt es Techniken und bewährte Verfahrensweisen, die erlernt werden können. Wir
haben jedoch beobachtet, dass viele Benutzer versuchen, alte Konzepte in Tableau anzuwenden, und
dann langweilige Ergebnisse erhalten. In diesem Dokument sollen bewährte Verfahrensweisen für eine
neue Kategorie der Geschäftsdatenanalyse und eine neue Kategorie von Datenanalyse-Tools entwickelt
und gefördert werden.
Wofür ist Tableau gut? Bei Tableau Software versuchen wir zu verändern, wie die Menschen Daten sehen, wie sie mit ihnen
interagieren und sie verstehen. Deshalb versuchen wir nicht, die gleiche Erfahrung zu liefern wie
traditionelle BI-Unternehmensplattformen. Tableau ist am besten zum Erstellen von Arbeitsmappen
geeignet, die die folgenden Merkmale aufweisen:
Visuell – eine große Zahl von Untersuchungen belegen, dass der Mensch große, komplexe
Datenvolumen auf effizienteste Weise über eine visuelle Darstellung versteht. Tableau
präsentiert Daten vor allem über Diagramme, Grafiken und Dashboards. Tabellen und
Kreuztabellen haben ihren eigenen Platz (und werden unterstützt). Wir werden uns später damit
befassen, wie sie am besten einzusetzen sind.
Interaktiv – Tableau-Dokumente sind vorwiegend für die interaktive Präsentation konzipiert,
entweder auf dem Desktop, über das Web oder über ein Mobilgerät. Andere BI-Tools
produzieren vor allem gedruckte Dokumente (entweder tatsächlich auf Papier oder in Form einer
PDF-Datei). Bei Tableau liegt der Fokus auf der Gestaltung reichhaltiger, interaktiver Erfahrungen,
mit deren Hilfe der Benutzer Daten untersuchen kann und außerdem durch geschäftsbezogene
Fragestellungen begleitet wird.
Iterativ – Das Entdecken ist ein von Natur aus zyklischer Prozess. Tableau ist so konzipiert, dass der
Zyklus Frage-Einsicht-Frage beschleunigt wird, sodass die Benutzer schnell eine Hypothese entwickeln,
sie mit verfügbaren Daten testen, die Hypothese überarbeiten, sie erneut testen können usw.
Schnell – BI-Prozesse waren bisher langsam. Langsam beim Installieren und Konfigurieren der
Software, langsam beim Bereitstellen der Daten für die Analyse und langsam beim Konzipieren
und Implementieren von Dokumenten, Berichten, Dashboards usw. Mit Tableau können die
Benutzer ihre Dokumente schneller als je zuvor erstellen. In vielen Fällen wird die Produktion
einer Antwort von Monaten oder Wochen auf Stunden oder Minuten verkürzt.
Einfach – Traditionelle BI-Tools für Unternehmen übersteigen häufig die Kompetenzen der
meisten Geschäftsanwender, entweder aufgrund der Kosten oder aufgrund ihrer komplexen
Struktur. In vielen Fällen benötigen die Benutzer die Unterstützung der IT-Abteilung oder eines
Power-Benutzers, der ihnen beim Erstellen der Abfragen und gewünschten Dokumente hilft.
Tableau bietet eine intuitive Schnittstelle für Nicht-Techniker, um komplexe Daten abzufragen
und zu analysieren, ohne Experte für Datenbanken oder Tabellenkalkulation werden zu müssen.
Schön – Man sagt, die Schönheit läge in den Augen des Betrachters, aber bei der visuellen
Kommunikation gibt es bewährte Verfahrensweisen, die befolgt werden sollten. Durch
Funktionen wie „Zeig es mir!“ begleitet Tableau nicht-technische Benutzer beim Erstellen
effizienter, verständlicher Diagramme auf der Grundlage der verwendeten Daten.
8
Allgegenwärtig – Die Benutzer erstellen Dokumente nicht mehr nur für eine Ausgabeplattform.
Sie müssen Daten auf unterschiedliche Weise anzeigen und mit ihnen interagieren können: auf
ihren Desktops, über das Web, auf mobilen Geräten, eingebettet in andere Anwendungen und
Dokumente usw. Mit Tableau kann ein einzelnes Dokument veröffentlicht und dann ohne
Portierung oder Umformatierung auf all diesen Plattformen benutzt werden.
Wofür ist Tableau nicht so gut? Tableau ist ein reichhaltiges und leistungsstarkes Tool, man muss jedoch von vornherein verstehen, dass
es für bestimmte Probleme möglicherweise nicht die beste Lösung ist. Das bedeutet nicht, dass es diese
Dinge nicht bewerkstelligen kann: Tableau kann für viele Aufgaben eingesetzt werden, für die es
ursprünglich nicht konzipiert wurde. Es bedeutet hingegen, dass Tableau nicht für die Lösung dieser Art
von Problemen entwickelt wurde, dass möglicherweise das Verhältnis von Aufwand zu Ergebnis
ungünstig ausfällt und die resultierende Lösung eventuell nicht gut funktioniert oder nicht flexibel ist.
Überprüfen Sie Ihre Anforderungen, oder ziehen Sie einen anderen Ansatz in Betracht, falls Folgendes zutrifft:
Sie benötigen ein Dokument, das für die Papierausgabe, nicht für den Bildschirm konzipiert
wurde. Sie müssen beispielsweise ein komplexes Seitenlayout steuern, mit Funktionen wie
Kopfzeilen/Fußzeilen für Seiten, Abschnitte und Gruppen oder präzise WYSIWYG- Formatierung.
Tableau kann mehrseitige Berichte produzieren, bietet allerdings nicht die
Formatierungskontrolle, die in spezifischen Tools für fortlaufende Berichte verfügbar sind.
Sie benötigen einen komplexen Push-Mechanismus für personalisierte Dokumente (sogenanntes
„Bursting“), die über verschiedene Bereitstellungsmodi versendet werden. Tableau kann für
Push-Delivery-Systeme eingesetzt werden, jedoch ist dies keine eigentliche Funktion von
Tableau. Es erfordert die Entwicklung einer spezifischen Lösung mithilfe des Dienstprogramms
TABCMD. Mit Tableau 8 wurde das Konzept der Bericht-Abonnements eingeführt, dies ist jedoch
ein benutzerorientiertes Pull-Modell im Gegensatz zum Bericht-Bursting.
Für den Reader geht es primär darum, Daten in ein anderes Format zu exportieren (häufig eine
CSV- oder Excel-Datei). Dies erfordert häufig einen Bericht in Tabellenform mit vielen Zeilen und
detaillierten Daten. Zur Klarstellung: Bei Tableau können die Benutzer Daten aus einer Ansicht
oder einem Dashboard nach Excel exportieren, entweder auf der Zusammenfassungs- oder der
Detailebene. Wenn es allerdings primär um das Exportieren geht, ist dies nur ein zweitrangiger
Ersatz für den ETL-Prozess (Extrahieren, Transformieren, Loading). Es gibt viel effizientere
Lösungen als ein Berichtstool, um dies zu erreichen.
Sie benötigen hochkomplexe Dokumente in Kreuztabellenform, die möglicherweise vorhandene
Tabellenkalkulationsberichte mit komplexen Zwischensummen und Verweisen usw.
widerspiegeln. Häufig auftretende Beispiele sind Finanzberichte wie GuV, Bilanz usw. Außerdem
kann eine Szenario-Modellierung, eine Was-wäre-wenn-Analyse und sogar das Zurückschreiben
von Annahmedaten erforderlich sein. Wenn die zugrunde liegenden granularen Daten nicht
verfügbar sind oder wenn die Berichtslogik auf Zellenverweisen basiert und nicht auf der
Zusammenfassung von Datensätzen in Gesamtsummen, kann es besser sein, für diese Berichtsart
mit der Tabellenkalkulation fortzufahren.
9
Design-Ansätze – „schlecht“ im Gegensatz zu „gut“ Mit Tableau erstellen Sie eine interaktive Erfahrung für Ihre Benutzer. Das Endergebnis von Tableau
Server ist eine interaktive Anwendung, mit deren Hilfe die Benutzer die Daten erforschen können,
anstatt sie nur zu betrachten. Um ein effizientes Tableau-Dashboard zu erstellen, müssen Sie also
aufhören, in den Bahnen der Entwicklung eines statischen Berichts denken.
Es folgt ein Beispiel für einen Dashboard-Typ, der bei vielen neuen Autoren vorkommt, insbesondere,
wenn sie zuvor mit Excel oder Access oder mit „traditionellen“ Berichtstools gearbeitet haben. Sehen Sie
sich den folgenden Tabellenbericht an, der „alles“ plus eine Serie von Filtern enthält, mit deren Hilfe der
Benutzer die Tabelle verfeinern kann, bis sie diejenigen Datensätze enthält, die ihn interessieren:
Dies ist kein „gutes“ Tableau-Dashboard (eigentlich ist es überhaupt kein „gutes“ Dashboard). Vielleicht
ist es eher ein verbessertes Verfahren zum Extrahieren von Daten, weil der Benutzer die Daten in ein
anderes Tool wie Excel übertragen möchte, um sie weiter zu analysieren und Diagramme zu erstellen.
Vielleicht weist es auch gerade darauf hin, dass gar nicht bekannt ist, wie der Benutzer letztendlich die
Daten untersuchen möchte. Der Ansatz ist also: „Ausgehend von den Anfangskriterien sehen Sie hier
alles ... Und hier haben Sie einige Filterobjekte, damit Sie den Ergebnisdatensatz verfeinern und
letztendlich finden können, was sie eigentlich suchen.“
Jetzt schauen Sie sich die folgende Aufarbeitung an, bei der es sich um genau die gleichen Daten
handelt. Hier beginnen Sie mit der höchsten Aggregationsebene:
10
Wenn Sie eines oder mehrere Elemente auswählen, wird die nächste Detailebene angezeigt:
Wenn Sie fortfahren, werden jedes Mal mehr Details angezeigt:
Bis Sie schließlich auf der letzten Ebene angelangt sind. Die gleichen Daten, die oben im Kreuztabellen-
Dashboard gezeigt wurden.
11
Konzentrieren Sie sich nicht auf die Präsentation der Daten (das ist wichtig, aber darauf gehen wir später
näher ein). Denken Sie stattdessen an die Erfahrung bei der Benutzung dieses Dashboards. Beachten Sie,
wie es an einem natürlichen Pfad entlang fließt, von links nach rechts, von oben nach unten. Diesem
Beispiel können sehr viele Daten zugrunde liegen, aber das Dashboard führt den Endbenutzer
stufenweise zu weiteren Detailebenen, bis er schließlich die gesuchten Detaildaten findet.
Der wesentliche Unterschied zwischen diesen beiden Beispielen liegt darin, wie sie den Endbenutzer
durch den analytischen Prozess führen. Das erste Beispiel beginnt breit (es werden so viele Datensätze
gezeigt, wie man anschauen kann), dann reduziert der Endbenutzer die Anzahl der angezeigten
Datensätze, indem er Filter anwendet. Diese Technik birgt jedoch Probleme in sich:
Die ursprüngliche Abfrage, die ausgeführt werden muss, bevor dem Endbenutzer alles gezeigt
wird, ist möglicherweise die größte Abfrage, die sie stellen können: „Gib mir alle Datensätze“. Bei
einem realistischen Datensatz nimmt die Ausführung und Rücksendung zur Tableau-Engine
wahrscheinlich geraume Zeit in Anspruch. Der „erste Eindruck“ ist wichtig für die Wahrnehmung
der Lösung durch den Endbenutzer. Wenn es länger als ein paar Sekunden dauert, bevor etwas
geschieht, ist die Wahrnehmung gleich negativ.
Eine Ansicht mit hunderttausenden oder Millionen von Zellen zu erstellen (jede Zelle in einer
Kreuztabelle wird als „Markierung“ bezeichnet), erfordert sehr viel Prozessorleistung und
Arbeitsspeicher. Es erfordert auch Zeit, was die negative Wahrnehmung der Systemreaktion noch
verstärkt. Wenn zahlreiche Personen auf Tableau Server große Kreuztabellen generieren, kann
die Leistung sinken und das System hat im schlimmsten Fall keinen Speicher mehr. Dies gilt
technisch als „eine schlechte Sache“ und kann den Server destabilisieren, Fehler verursachen und
12
dem Endbenutzer unangenehme Erfahrungen bescheren. Natürlich können Sie auf dem Server
mehr Speicher hinzufügen, um diese Auswirkungen zu minimieren, aber damit wird das Symptom
behandelt, nicht die Ursache.
Schließlich wird den Benutzern nicht kontextbezogen klargemacht, ob die anfänglich verfügbaren
Filter zu weit oder zu eng gefasst sind. Wie soll der Benutzer eines Berichts wissen, dass
zehntausende Datensätze zurückgegeben werden, wenn alle verfügbaren Kategorien aktiviert
werden und so der gesamte verfügbare Arbeitsspeicher auf dem Server erschöpft wird? Das
wissen sie erst nach der schmerzlichen Erfahrung.
Betrachten Sie im Gegensatz dazu den zweiten Ansatz, wo die erste Abfrage nur die höchste
Aggregationsebene anzeigt:
Die anfänglich auszuführende Abfrage ist hochgradig aggregiert und gibt somit nur einige wenige
Datensätze zurück. Bei einer gut aufgebauten Datenbank ist dies ein sehr effizienter Vorgang,
somit ist die Reaktionszeit beim „ersten Eindruck“ sehr kurz und hat eine positive
Systemwahrnehmung zur Folge. Die folgenden detaillierteren Ebenen sind sowohl aggregiert als
auch eingeschränkt durch die Auswahl auf der höheren Ebene. Sie lassen sich weiterhin schnell
ausführen und liefern die Daten schnell an die Tableau-Engine zurück.
Wenn das Dashboard vollständig ist, haben Sie zwar mehr Ansichten, jedoch enthält jede Ansicht
nur einige Dutzend Zellen. Die zum Generieren dieser Ansichten erforderlichen Ressourcen sind
vernachlässigbar, auch wenn viele Endbenutzer im System aktiv sind, und die Wahrscheinlichkeit,
dass der Systemspeicher unzureichend ist, bleibt gering.
Schließlich können Sie sehen, dass für die höheren „Navigationsebenen“ die Umsätze der
einzelnen Kategorien gezeigt werden. Dies vermittelt dem Benutzer einen Kontext, aus dem
ersichtlich ist, ob diese Auswahl viele oder wenige Datensätze enthält. Außerdem wurden Farben
verwendet, um auf die Wirtschaftlichkeit der einzelnen Kategorien hinzuweisen. Dies gewinnt
insofern an Bedeutung, als der Benutzer nun sieht, welche spezifischen Bereiche Aufmerksamkeit
erfordern, anstatt nur blind zu navigieren.
13
Teil 2 – Liegt es an der Datenverbindung? Eine der leistungsstärksten Funktionen von Tableau ist die Fähigkeit, Daten aus verschiedenen Plattformen zu
verbinden. Allgemein ausgedrückt, können diese Plattformen die folgenden Merkmale aufweisen:
Dateibasierte Datenquellen
Relationale Datenquellen
OLAP-Datenquellen
Webbasierte Datenquellen
Jeder Datenquellentyp hat seine eigenen Vor- und Nachteile und wird auf spezifische Weise behandelt.
Beachten Sie, dass in Tableau 8.2 die Unterstützung für Tableau Desktop auf Mac OS X eingeführt wird.
Anfangs wird die Palette der unterstützten Datenquellen auf Mac nicht die gleiche sein wie unter
Windows, denn wir arbeiten zwar daran, die Unterschiede zwischen den Plattformen zu minimieren,
jedoch kann es Fälle geben, wo einige Datenquellen nur auf einer Plattform unterstützt werden.
Dateien Diese Kategorie deckt alle dateibasierten Datenformate ab: Textdateien wie CSV, Excel-Tabellenblätter
und MS Access sind die bekanntesten. Geschäftsanwender verwenden häufig dieses Format, weil es ein
übliches Mittel ist, um Daten aus „verwalteten“ Datensätzen abzurufen, sei es durch Ausführen eines
Berichts oder mithilfe einer Abfrage-Extraktion.
Im Allgemeinen raten wir den Benutzern, diese Datenquellentypen in die schnelle Daten-Engine von Tableau
zu importieren. Dadurch werden die Abfragen schneller ausgeführt und die Datei zum Speichern der
Datenwerte wird kleiner. Wenn die Datei allerdings klein ist oder wenn Sie eine Liveverbindung zur Datei
benötigen, damit sich verändernde Daten sichtbar werden, können Sie eine direkte Verbindung herstellen.
In den meisten Fällen verwendet Tableau den Treiber Microsoft JET für die Verbindung mit diesen
Datenquellen, um Abfragen auszuführen und Daten zu extrahieren. Durch die Einschränkungen dieser
Schnittstellenebene werden Endbenutzer häufig mit den folgenden Problemen konfrontiert:
Der MS JET-Treiber weist Einschränkungen hinsichtlich Anzahl und Größe der Spalten auf, die
gelesen werden können. Gelesene Dateien dürfen nicht mehr als 255 Spalten haben und
Textfelder werden nach 255 Zeichen abgeschnitten. Im folgenden Forum-Thread werden diese
Einschränkungen diskutiert: http://community.tableausoftware.com/thread/109727
Da Textdateien und Excel-Tabellenblätter keine typisierten Datenquellen sind, scannt der MS JET-
Treiber die ersten N Zeilen der Datei, um zu ermitteln, welchen Datentyp die jeweilige Spalte enthält.
Manchmal ist es unzureichend, den in einem Quellfeld gespeicherten Datentyp korrekt zu identifizieren.
Es besteht beispielsweise die Möglichkeit, dass der Treiber nur Zahlenwerte sieht, der Datentyp als
„numerisch“ bestimmt wird, weiter unten in der Tabelle jedoch alphanumerische Einträge vorhanden
sind. Der folgende Artikel aus der Wissensdatenbank führt mehrere Behelfslösungen für dieses Problem
auf: http://kb.tableausoftware.com/articles/knowledgebase/tableau-does-not-correctly-recognize-
excel-columns
Der MS JET-Treiber unterstützt weder COUNT DISTINCT noch MEDIAN als Aggregationen. Bei
Verwendung einer Liveverbindung mit einer Dateidatenquelle sind diese Funktionen über die
14
Tableau Desktop-Schnittstelle nicht verfügbar. Die einfachste Behelfslösung besteht darin, die
Daten in die schnelle Daten-Engine von Tableau zu extrahieren, die diese Funktionen unterstützt.
Der MS JET-Treiber kann keine Dateien lesen, die größer als 4 GB sind. Dies ist zwar kein Problem
bei Excel- oder Access-Dateien, weil sie ähnliche Dateigrößenbeschränkungen aufweisen, kann
jedoch bei extrem großen Textdateien ein Problem darstellen. Als Gegenmaßnahme hat Tableau
in der Version 6.1 einen speziellen Text-Parser eingeführt. Damit können Textdateien ohne
Größenbeschränkung in die schnelle Daten-Engine von Tableau importiert werden. Allerdings
sollten Abfragen nicht direkt mit solchen Dateien durchgeführt werden, weil die Leistung
schauderhaft wäre. Sein Einsatz unterliegt allerdings auch Beschränkungen. Er sollte nämlich nur
für einfache Lesevorgänge in der Textdatei eingesetzt werden. Wenn Berechnungen oder Filter
angewendet werden sollen, verwendet der Importvorgang stattdessen den MS JET-Treiber.
In Tableau 8.2 wird eine neue Konnektorebene für Dateidatenquellen eingeführt, insbesondere für
Textdateien und Excel-Arbeitsmappen. Dieser neue Konnektor soll zum Teil die oben aufgeführten
Probleme mit Dateidatenquellen überwinden, aber auch Tableau Desktop für Mac OS X unterstützen.
Dieser neue Konnektor verwendet MS JET nicht, sodass die obigen Einschränkungen nicht zutreffen.
Es gibt jedoch einige Unterschiede:
Text Excel
Gewonnen Im Allgemeinen viel besseres Parsing Viel bessere Feldtyperkennung: mehr
Zeilen, bessere Logik Automatische Erkennung von
Begrenzungszeichen und Codeseite Bessere automatische Erkennung, ob
die Daten eine Kopfzeile haben Alle Daten-Engine-Funktionen, die JET
nicht enthält (COUNTD, MEDIAN, PERCENTILE, DATEPARSE, … )
E/A-Sätze Kombinierte Sätze Sekundenbruchteile als Datumswerte YYYYMMDD als Datum X% als Zahlen Mehr als 255 Spalten Textqualifiziererzeichen
(Anführungszeichen) Explizit landesspezifisches Parsing Funktioniert auf Mac
Im Allgemeinen viel besseres Parsing Viel bessere Feldtyperkennung: mehr
Zeilen, bessere Logik Automatische Erkennung, ob die Daten
eine Kopfzeile haben Bessere Feldnamen Alle Daten-Engine-Funktionen, die JET
nicht enthält (COUNTD, MEDIAN, PERCENTILE, DATEPARSE, … )
E/A-Sätze Kombinierte Sätze Mehr als 255 Spalten Parsing von Ganzzahlenspalten als
Ganzzahlen anstatt als DOUBLE Parsing von Datumsspalten ohne Zeit als
Datum, anstelle von Datum und Uhrzeit Tabellenblätter mit einfachen
Anführungszeichen funktionieren jetzt (Beispiel für einen nicht wirklich nützlichen Gewinn)
Funktioniert auf Mac Verloren JET SQL – RAWSQL und
benutzerdefinierte SQL Dateiformate mit fester Breite in
schema.ini Rechtsverknüpfungen und volle
Verknüpfungen Nicht gleichwertige Verknüpfungen
JET SQL – RAWSQL und benutzerdefinierte SQL
Unterstützung für Dateien aus Excel 3 und 4 und 5
Unterstützung für XLSB Rechtsverknüpfungen und volle
Verknüpfungen Nicht gleichwertige Verknüpfungen
15
Für Benutzer, die Tableau auf Windows ausführen, besteht die Option, zum herkömmlichen Konnektor
auf MS JET-Basis zurückzukehren. Diese Option ist allerdings nicht verfügbar für Benutzer, die Tableau
auf Mac ausführen.
Relational Relationale Datenquellen sind die häufigste Datenquellenform für Tableau-Benutzer und Tableau bietet
native Treiber für eine breite Palette von Plattformen. Diese können zeilen- oder spaltenbasiert, personen-
oder unternehmensbezogen sein und über native Treiber bzw. generisches ODBC einbezogen werden. Diese
Kategorie umfasst technisch gesehen MapReduce-Datenquellen, weil diese über SQL-Zugriffsebenen wie
Hive oder Impala einbezogen werden, jedoch werden wir weiter unten näher darauf eingehen.
Es gibt viele interne Faktoren, die die Abfragegeschwindigkeit in einer RDBMS beeinflussen. Die
Änderung oder Feinabstimmung dieser Datenbanken erfordert in der Regel die Unterstützung durch
Ihren DBA, kann jedoch signifikante Leistungsverbesserungen erbringen.
Indizes
Die korrekte Indizierung Ihrer Datenbank ist wesentlich für eine gute Abfrageleistung:
Vergewissern Sie sich, dass für alle an Tabellenverknüpfungen beteiligten Spalten Indizes
vorhanden sind.
Vergewissern Sie sich, dass für alle Spalten innerhalb von Tableau Indizes vorhanden sind, die in
einem FILTER verwendet werden.
Berücksichtigen Sie, dass die Benutzung diskreter Datumsfilter in einigen Datenbanken zur Folge
haben kann, dass Abfragen die Indizes von Date- und DateTime-Spalten nicht verwenden. Im
Abschnitt über Filter wird noch näher darauf eingegangen: Durch einen Datumsbereichsfilter
wird sichergestellt, dass der Datumsindex verwendet wird. Beispiel: anstatt
YEAR([DateDim])=2010 zu verwenden, drücken Sie den Filter wie folgt aus: [DateDim] >=
#2010-01-01# and [DateDim] <= #2010-12-31#).
Vergewissern Sie sich, dass die Statistiken für Ihre Daten aktiviert sind, damit der
Abfrageoptimierer Abfragepläne von hoher Qualität erstellen kann.
Viele DBMS-Umgebungen verwenden Management-Tools, die eine Abfrage untersuchen und
hilfreiche Indizes empfehlen.
Referenzielle Integrität
Mit Informationen über die referenzielle Integrität kann Tableau erkennen, welche Beziehungen
zwischen Daten in mehreren Tabellen bestehen. Wenn dies korrekt konfiguriert ist, kann Tableau besser
effiziente Abfragen aufbauen:
Sofern möglich, müssen für alle Tabellen EXPLIZIT PRIMÄRSCHLÜSSEL definiert werden.
Definieren Sie EXPLIZIT sämtliche FREMDSCHLÜSSEL-Beziehungen. Auf diese Weise kann Tableau
viele Integritätsprüfungen umgehen, weil es weiß, dass die Datenbank diese Überprüfung durchführt.
Partitionierung
Die Partitionierung einer Datenbank verbessert deren Leistung, weil eine große Tabelle in kleinere,
individuelle Tabellen (genannt „Partitionen“ oder „Shards“) aufgeteilt wird. Das bedeutet, dass Abfragen
16
schneller ablaufen können, weil weniger Daten zu durchsuchen sind und/oder mehr Laufwerke zur
Bedienung der E/A-Vorgänge verfügbar sind. Die Partitionierung ist eine empfohlene Strategie für große
Datenvolumen und für Tableau transparent.
Die Partitionierung funktioniert gut für Tableau, wenn sie über eine Dimension durchgeführt wird – zum
Beispiel Zeit, Region, Kategorie usw. –, nach der häufig gefiltert wird, sodass einzelne Abfragen nur
Datensätze innerhalb einer Partition zu lesen brauchen.
Achten Sie darauf, dass bei einigen Datenbanken Datumsbereichsfilter (keine diskreten Filter)
erforderlich sind, um sicherzustellen, dass die Partitionsindizes korrekt verwendet werden. Andernfalls
wird ein vollständiger Tabellenscan mit extrem schlechter Leistung durchgeführt.
NULL-Werte
Wenn NULL-Werte in Dimensionsspalten vorhanden sind, kann in vielen Datenbanken die Effizienz von
Indizes reduziert werden. Soweit möglich, sollten Sie Ihre Dimensionsspalten als NOT NULL definieren.
Berechnungen
In Tableau werden berechnete Felder als Teil der Abfrage ausgedrückt, die zur Verarbeitung an die
Datenbank weitergegeben wird. Falls Sie sehr komplexe Berechnungen haben, besteht die Möglichkeit,
dass die generierte SQL nicht die optimale Form hat und verbessert werden könnte.
In diesen Situationen können Sie entweder eine benutzerdefinierte SQL-Anweisung erstellen, um den
Ausdruck manuell zu verfeinern (dies birgt allerdings eigene Herausforderungen, die wir weiter unten
diskutieren werden), oder Sie können den Ausdruck in eine Ansicht oder Funktion innerhalb der
Datenbank implementieren.
Benutzerdefinierte SQL
Die Fähigkeit, eine Datenverbindung aufgrund einer Reihe benutzerdefinierter SQL-Anweisungen zu erstellen,
kann sehr leistungsstark sein, bringt allerdings diverse Leistungseinschränkungen mit sich. Im Gegensatz zu
Einzel- oder Mehrfachtabellen ist die benutzerdefinierte SQL nie dekonstruiert und wird immer atomisch
ausgeführt. So kommt es zu Situationen, in denen die Datenbank zur Verarbeitung aufgefordert wird:
SELECT SUM([TableauSQL].[Sales])
FROM (
SELECT [OrdersFact].[Order ID] AS [Order ID],
[OrdersFact].[Date ID] AS [Date ID],
[OrdersFact].[Customer ID] AS [Customer ID],
[OrdersFact].[Place ID] AS [Place ID],
[OrdersFact].[Product ID] AS [Product ID],
[OrdersFact].[Delivery ID] AS [Delivery ID],
[OrdersFact].[Discount] AS [Discount],
[OrdersFact].[Cost] AS [Cost],
[OrdersFact].[Sales] AS [Sales],
[OrdersFact].[Qty] AS [Qty],
[OrdersFact].[Profit] AS [Profit]
FROM [dbo].[OrdersFact] [OrdersFact]
) [TableauSQL]
HAVING (COUNT_BIG(1) > 0)
17
Es empfiehlt sich, benutzerdefinierte SQL in Verbindung mit der schnellen Daten-Engine von Tableau zu
verwenden. Auf diese Weise wird die atomische Abfrage nur einmal ausgeführt (zum Laden der Daten in
den Datenextrakt) und sämtliche nachfolgenden Analysen in Tableau werden mithilfe dynamischer,
optimierter Abfragen im Datenextrakt ausgeführt. Im folgenden Abschnitt über Kontextfilter wird eine
alternative Technik beschrieben, um die Datenbank zu zwingen, die Ergebnisse der benutzerdefinierten
SQL in einer temporären Tabelle zu materialisieren.
Seit Tableau 8 ist es möglich, in benutzerdefinierter SQL Parameter zu verwenden. Dies verbessert in
einigen Fällen die Leistung von Liveverbindungen, weil die Basisabfrage dynamischer sein kann (z. B.
werden Filterklauseln, die Parameter verwenden, entsprechend bewertet). Dies kann auch verwendet
werden, um Werte für Leistungsbegrenzer zu übergeben, wie etwa TOP oder SAMPLE, um die von der
Datenbank zurückgegebene Datenmenge einzuschränken. Beachten Sie jedoch, dass Parameter nur
verwendet werden können, um literale Werte zu übergeben. Sie können also nicht verwendet werden,
um die SELECT- oder FROM-Klauseln dynamisch zu ändern.
Zusammenfassungstabellen
Wenn Sie sehr große, detaillierte Datensätze haben, die Sie normalerweise beim Abfragen
zusammenfassen (wenn Sie z. B. einzelne Transaktionen speichern, die Daten jedoch nach Tagen,
Regionen, Kunden, Produkten usw. zusammenfassen), sollten Sie die Möglichkeit in Betracht ziehen,
eine Zusammenfassungstabelle zu erstellen und Tableau mit dieser arbeiten zu lassen, damit die
Abfragen schneller ausgeführt werden.
Hinweis: Sie können Tableau-Datenextraktionen verwenden, um ein ähnliches Ergebnis zu erzielen, indem Sie
einen aggregierten Datenextrakt erstellen. Detailliertere Hinweise finden Sie im Abschnitt über Extrakte.
Gespeicherte Prozeduren
In Tableau 8.1 wurde die Unterstützung von gespeicherten Prozeduren in Sybase ASE, SQL Server und
Teradata hinzugefügt. Wenn Sie eine hochkomplexe Logik implementieren müssen (z. B. auf der
Grundlage von Benutzereingaben), kann dies eine effiziente Alternative zu benutzerdefinierter SQL sein.
Wenn Sie gespeicherte Prozeduren benutzen, um eine Datenquelle für Tableau zu definieren, bedenken
Sie Folgendes:
Wenn eine gespeicherte Prozedur mehr als einen Ergebnissatz zurückgibt, liest Tableau den
ersten und ignoriert den Rest.
Wenn eine gespeicherte Prozedur Ausgabeparameter hat, filtert Tableau die gespeicherte
Prozedur heraus, sodass sie im Dialogfeld „Verbindung“ nicht aufgeführt wird.
Gespeicherte Prozeduren, die Parameter eines nicht-skalaren Datentyps enthalten, werden
ausgeschlossen.
Ergebnissatzspalten ohne übereinstimmende Typen in Tableau (varbinary, geometry und hierarchyid)
werden protokolliert. Wenn alle Ergebnissatzspalten unbekannten Datentypen zugeordnet werden,
wird in Tableau die Meldung „Der Ergebnissatz ... hat keine verwendbaren Spalten“ angezeigt.
Gespeicherte Prozeduren, die keine Ergebnisse zurückgeben, werden im Dialogfeld „Verbindung“
aufgeführt, schlagen jedoch fehl, wenn sie ausgewählt werden.
Wenn für einen Parameter kein Wert angegeben wird, den die gespeicherte Prozedur benötigt, wird
ein Fehler gemeldet. Tableau kann nicht im Voraus ermitteln, ob Parameter erforderlich sind.
18
Tableau führt kein Transaktionsmanagement für gespeicherte Prozeduren aus. Autoren von
gespeicherten Prozeduren dürfen sich also nicht darauf verlassen, dass Tableau Transaktionen
startet, bevor es gespeicherte Prozeduren aufruft, oder dass es sie im Nachhinein festschreibt.
SQL-Anfangsdaten
Eine Alternative für benutzerdefinierte SQL (falls Ihre Datenquelle dies unterstützt) besteht darin, die
benutzerdefinierte SQL-Anweisung in einem SQL-Anfangsdaten-Block zu verwenden. Sie können dies
einsetzen, um eine temporäre Tabelle zu erstellen, die anschließend in Ihrer Abfrage die ausgewählte
Tabelle sein wird. Da die SQL-Anfangsdaten nur einmal ausgeführt werden, wenn die Arbeitsmappe
geöffnet wird (und nicht jedes Mal, wenn die Visualisierung für benutzerdefinierte SQL geändert wird),
kann dies die Leistung in einigen Fällen signifikant verbessern.
Hadoop In Tableau 8.1 gibt es drei unterstützte Hadoop-Distributionen (zusammen mit den unterstützten
Schnittstellen):
Cloudera Hadoop
Hive-Server
Impala
Beeswax Server
Beeswax Server und Kerberos
Hortonworks Hadoop Hive
HiveServer
HiveServer2
Hortonworks Hadoop Hive
MapR Hadoop Hive
HiveServer
HiveServer2
Hive agiert als SQL-Hadoop- Übersetzungsebene, die die Abfrage in MapReduce übersetzt, welche
anschließend mit HDFS-Daten ausgeführt wird. Impala führt die SQL-Anweisung direkt mit HDFS-Daten
aus (unter Umgehung von MapReduce). Impala ist im Allgemeinen viel schneller als Hive, obwohl dies
ein sich rasch änderndes Feld ist und neue Technologien wie Apache Shark (Hive-kompatibel konzipiert),
Hortonworks Stinger und andere die Unterschiede reduzieren oder eliminieren können.
Auch mit diesen zusätzlichen Komponenten reagiert Hadoop häufig nicht ausreichend schnell für
analytische Abfragen, etwa wie die von Tableau erstellten. Tableau-Datenextraktionen werden häufig
verwendet, um die Reaktionszeiten von Abfragen zu verbessern. Weitere Hinweise zu Extrakten und wie
sie mit „Big Data“ eingesetzt werden können, werden weiter unten diskutiert.
Detaillierte Hinweise zur Verbesserung der Leistung bei Verwendung von Hadoop-Datenquellen finden Sie hier:
http://kb.tableausoftware.com/articles/knowledgebase/hadoop-hive-performance
19
OLAP Tableau unterstützt mehrere OLAP-Datenquellen:
Microsoft Analysis Services
Microsoft PowerPivot (sowohl PowerPivot für Excel als auch PowerPivot für SharePoint)
Oracle Essbase
SAP BW
Teradata OLAP
Es gibt funktionelle Unterschiede bei Verbindungen zu OLAP- und relationalen Datenquellen aufgrund
der zugrunde liegenden Sprachunterschiede zwischen MDX/DAX und SQL. Unbedingt berücksichtigt
werden muss, dass beide in Tableau die gleiche Benutzerschnittstelle haben, die gleichen
Visualisierungen und die gleiche Ausdruckssprache für berechnete Kennzahlen. Die Unterschiede
beziehen sich hauptsächlich auf Metadaten (wie und wo sie definiert werden), auf Filterung, wie
Summen und Aggregationen funktionieren und wie die Datenquelle bei der Datenverschmelzung
verwendet werden kann.
Detaillierte Hinweise finden Sie im Anhang A.
Neu in Tableau 8.1: Sie können jetzt Daten aus SAP BW-Würfeln in die Daten-Engine von Tableau
extrahieren. Tableau ruft Blattebenenknoten ab (keine Daten von Drill-Through-Ebenen) und wandelt
sie in eine relationale Datenquelle um. Da bei der Umwandlung einer multidimensionalen in eine
relationale Datenquelle nicht alle Würfelstrukturen beibehalten werden, wird das freie Hin- und
Zurückwechseln zwischen Extrakt und Liveverbindung ohne Einfluss auf den Zustand Ihrer Visualisierung
für Würfelextrakte nicht unterstützt. Sie müssen eine Wahl treffen, bevor Sie Ihre Visualisierung
aufbauen. Sie brauchen allerdings nicht alles im Voraus zu entscheiden. Nach der Extraktion können Sie
zwischen Aliasoptionen (Schlüssel, Langname usw.) wechseln.
Cloud Tableau unterstützt derzeit die folgenden webbasierten Datenquellen:
Salesforce.com
Google Analytics
oData
Windows Azure Marketplace DataMarket
Diese erste Gruppe von Datenquellen liest eine Teilmenge von Datensätzen aus einem Webdienst und lädt
sie in eine Tableau-Datenextraktionsdatei. „Liveverbindung“ ist keine Option für diese Datenquellen. Die
Extraktdatei kann jedoch aktualisiert werden, um die darin enthaltenen Daten zu aktualisieren. Mit Tableau
Server kann dieser Aktualisierungsprozess automatisiert und terminiert werden.
Amazon Redshift
Google BigQuery
Microsoft SQL Server Azure (über den SQL Server-Treiber)
20
Dies sind zwar auch cloudbasierte Datenquellen, sie funktionieren jedoch wie eine relationale
Datenquelle und lassen sowohl Liveverbindungen als auch Extrakte zu.
Salesforce
Wenn Sie in Tableau eine Verbindung zu Salesforce herstellen, werden die Daten automatisch in eine
Tableau-Datenextraktionsdatei extrahiert. In einigen Fällen können bestimmte Felder aufgrund von
Zeichenbeschränkungen nicht extrahiert werden. Insbesondere Textfelder mit mehr als 4096 Zeichen
und berechnete Felder werden nicht in den Extrakt einbezogen. Wenn Ihre Daten berechnete Felder
enthalten, müssen Sie sie in Tableau erneut erstellen, nachdem Sie den Extrakt erstellt haben.
Außerdem schränkt die Force.com-API Abfragen auf insgesamt 10.000 Zeichen ein. Wenn Sie eine
Verbindung zu einer oder mehreren Tabellen herstellen, die sehr breit sind (viele Spalten mit potenziell
langen Spaltennamen), können Sie dieses Limit erreichen, wenn Sie versuchen, einen Extrakt zu
erstellen. In diesen Fällen sollten Sie weniger Spalten auswählen, damit die Größe der Abfrage reduziert
wird. In einigen Fällen kann Salesforce.com in der Lage sein, dieses Abfragelimit für Ihr Unternehmen zu
erhöhen. Weitere Informationen erhalten Sie von Ihrem Salesforce-Administrator.
Google Analytics
Google Analytics (GA) entnimmt Ihren Daten Stichproben, wenn ein Bericht eine große Anzahl Dimensionen
oder Daten enthält. Wenn Ihre Daten für eine bestimmte Webeigenschaft innerhalb eines vorgegebenen
Datumsbereichs 50.000 Besuche überschreitet (bei einem regulären GA-Account), aggregiert GA die
Ergebnisse und gibt eine Stichprobe dieser Daten zurück. Wenn GA eine Stichprobe dieser Daten an Tableau
zurückgegeben hat, zeigt Tableau rechts unten in der betreffenden Ansicht die folgende Meldung an:
„Google Analytics hat Stichprobendaten zurückgegeben. Stichproben werden erstellt, wenn die
Verbindung eine große Anzahl Dimensionen oder Daten enthält. Weitere Informationen zur Auswirkung
von Stichproben auf Ihre Berichtsergebnisse finden Sie in der Google Analytics-Dokumentation.“
Es ist wichtig zu wissen, wann die Stichproben aus Ihren Daten entnommen werden, weil die Aggregierung
bestimmter Stichprobendaten stark verzerrte und ungenaue Schlussfolgerungen verursachen kann.
Angenommen Sie aggregieren Stichprobendaten aus einer ungewöhnlichen Kategorie Ihrer Daten.
Schlussfolgerungen aus den aggregierten Stichprobendaten können verzerrt sein, weil die betreffende
Kategorie nur eine unzureichende Anzahl von Stichproben enthält. Zum Aufbau von GA-Ansichten, aus denen
Sie präzise Schlüsse über Ihre Daten ziehen können, müssen Sie sich vergewissern, dass die zu beurteilende
Kategorie ausreichend viele Daten enthält. Die empfohlene Mindestgröße für Stichproben ist 30.
Informationen über die Anpassung der GA-Stichprobengröße und weitere Hinweise zur GA-
Stichprobennahme finden Sie in der GA-Dokumentation:
https://support.google.com/analytics/answer/1042498?hl=de
Zur Vermeidung der Stichprobennahme gibt es zwei Ansätze:
Führen Sie mehrere GA-Berichte auf Sitzungs- oder Trefferebene aus, um die Daten in
Teilmengen ohne Stichproben aufzuteilen. Als Nächstes laden Sie die Daten in eine Excel-Datei
herunter und verwenden die Extrakt-Engine von Tableau, um Daten aus einer Datei
hinzuzufügen und die Daten wieder in einem Datensatz zusammenzufügen.
21
Ändern Sie Ihren GA-Vertrag in einen Premium-Account. Damit wird die Anzahl der Datensätze
erhöht, die in einen Bericht einbezogen werden können. Auf diese Weise ist es viel einfacher,
die Daten für die Analyse aufzuteilen. Für die Zukunft hat Google angekündigt, dass GA-
Premium-Kunden Ihre Daten von der Sitzungs- und Trefferebene in Google BigQuery exportieren
können, um sie weiter zu analysieren. Dieser Ansatz wäre sehr viel bequemer, weil Tableau eine
Liveverbindung zu BigQuery herstellen kann.
Beachten Sie schließlich, dass die API, die Tableau benutzt, um GA abzufragen, die Abfrage auf ein
Maximum von sieben Dimensionen und zehn Kennzahlen beschränkt.
Data Server Es ist zwar selbst keine Datenquelle, aber ein anderer Weg, um eine Verbindung zu Datenquellen
herzustellen: der Data Server von Tableau Server. Der Data Server unterstützt sowohl Liveverbindungen
als auch Datenextrakte und bietet mehrere Vorteile gegenüber eigenständigen Datenverbindungen:
Da die Metadaten zentral auf dem Tableau Server gespeichert werden, können sie von mehreren
Arbeitsmappen und mehreren Autoren/Analysten gemeinsam genutzt werden. Die
Arbeitsmappen enthalten einen Verweis auf die zentralisierte Metadatendefinition und jedes
Mal, wenn sie geöffnet werden, prüfen sie, ob Änderungen vorgenommen wurden. Ist dies der
Fall, wird der Benutzer aufgefordert, die in die Arbeitsmappe eingebettete Kopie zu aktualisieren.
Das bedeutet, dass Änderungen an der Geschäftslogik nur an einem Ort durchgeführt werden
müssen und anschließend an alle abhängigen Arbeitsmappen propagiert werden können.
Wenn es sich bei der Datenquelle um einen Datenextrakt handelt, kann dieser in verschiedenen
Arbeitsmappen verwendet werden. Ohne den Data Server würde jede Arbeitsmappe ihre eigene
lokale Kopie des Extrakts enthalten. Dadurch wird die Anzahl der redundanten Kopien reduziert,
was wiederum den auf dem Server erforderlichen Speicherplatz mindert und mehrfache
Aktualisierungsprozesse vermeidet.
Wenn es sich bei der Datenquelle um eine Liveverbindung handelt, brauchen die Treiber für die
Datenquelle nicht auf jedem Analysten-PC installiert zu werden, sondern nur auf dem Tableau
Server. Der Data Server agiert für Abfragen von Tableau Desktop wie ein Proxy.
Extrakte Bisher wurden Techniken zur Verbesserung der Leistung von Datenverbindungen erörtert, bei denen die
Daten im ursprünglichen Format bleiben. Sie werden als Livedatenverbindungen bezeichnet und
hinsichtlich Leistung und Funktionen besteht eine Abhängigkeit von der Quelldatenplattform. Zur
Verbesserung der Leistung bei Liveverbindungen ist es häufig erforderlich, Änderungen an der
Datenquelle vorzunehmen. Bei vielen Kunden ist dies einfach nicht möglich.
Eine für alle Benutzer verfügbare Alternative ist die Nutzung der schnellen Daten-Engine von Tableau,
um Daten aus dem Quelldatensystem in eine Tableau-Datenextraktion zu extrahieren. Dieser Extrakt ist:
Ein dauerhafter Datencache, der auf die Festplatte geschrieben wird und reproduzierbar ist
Ein Datenspeicher in Spalten – ein Format, in dem Daten für analytische Abfragen optimiert wurden
22
Während der Abfrage vollständig getrennt von der Datenbank Der Extrakt ist letztendlich ein
Ersatz für die Livedatenverbindung.
Aktualisierbar, entweder durch erneutes Generieren des Extrakts oder durch inkrementelles
Hinzufügen von Datenzeilen zu einem vorhandenen Extrakt
Architekturorientiert – Anders als die meisten speicherinternen Technologien ist diese nicht
durch die Größe des physisch verfügbaren RAM eingeschränkt.
Übertragbar – Extrakte werden als Dateien gespeichert, können also auf eine lokale Festplatte
kopiert und verwendet werden, wenn der Benutzer nicht mit dem Unternehmensnetzwerk
verbunden ist. Sie können auch verwendet werden, um Daten in Arbeitsmappenpakete
einzubetten, die zur Verwendung mit Tableau Reader weitergegeben werden.
Häufig viel schneller als die zugrunde liegende Livedatenverbindung
Tom Brown von The Information Lab hat einen ausgezeichneten Artikel geschrieben, indem er mehrere
Anwendungsfälle erläutert, in denen Extrakte von Vorteil sind (lesen Sie unbedingt auch die
Kommentare mit zusätzlichen Beispielen von anderen Benutzern):
http://www.theinformationlab.co.uk/2011/01/20/tableau-extracts-what-why-how-etc/
Hinweis: Extrakte sind kein Ersatz für ein Data Warehouse, eher eine Ergänzung. Sie können zwar verwendet
werden, um Daten im Laufe der Zeit zu sammeln und zu aggregieren (z. B. Daten in periodischen Zyklen
inkrementell hinzufügen). Dies sollte allerdings als taktische, nicht als langfristige Lösung eingesetzt werden.
Inkrementelle Aktualisierungen unterstützen keine Aktualisierungs- oder Löschaktionen an Datensätzen, die
bereits verarbeitet wurden. Solche Änderungen erfordern ein erneutes Laden des Extrakts.
Schließlich können Extrakte nicht über OLAP-Datenquellen wie SQL Server Analysis Services oder Oracle
Essbase erstellt werden. In Tableau 8.1 wurde allerdings die Möglichkeit eingeführt, Extrakte aus SAP
BW zu erstellen (siehe betreffenden Abschnitt weiter oben).
Einsatzmöglichkeiten für Extrakte Einsatzmöglichkeiten für Liveverbindungen
Extrakte haben wie viele andere Dinge ihren Einsatzzeitpunkt und Einsatzort. Es folgen einige Szenarios,
in denen Extrakte von Vorteil sein können:
Langwierige Abfrageausführung – Wenn Ihr Quelldatensystem die von Tableau Desktop generierten
Abfragen nur langsam verarbeitet, kann die Erstellung eines Extrakts eine einfache Möglichkeit sein, die
Leistung zu verbessern. Das Datenformat des Extrakts ist speziell für schnelle Reaktion auf analytische
Abfragen konzipiert. Sie können sich den Extrakt als einen Cachespeicher zur Abfragebeschleunigung
vorstellen. Bei einigen Verbindungstypen ist dies eine empfohlene bewährte Verfahrensweise (zum
Beispiel bei großen Textdateien, benutzerdefinierten SQL-Verbindungen), und einige Quellen
funktionieren ausschließlich mit diesem Modell (siehe Abschnitt über Cloud-Datenquellen).
Offline-Analyse – Wenn Sie mit Daten arbeiten müssen, während die ursprüngliche Datenquelle
nicht verfügbar ist (zum Beispiel wenn Sie von Ihrem Netzwerk getrennt sind, während Sie reisen
oder von zu Hause aus arbeiten). Datenextrakte werden als Datei gespeichert, die einfach auf ein
tragbares Gerät wie etwa einen Laptop kopiert werden können. Es ist einfach, zwischen einem
Extrakt und einer Liveverbindung hin- und herzuwechseln, falls Sie manchmal eine
Netzwerkverbindung haben und manchmal nicht.
23
Arbeitsmappenpakete für Tableau Reader/Online/Public – Wenn Sie beabsichtigen, Ihre
Arbeitsmappen für andere Benutzer freizugeben, die sie in Tableau wieder öffnen, oder wenn Sie
beabsichtigen, sie in Tableau Online oder Public zu veröffentlichen, müssen Sie die Daten in eine
Arbeitsmappenpaketdatei einbetten. Auch wenn die Arbeitsmappe Datenquellen verwendet, die
eingebettet werden können (zum Beispiel Dateidatenquellen), sind Datenextrakte für hohe
Datenkomprimierung konzipiert, sodass das Arbeitsmappenpaket wesentlich kleiner ist.
Zusätzliche Funktionen – Es gibt Funktionen in Tableau Desktop, die bei einigen Datenquellen
(zum Beispiel Dateidatenquellen über den MS JET-Treiber) nicht unterstützt werden (zum
Beispiel die Vorgänge median/count distinct/rank/percentile aggregations, set IN/OUT usw.). Die
Daten zu extrahieren, ist eine einfache Möglichkeit, diese Funktion zu aktivieren.
Datensicherheit – Wenn Sie eine Teilmenge der Daten von dem Quelldatensystem freigeben
möchten, können Sie einen Extrakt erstellen und diesen für andere Benutzer freigeben. Sie
können die einzubeziehenden Felder bzw. Spalten einschränken sowie aggregierte Daten
freigeben, bei denen Benutzer nur Zusammenfassungswerte sehen sollen, jedoch nicht die
individuellen Daten auf Datensatzebene.
Extrakte sind zwar leistungsstark, aber auch nicht die ideale Lösung für alle Probleme. Es gibt einige
Szenarien, für die Extrakte möglicherweise nicht geeignet sind:
Echtzeitdaten – Da Extrakte einen Datenschnappschuss zu einem bestimmten Zeitpunkt
darstellen, sind sie nicht geeignet, wenn Sie für Ihre Analyse Echtzeitdaten benötigen. Es ist
möglich, Extrakte mithilfe von Tableau Server automatisch zu aktualisieren. Viele Kunden tun
dies mehrmals am Tag, aber ein wahrer Echtzeitdatenzugriff erfordert eine Liveverbindung.
Riesige Datenmenge – Wenn das Datenvolumen, das Sie für Ihre Arbeit benötigen, riesig ist (die
Definition von „riesig“ variiert von Benutzer zu Benutzer, aber im Allgemeinen handelt es sich dabei
um Millionen bis Milliarden Datensätze), ist das Extrahieren möglicherweise nicht praktisch. Die
resultierende Extraktionsdatei kann extrem groß sein oder das Extraktionsverfahren kann sehr viele
Stunden in Anspruch nehmen. Beachten Sie, dass es für diese Richtlinie Ausnahmen gibt. Wenn Sie
einen massiven Quelldatensatz haben, jedoch mit einer gefilterten, auf Stichproben basierenden
und/oder aggregierten Teilmenge dieser Daten arbeiten, kann die Nutzung eines Extrakts
letztendlich eine gute Idee sein. Allgemein ausgedrückt, wurde die Extrakt-Engine von Tableau so
konzipiert, dass sie mit einigen 100 Millionen Datensätzen gut funktioniert, aber dies wird von der
Form und der Kardinalität ihrer Daten beeinflusst.
Pass-Through-RAWSQL-Funktionen – Wenn Ihre Arbeitsmappe Pass-Through-Funktionen
verwendet, funktionieren diese nicht mit einem Datenextrakt.
Robuste Sicherheit auf der Benutzerebene – Wenn Sie eine robust verstärkte Sicherheit auf
Benutzerebene benötigen, muss dies in der Datenquelle implementiert werden. Wenn Sie auf
der Benutzerebene Filter auf ihre Arbeitsmappe anwenden, können diese jederzeit von einem
Benutzer entfernt werden, sodass alle Daten im Extrakt zugänglich werden. Eine Ausnahme
dieser Richtlinie bildet ein Extrakt, der mit definierten Datenquellenfiltern auf Tableau Server
veröffentlicht wurde, wenn andere Benutzer über den Data Server auf diesen Extrakt zugreifen.
Hinweis: Sie müssen sicherstellen, dass die Download-Berechtigungen der Benutzer widerrufen
werden, damit sichergestellt ist, dass sie die erzwungenen Filter nicht umgehen können.
24
Extrakte erstellen
Dies ist einfach, sofern Sie Tableau Desktop verwenden. Nachdem Sie eine Verbindung zu Ihren Daten
hergestellt haben, wechseln Sie zum Menü „Daten“ und klicken auf „Daten extrahieren“ – anschließend
akzeptieren Sie die Standardwerte im Dialogfeld (Details dazu weiter unten). Tableau fragt Sie, ob Sie diesen
Extrakt speichern möchten. Wählen Sie einen beliebigen Speicherort für die Datei, obwohl Tableau Ihnen
„Eigenes Tableau-Repository | Datenquellen“ vorschlagen wird, was Sie natürlich akzeptieren können!
Warten Sie nun, bis der Extrakt erstellt ist. Wie lange Sie warten müssen, ist abhängig von der
verwendeten Datenbanktechnik, der Netzwerkgeschwindigkeit, den Datenvolumen usw. Es ist auch
abhängig von der Geschwindigkeit und der Ausstattung Ihrer Workstation, da das Erstellen eines
Extrakts speicher- und prozessorintensiv ist.
Den Abschluss des Vorgangs erkennen Sie daran, dass sich das Datenquellensymbol ändert: Es erscheint ein
anderes Datenbanksymbol dahinter. Es kennzeichnet eine „Kopie“, was ja auf einen Extrakt genau zutrifft.
Beachten Sie, dass die Ersterstellung eines Extrakts immer in Tableau Desktop oder über die
Datenextrakt-API ausgeführt wird und daher auf der Workstation erfolgt. Sie müssen sicherstellen, dass
Ihre Workstation für die Ausführung der Aufgabe ausgestattet ist. Die Extrakterstellung verwendet alle
Ressourcentypen – CPU, RAM, Plattenspeicher, Netzwerk-E/A –, und die Verarbeitung großer
Datenvolumen auf einem kleinen PC kann Fehler verursachen, falls eines der Elemente nicht
ausreichend vorhanden ist. Es wird empfohlen, große Extrakte auf einer geeigneten Workstation
auszuführen: schnelle Multicore-CPU, viel RAM, schnelle E/A usw.
Das Verfahren der Extrakterstellung erfordert temporären Plattenspeicher für die Arbeitsdateien – in
Tableau 8.1 und früher kann eine Speichermenge erforderlich sein, die bis zum Quadrat der
resultierenden Extraktdatei geht (ein Extrakt von 100 MB kann beispielsweise mehrere GB temporären
Plattenspeicher erfordern), aber in Tableau 8.2 wurde dies wesentlich reduziert, sodass das Verfahren
jetzt nur bis etwa doppelt so viel Platz benötigt wie die Größe der endgültigen Extraktdatei. Dieser
Arbeits-Plattenspeicher wird dem mit der Umgebungsvariable TEMP festgelegten Verzeichnis
25
zugewiesen (normalerweise C:\WINDOWS\TEMP oder C:\Users\USERNAME\AppData\Local\Temp). Wenn
dieses Laufwerk nicht über ausreichend Platz verfügt, legen Sie mithilfe der Umgebungsvariablen einen
größeren Speicherort fest.
Falls es nicht möglich sein sollte (oder einfach unpraktisch ist), ein Erstextraktverfahren auf einer
Workstation auszuführen, kann mit der folgenden Behelfslösung ein Leerextrakt erstellt werden, der
anschließend auf Tableau Server veröffentlicht wird. Erstellen Sie ein berechnetes Feld, das
DateTrunc(“minute”, now()) enthält. Fügen Sie es den Extraktfiltern hinzu und schließen Sie den
Einzelwert aus, den es anzeigt. Dabei müssen Sie schnell vorgehen, weil dieser Filter nach einer Minute
nicht mehr gültig ist. Falls Sie mehr Zeit benötigen, erweitern Sie einfach das Veröffentlichungsintervall
(runden Sie gegebenenfalls auf 5 oder 10 Minuten bzw. 1 Stunde auf). Damit wird ein leerer Extrakt auf
Ihrem Desktop erstellt. Wenn Sie auf dem Server veröffentlichen und den Aktualisierungsplan auslösen,
wird der vollständige Extrakt aufgefüllt, weil der ausgeschlossene Zeitstempel nicht mehr derselbe ist.
Extrakte aggregieren
Die Verwendung eines aggregierten Extrakts kann die Leistung immer verbessern. Selbst wenn Sie
Teradata oder Vertica mit riesigen Datenmengen verwenden, kann das Extrahieren von Daten zu einer
Verbesserung führen, sofern Sie die Daten in geeigneter Weise aggregieren und filtern. Zum Beispiel
können Sie die Daten filtern, wenn Sie nur an den neuesten Daten interessiert sind.
Sie können den Extrakt im Voraus definieren, indem Sie die gewünschten Felder auswählen und das
Kontrollkästchen „Daten für sichtbare Dimensionen aggregieren“ im Dialogfeld „Daten extrahieren“ in
Tableau Desktop aktivieren. Es besteht auch die Möglichkeit, nach Ausführen Ihrer Analyse und Aufbau
Ihres Dashboards, wenn Sie bereit zur Veröffentlichung sind, zum Dialogfeld „Daten extrahieren“ zu
wechseln und auf die Schaltfläche „Nicht verwendete Felder ausblenden“ zu klicken. Wenn Sie dann die
Daten extrahieren, ist nur das absolute Minimum erforderlich, um die Ansicht zu erstellen. Diese
26
Einstellung wird häufig für die Zusammenfassungsansicht verwendet. Auf einer anderen Seite der
Arbeitsmappe können Sie dann eine niedrigere Detailebene, jedoch einen größeren Extrakt verwenden.
Da Sie diese Daten gefiltert haben, sollte auch dieser Vorgang schnell ablaufen. Sie können diesen
Prozess laufen lassen, bis Sie mit dem Live-System am Backend verbunden sind. Live-Systeme sind gut
für die Identifizierung einer kleinen Zeilengruppe geeignet. In dieser Weise können Sie auf
verschiedenen Ebenen Zahlen kombinieren und anpassen sowie Aggregationen ziehen, um fast alle
Leistungsprobleme zu lösen und so schnell wie möglich zu Ergebnissen zu kommen. Da Tableau den
Arbeitsspeicher sehr effizient nutzt, ist die Verbesserung der Performance auf diese Weise in der Regel
relativ einfach und Sie können gleichzeitig mehrere Extrakte laufen lassen.
Sie können auch eine Teilmenge der Daten extrahieren. Dabei kann es sich um eine gefilterte Teilmenge
(beispielsweise die Daten eines Monats) oder eine zufällige Datenstichprobe handeln. Sie haben damit die
Möglichkeit, Ihre analytischen Inhalte zu erstellen. Wenn Sie bereit sind, die Leistungsfähigkeit von Tableau
auf die gesamte Datenmenge anzuwenden, deaktivieren Sie die Menüoption „Extrakt verwenden“.
27
Optimieren von Extrakten
Tableau Server optimiert nicht nur die physischen Spalten in der Datenbank, sondern auch die zusätzlichen
Spalten, die in Tableau erstellt werden. Diese Spalten umfassen die Ergebnisse von deterministischen
Berechnungen, beispielsweise Vorgänge mit Zeichenfolgen und Verkettungen, bei denen sich das Ergebnis
nie ändert, sowie Gruppen und Sätze. Die Ergebnisse von nicht-deterministischen Berechnungen,
beispielsweise jenen, die einen Parameter oder Aggregationen (wie „Summe“ oder „Mittelwert“)
einbeziehen und zur Laufzeit berechnet werden, können nicht gespeichert werden.
Es kann sein, dass ein Benutzer einen Extrakt aktualisiert, nachdem nur zwei Datenzeilen hinzugefügt
wurden, und feststellt, dass der Extrakt von 100 MB auf 120 MB gewachsen ist. Dieser Sprung ist auf die
Optimierung zurückzuführen. Dabei werden zusätzliche Spalten eingefügt, die berechnete Feldwerte
enthalten, weil es wirtschaftlicher ist, Daten auf der Festplatte zu speichern und nicht bei jedem Mal
neu zu berechnen, wenn sie benötigt werden.
Worauf Sie achten müssen: Wenn Sie mehrere Kopien einer Verbindung mit einem Datenextrakt herstellen,
müssen Sie sicherstellen, dass alle berechneten Felder in der Verbindung enthalten sind, die Sie für die
Optionen „Optimieren“ oder „Aktualisieren“ auswählen. Tableau wird sonst Felder nicht materialisieren, von
denen es glaubt, dass sie nicht verwendet werden. Es empfiehlt sich, alle berechneten Felder in der primären
Datenquelle zu definieren und nach Bedarf in die anderen Verbindungen zu kopieren. Danach aktualisieren
oder optimieren Sie den Extrakt nur aus der primären Datenquelle.
28
Aktualisieren von Extrakten
Wenn Sie in Tableau Desktop einen Extrakt aktualisieren möchten, wählen Sie Menüoptionen (Menü „Daten“
> [Ihre Datenquelle] > Extrakt > Aktualisieren). Damit werden die Daten aktualisiert und neue Zeilen werden
hinzugefügt. In Tableau Server können Sie hingegen während oder nach dem Veröffentlichungsprozess einen
Zeitplan anhängen, der von einem Administrator definiert wird, um den Extrakt automatisch zu aktualisieren.
Der geringste Inkrement für den Zeitplan beträgt 15 Minuten. Mit dem Zeitplan kann die Aktualisierung
täglich, wöchentlich etc. zu einem bestimmten Zeitpunkt erfolgen. Sie können ein „bewegliches Fenster“
einrichten, um die Daten laufend auf die jüngsten Werte zu aktualisieren.
Hinweis: Wenn der Benutzer seine Daten öfter als alle 15 Minuten aktualisieren möchte, sollte er sich
mit Livedaten verbinden oder eine synchronisierte Berichtdatenbank einrichten.
Sie können zwei Aktualisierungszeitpläne für einen einzelnen Extrakt auswählen.
Bei einer inkrementellen Aktualisierung werden nur Zeilen hinzugefügt. An bestehenden Zeilen
werden keine Änderungen vorgenommen.
Eine vollständige Aktualisierung verwirft den aktuellen Extrakt und generiert einen neuen aus der
Datenquelle.
Was geschieht, wenn die Aktualisierung länger dauert als das Aktualisierungsintervall?
Beispiel: Der Zeitplan ist darauf eingestellt, die Daten einmal pro Stunde zu aktualisieren, aber die
Datenmenge ist so groß, dass die Aktualisierung anderthalb Stunden dauert. Diese Situation ist vielleicht
sogar gewünscht.
Eine Aktualisierung beginnt um 1:00 und endet um 2:30.
Die nächste Aktualisierung beginnt um 2:00 und endet um 3:30.
Die nächste Aktualisierung beginnt um 3:00 und endet um 4:30.
Um 1:00 verwenden die Benutzer Daten, die 1,5 Stunden alt sind. Wenn Sie gewartet hätten, bis die
Aktualisierung von 1:00 um 2:30 abgeschlossen wäre, bevor Sie eine neue Aktualisierung starten, wäre
diese zweite Aktualisierung erst um 4:00 verfügbar. Mit den überlappenden Aktualisierungen stehen
aber stündlich neue Daten zur Verfügung, also um 2:30, 3:30 und 4:30, anstatt nach 1,5 Stunden um
2:30, 4:00 und 5:30. Nachdem eine Aktualisierung abgeschlossen ist, werden alle neue Anforderungen
zu dieser Version des Extrakts geleitet.
Die Wartungsbildschirme melden, welche Hintergrundaufgaben gerade laufen, und welche in den
letzten 12 Stunden gelaufen sind. Die Farbcodierung wird verwendet, um den Status dieser Aufgaben zu
zeigen. Die Wartungsbildschirme sind für Administratoren und andere entsprechend berechtigte
Benutzer verfügbar, die die Berechtigung haben können, eine Adhoc-Aktualisierung eines Extrakts
vorzunehmen. Wenn beispielsweise eine Datenbank gerade lädt, können Sie einen Trigger setzen, um
einen Extrakt einzuleiten, nachdem die Datenbank geladen ist.
29
Sie können eine Arbeitsmappe inkrementell oder vollständig über das Befehlszeilentool Tabcmd
aktualisieren, wenn Sie Tableau Server verwenden, oder die Tableau.exe-Befehlszeile, wenn Sie Tableau
Desktop verwenden. Wenn Sie komplexe Anforderungen an die Zeitplanung haben, können Sie sie von
einem externen Zeitplanungstool aufrufen, beispielsweise mit „Aufgabenplanung“ unter Windows.
Dieser Ansatz ist erforderlich, wenn Sie einen Aktualisierungszyklus haben, der kürzer ist als das
Minimum von 15 Minuten, das über die Tableau Server-Schnittstelle verfügbar ist.
Sie können festlegen, dass Aktualisierungen planmäßig ablaufen. Sie können auch entscheiden, die
Zeitplanung zu deaktivieren und dann manuell Aktualisierungen einzuleiten, wenn Sie sie brauchen.
30
Teil 3 – Liegt es an der Abfrage? Sie haben die Datenverbindung überprüft und sichergestellt, dass dabei nach bewährten Verfahren
vorgegangen wurde. Die Leistung ist aber weiterhin unbefriedigend. Sehen Sie sich jetzt als nächsten Punkt
Ihrer Überprüfung die Abfrage (bzw. eher die Abfragen) an, um sicherzustellen, dass sie optimiert sind.
Untersuchung der Abfragen In Tableau können Sie den vollständigen Text der Abfragen anzeigen, indem Sie sich die Protokolldatei
ansehen. Der Standardort der Datei ist C:\Benutzer\<Benutzername>\Eigene Dokumente\Eigenes
Tableau-Repository\Protokolle\log.txt. Diese Datei ist sehr ausführlich, aber Sie können die Abfrage
zielgerichtet zwischen den Tags <QUERY> und </QUERY> finden:
2014-02-19 12:32:21.574 (-,-,-,-) 16a8: <QUERY protocol='0ec80680'>
2014-02-19 12:32:21.574 (-,-,-,-) 16a8: SELECT [ProductDim].[Product Category]
AS [none:Product Category:nk],
2014-02-19 12:32:21.574 (-,-,-,-) 16a8: [ProductDim].[Product Subcategory] AS
[none:Product Subcategory:nk],
2014-02-19 12:32:21.574 (-,-,-,-) 16a8: SUM([OrdersFact].[Sales]) AS
[sum:Sales:ok]
2014-02-19 12:32:21.574 (-,-,-,-) 16a8: FROM ( ( ( ( [OrdersFact]
2014-02-19 12:32:21.574 (-,-,-,-) 16a8: INNER JOIN [CustomerDim] ON
[OrdersFact].[Customer ID] = [CustomerDim].[Customer ID] )
2014-02-19 12:32:21.574 (-,-,-,-) 16a8: INNER JOIN [DeliveryDim] ON
[OrdersFact].[Delivery ID] = [DeliveryDim].[Delivery ID] )
2014-02-19 12:32:21.574 (-,-,-,-) 16a8: INNER JOIN [LocationDim] ON
[OrdersFact].[Place ID] = [LocationDim].[Place ID] )
2014-02-19 12:32:21.574 (-,-,-,-) 16a8: INNER JOIN [ProductDim] ON
[OrdersFact].[Product ID] = [ProductDim].[Product ID] )
2014-02-19 12:32:21.574 (-,-,-,-) 16a8: INNER JOIN [TimeDim] ON
[OrdersFact].[Date ID] = [TimeDim].[Date ID]
2014-02-19 12:32:21.574 (-,-,-,-) 16a8: WHERE ((Fix(Fix([TimeDim].[Date])) >=
IIF(ISNULL((-2999)),NULL,DATEADD('d',(-2999),IIF(ISNULL(#02/19/2014
12:32:21#),NULL,DATEADD('d', DATEDIFF('d', #01/01/1970#, #02/19/2014
12:32:21#), #01/01/1970#))))) AND (Fix(Fix([TimeDim].[Date])) <
IIF(ISNULL(1),NULL,DATEADD('d',1,IIF(ISNULL(#02/19/2014
12:32:21#),NULL,DATEADD('d', DATEDIFF('d', #01/01/1970#, #02/19/2014
12:32:21#), #01/01/1970#))))))
2014-02-19 12:32:21.574 (-,-,-,-) 16a8: GROUP BY [ProductDim].[Product
Category],
2014-02-19 12:32:21.574 (-,-,-,-) 16a8: [ProductDim].[Product Subcategory]
2014-02-19 12:32:21.574 (-,-,-,-) 16a8: </QUERY>
Wenn Sie die Untersuchung auf einem Tableau Server durchführen, befinden sich die Protokolle unter
C:\Programme\Tableau\Tableau Server\data\tabsvc\vizqlserver\Logs.
Leistungsaufzeichnungen Eine andere Stelle, die Sie bei Ihrer Untersuchung der Leistung einer Arbeitsmappe prüfen können, ist
die Leistungsaufzeichnungs-Funktion von Tableau Desktop und Tableau Server. Sie aktivieren diese
Funktion im Hilfemenü:
31
Beginnen Sie die Leistungsaufzeichnung und öffnen Sie Ihre Arbeitsmappe. Interagieren Sie mit ihr so,
als wären Sie ein Endbenutzer. Wenn Sie das Gefühl haben, dass Sie genügend Daten haben, wechseln
Sie zurück zum Hilfemenü und stoppen Sie die Aufzeichnung. Ein weiteres Tableau Desktop-Fenster wird
zu diesem Zeitpunkt mit den erfassten Daten geöffnet:
Sie können jetzt die Aktionen in der Arbeitsmappe erkennen, die die meiste Zeit in Anspruch nehmen.
Beispielsweise braucht im oben angezeigten Bild eine der Abfragen von „Blatt 1“ auf dem „Schlechtes
Design“-Dashboard 27 Sekunden, bis sie abgeschlossen ist. Wenn Sie auf die Leiste klicken, wird der Text
der Abfrage angezeigt, die ausgeführt wird.
32
Sie können diese Information verwenden, um jene Bereiche einer Arbeitsmappe zu erkennen, bei denen sich
eine Untersuchung lohnt, also wo Sie die meisten Verbesserungen für die aufgewendete Zeit erreichen können.
Weitere Informationen zur Interpretation dieser Aufzeichnungen finden Sie unter dem folgenden Link:
http://onlinehelp.tableausoftware.com/v8.1/server/de-de/perf_record_interpret_server.htm
Verknüpfungsauswahl (Join Culling) Wenn Sie mehrere Tabellen in einer Datenquelle verknüpfen, verfügt Tableau über eine elegante (und für den
Benutzer im Allgemeinen nicht sichtbare) Funktion namens „Verknüpfungsauswahl“. Da Verknüpfungen
Aufwand für Zeit und Ressourcen auf dem Datenbankserver bedeuten, möchten Sie nicht jedes Mal jede
Verknüpfung aufzählen, die Sie in Ihrer Datenquelle deklariert haben. Mit der Verknüpfungsauswahl können
Sie nur die relevanten Tabellen anstatt alle in der Verknüpfung definierten Tabellen abfragen.
Sehen Sie sich das folgende Szenario an, in dem mehrere Tabellen in einem kleinen Sternschema
verknüpft wurden:
Mit der Verknüpfungsauswahl generiert Tableau die folgende Abfrage:
SELECT [ProductDim].[Product Category], SUM([OrdersFact].[Sales])
FROM [dbo].[OrdersFact] [OrdersFact]
INNER JOIN [dbo].[ProductDim] [ProductDim]
ON ([OrdersFact].[Product ID] = [ProductDim].[Product ID])
GROUP BY [ProductDim].[Product Category]
Ohne Verknüpfungsauswahl generiert Tableau eine viel weniger effiziente Abfrage:
SELECT [ProductDim].[Product Category], SUM([OrdersFact].[Sales])
FROM [dbo].[OrdersFact] [OrdersFact]
INNER JOIN [dbo].[CustomerDim] [CustomerDim]
ON ([OrdersFact].[Customer ID] = [CustomerDim].[Customer ID])
INNER JOIN [dbo].[DeliveryDim] [DeliveryDim]
33
ON ([OrdersFact].[Delivery ID] = [DeliveryDim].[Delivery ID])
INNER JOIN [dbo].[LocationDim] [LocationDim]
ON ([OrdersFact].[Place ID] = [LocationDim].[Place ID])
INNER JOIN [dbo].[TimeDim] [TimeDim]
ON ([OrdersFact].[Date ID] = [TimeDim].[Date ID])
INNER JOIN [dbo].[ProductDim] [ProductDim]
ON ([OrdersFact].[Product ID] = [ProductDim].[Product ID])
GROUP BY [ProductDim].[Product Category]
Alle Dimensionstabellen müssen verknüpft sein, um sicherzustellen, dass von Beginn an korrekte
Kennzahlensummen berechnet werden. Wenn Ihre Tabelle „Fakten“ beispielsweise Daten für 2008-2012
enthielt, aber die Tabelle „Zeitdimension“ nur Werte für 2010-2012 hatte, würde sich das Ergebnis
SUM([Sales]) möglicherweise ändern, wenn die Tabelle „Zeit“ eingeschlossen wäre.
Vor Tableau 8.1 wurde die Verknüpfungsauswahl nur vorgenommen, wenn die Regeln für die
referenzielle Integrität im Quell-DBMS erzwungen werden. Dies wird manchmal auch als „harte“
referenzielle Integrität bezeichnet. Viele Kunden haben jedoch Datenquellen, bei denen die referenzielle
Integrität entweder auf der Anwendungsschicht oder über einen ETL-Prozess erzwungen wird. Dies wird
auch als „weiche“ referenzielle Integrität bezeichnet. In Tableau 8.1 wurde eine neue Funktion
eingeführt, mit der Benutzer Tableau darauf hinweisen können, dass die weiche referenzielle Integrität
eingerichtet ist und Verknüpfungsauswahl problemlos verwendet werden kann.
Weitere Hinweise finden Sie in der folgenden Artikelserie von Russell Christopher auf seinem Tableau
Love-Blog:
http://tableaulove.tumblr.com/post/11692301750/what-i-learned-about-tableau-join-culling-
over-summer
http://tableaulove.tumblr.com/post/62447366098/what-i-learned-about-tableau-join-culling-
over-fall
34
Verschmelzung Wenn Sie eine Entscheidung treffen, ob Sie in Tableau Datentabellen verknüpfen oder Datentabellen
verschmelzen, sollten Sie bedenken, wo die Daten herkommen, wie viele Datenverbindungen es gibt
und wie hoch die Anzahl der Datensätze in den Daten ist.
Wenn die Arbeitsmappe Daten aus mehr als einer Datenquelle verwendet, müssen Sie entweder Daten
verschmelzen oder ein föderiertes Datenbanksystem einrichten. Wenn eine Arbeitsmappe zwei
Datenverbindungen von derselben Datenquelle verwendet, ist es im Allgemeinen vorzuziehen, die
Datentabellen zu verknüpfen, weil dies die Leistung und die Filterkontrolle verbessern kann. Es gibt aber
Situationen, in denen das Verknüpfen von Datentabellen nicht so gut funktioniert wie das Verschmelzen von
Daten. Hier sehen Sie zwei gängige Situationen, bei denen die Datenverschmelzung besser funktionieren dürfte.
Wenn Sie mehrere Datenverbindungen haben, die sehr groß sind und bei denen eine Abfrage
sehr lange dauert, kann eine Verknüpfung die Abfragezeit signifikant beschleunigen. Ein besserer
Ansatz könnte sein, die Tabellen zu aggregieren und dann die Daten in der aggregierten Tabelle
zu verschmelzen. Beispiel: Sie können Daten eher mit dem Jahr und nicht mit dem Datum
aggregieren, oder mit dem Produkttyp und nicht mit dem Produktnamen. Ein Beispiel finden Sie
im Artikel Data Blending with Summarized Data (Datenverschmelzung mit summierten Daten).
Wenn Sie sowohl die Zusammenfassung einer Berechnung als auch die Aufschlüsselung für dieselbe
Ansicht sehen möchten, wählen Sie Daten > Datenverbindung > Duplizieren, um die Daten, die zwischen
zwei Datenverbindungen kommunizieren sollen, zu verschmelzen. Weitere Informationen finden Sie im
Artikel lShowing Summary and Detail Together (Zusammenfassung und Details gleichzeitig anzeigen).
Der folgende Artikel zeigt einige Beispiele für Fälle, bei denen Sie eine Verknüpfung bzw. eine Verschmelzung
verwenden sollten: http://kb.tableausoftware.com/articles/knowledgebase/join-vs-relationship-60
Wenn Sie die Verschmelzung verwenden, ist einer der wichtigsten Einflussfaktoren auf die Leistung der
Verschmelzung nicht die Anzahl von Datensätzen in jeder Datenquelle, sondern die Kardinalität der
Verschmelzungsfelder, die die beiden Datensätze verbinden. Bei der Verschmelzung werden die Daten
von beiden Datenquellen auf der Ebene der verknüpften Felder abgefragt und die Ergebnisse der beiden
Abfragen werden im Arbeitsspeicher zusammengefügt.
35
Wenn viele Einzelwerte vorhanden sind, kann dies sehr viel Arbeitsspeicher in Anspruch nehmen. Mit
der 64-Bit-Version von Tableau 8.1 können die Benutzer komplexere Daten (mehr Einzelwerte)
verschmelzen, ohne dass der Arbeitsspeicher zur Neige geht. Aber diese Szenarios nehmen immer noch
sehr viel Rechenzeit in Anspruch.
Die Empfehlung aufgrund bewährter Verfahrensweisen bei der Verschmelzung besteht darin, ein
Verschmelzen von Dimensionen mit einer großen Anzahl von Einzelwerten (z. B. Bestellnummer,
Kundennummer, präzise Datums-/Zeitangaben usw.) zu vermeiden.
Primärgruppen und Aliase
Wenn Sie es für notwendig erachten, zwischen zwei Datenquellen eine Verschmelzung durchzuführen,
weil eine die Fakten-Datensätze enthält und die andere Dimensionsattribute, kann es möglich sein, die
Leistung durch die Schaffung einer Primärgruppe oder eines Alias zu verbessern. Für die folgenden
Beispiele betrachten Sie die folgenden drei Tabellen:
Primärgruppen sind nützlich, wenn die sekundäre Datenquelle ein Attribut enthält, das 1:n zurück zu
den Dimensionselementen in der primären Datenquelle zugeordnet ist. Angenommen, aus den oben
genannten Daten soll Folgendes erstellt werden:
Dies kann durch Verschmelzung erfolgen. Aber wie bereits besprochen, würde dies zu einer sehr
schwachen Leistung führen, wenn eine größere Anzahl von IDs vorhanden ist:
36
Durch einen Klick mit der rechten Maustaste auf das Feld „Gruppe“ und Auswahl von „Primärgruppe erstellen“
erstellt Tableau ein Gruppenobjekt in der primären Datenquelle, das das Verknüpfungsfeld (in diesem Fall „ID“)
der ausgewählten Dimension der sekundären Datenquelle (in diesem Fall „Gruppe“) zuordnet.
Diese Tabelle kann jetzt neu erstellt werden, ohne dass eine Verschmelzung nötig wäre.
37
Primäraliase sind nützlich, wenn die sekundäre Datenquelle ein Attribut enthält, das 1:1 zurück zu den
Dimensionselementen in der primären Datenquelle zugeordnet ist. Angenommen, aus den oben
genannten Daten soll Folgendes erstellt werden:
Dies kann durch Verschmelzung zwischen den beiden Datenquellen erfolgen. Aber wie bereits
besprochen, würde dies zu einer sehr schwachen Leistung führen, wenn eine größere Anzahl von IDs
vorhanden ist:
38
Wenn Sie auf das Feld „Name“ mit der rechten Maustaste klicken und „Primäre Aliase bearbeiten“
auswählen, können Sie eine einmalige Zuordnung des Namens- zum ID-Feld als Aliaswerte vornehmen:
Sie können jetzt die gewünschte Visualisierung ohne Verschmelzung erstellen. Dies wird viel schneller
vonstatten gehen:
39
Beachten Sie, dass weder die primären Gruppen noch die primären Aliase dynamisch sind und
aktualisiert werden müssen, wenn sich die Daten ändern. Daher ist dies keine sehr gute Lösung für
häufig aktualisierte Daten. Wenn Sie hingegen eine schnelle Zuordnung benötigen, können Sie
möglicherweise teure Verschmelzungen vermeiden.
Filtern Filtern ist eine besonders leistungs- und ausdrucksstarke Funktion in Tableau. Ineffiziente Filter sind
jedoch die häufigsten Gründe für schlechte Leistungen von Arbeitsmappen und Dashboards. In den
folgenden Abschnitten werden mehrere bewährte Verfahren für die Arbeit mit Filtern beschrieben.
Hinweis: Filter werden durch Indizes in der Datenquelle deutlich effizienter. Genauere Hinweise finden
Sie im vorherigen Abschnitt über Indizes.
Filtern von Kategoriedimensionen
Denken Sie an die folgende Visualisierung einer Karte von Australien mit Markierungen für jede Postleitzahl:
40
Es gibt mehrere Möglichkeiten, wie Sie die Karte filtern können, um nur die Postleitzahlen für
Westaustralien (violette Punkte) zu zeigen:
Sie können alle Markierungen in WA auswählen und nur die Auswahl beibehalten.
Sie können alle Markierungen außerhalb von WA auswählen und die Auswahl ausschließen.
Sie können nur ein anderes Attribut, beispielsweise die Bundesstaat-Dimension beibehalten.
Sie können nach Bereichen filtern, entweder nach Postleitzahlwerten oder Werten über Längen-
und Breitengrade.
Diskret
Bei den ersten beiden Optionen stellen Sie möglicherweise fest, dass die Filter „Nur beibehalten“ oder
„Ausschließen“ keine gute Leistung bewirken. In der Tat sind sie oft langsamer als bei ungefilterten
Datensätzen. Dies ist darauf zurückzuführen, dass sie als getrennte Liste von Postleitzahlwerten
ausgedrückt sind, die vom DBMS ein- oder ausgefiltert werden, entweder über eine komplexe WHERE-
Klausel oder durch Verknüpfung mit einer temporären Tabelle, in die die ausgewählten Elemente
eingelesen wurden. Bei einem umfangreichen Satz von Markierungen kann dies zu einer sehr teuren
Abfrage werden.
Die dritte Option ist in diesem Beispiel schneller, weil der dabei entstehende Filter (WHERE
STATE=”Western Australia”) sehr einfach ist und von der Datenbank einfach verarbeitet werden kann.
Dieser Ansatz verliert aber an Wirksamkeit, wenn die Anzahl von Dimensionselementen, die für den
Ausdruck des Filters benötigt werden, zunimmt. Sie erreicht schließlich die Leistung des Lassos und der
„Nur beibehalten“-Option.
Bereich
Wenn Sie die Bereichsfilter verwenden, kann die Datenbank ebenfalls eine einfache Filterklausel auswerten
(entweder WHERE POSTCODE >= 6000 AND POSTCODE <= 7000 oder WHERE LONGITUDE < 129). Dies führt
ebenfalls zu einer schnellen Ausführung. Der Ansatz wird hingegen – anders als ein Filter für eine verbundene
Dimension – nicht komplexer, wenn die Kardinalität der Dimensionen erhöht wird.
Das Ergebnis: Bereichsfilter sind oft schneller in der Auswertung als lange Listen mit diskreten Werten
und sollten bevorzugt anstelle von „Nur beibehalten“- oder „Ausschließen“-Filtern für umfangreiche
Markierungssätze verwendet werden.
Filtern von Datumswerten: diskret, Bereich, relativ
Datumsfelder stellen eine besondere Art von Dimension dar, die in Tableau häufig anders als
standardmäßige Kategoriedaten behandelt werden. Dies gilt vor allem, wenn Sie Datumsfilter erstellen.
Datumsfilter werden sehr häufig verwendet und fallen in drei Kategorien: Filter vom Typ „Relatives
Datum“, bei denen ein Datumsbereich angezeigt wird, der relativ zu einem bestimmten Tag gilt. Filter
vom Typ „Datumsbereich“, bei denen ein definierter Bereich diskreter Datumsangaben angezeigt wird.
Datumsfilter vom Typ „Diskret“, bei denen einzelne Datumsangaben angezeigt werden, die Sie aus einer
Liste ausgewählt haben. Wie im Abschnitt oben gezeigt wird, können die benutzten Methoden
wesentliche Auswirkungen auf die Effizienz der sich daraus ergebenden Abfrage haben.
41
Diskret
Es kann vorkommen, dass Sie beim Filtern bestimmte einzelne Datumsangaben oder ganze
Datumsebenen einbeziehen möchten. Diese Art von Filter wird als diskreter Datumsfilter bezeichnet,
weil Sie anstelle eines Bereichs diskrete Werte definieren. Dieser Filter führt dazu, dass der
Datumsausdruck an die Datenbank als dynamische Berechnung übermittelt wird:
SELECT [FactSales].[Order Date], SUM([FactSales].[SalesAmount])
FROM [dbo].[FactSales] [FactSales]
WHERE (DATEPART(year,[FactSales].[Order Date]) = 2010)
GROUP BY [FactSales].[Order Date]
In den meisten Fällen bewertet die Intelligenz der Abfrageoptimierer die DATEPART-Berechnung, aber es gibt
Szenarios, bei denen der Einsatz von diskreten Datenfiltern zu einer schlechten Abfrageleistung führt. Dies ist
beispielsweise der Fall, wenn Sie eine partitionierte Tabelle mit einem diskreten Datenfilter auf dem Datums-
Partitionsschlüssel abfragen. Da die Tabelle nicht für den DATEPART-Wert partitioniert ist, werden einige
Datenbanken die Berechnung über alle Partitionen auswerten, um Datensätze zu finden, die mit den
Kriterien übereinstimmen, auch wenn dies gar nicht nötig ist. In diesem Fall erhalten Sie eine weit bessere
Leistung, wenn Sie einen Filter mit Datumsbereichen verwenden.
Eine Methode zur Optimierung der Leistung bei dieser Art von Filtern besteht in der Materialisierung der
Berechnung mithilfe eines Datenextrakts. Zuerst erstellen Sie ein berechnetes Feld, das die DATEPART-
Funktion explizit implementiert. Wenn Sie dann einen Tableau-Datenextrakt erstellen, wird dieses
berechnete Feld als gespeicherte Werte im Extrakt materialisiert (weil die Ausgabe des Ausdrucks
deterministisch ist). Das Filtern des berechneten Felds anstelle des dynamischen Ausdrucks ist schneller,
weil der Wert einfach gesucht werden kann und nicht zum Abfragezeitpunkt berechnet werden muss.
42
Bereich
Diese Art von Filter wird benutzt, wenn Sie einen Bereich zusammenhängender Datumswerte angeben
möchten. Dies bewirkt, dass die folgende Abfragestruktur an die Datenbank übermittelt wird:
SELECT [FactSales].[Order Date], SUM([FactSales].[SalesAmount])
FROM [dbo].[FactSales] [FactSales]
WHERE (([FactSales].[Order Date] >= {ts '2009-01-01 00:00:00'})
AND ([FactSales].[Order Date] <= {ts '2012-12-31 00:00:00'}))
GROUP BY [FactSales].[Order Date]
Diese Art der WHERE-Klausel ist sehr effizient für Abfrageoptimierer und gestattet, Ausführungspläne,
Indizes und Partitionen in vollem Umfang auszunutzen. Wenn Sie nach dem Hinzufügen von diskreten
Datumsfiltern sehr langsame Abfragen feststellen, denken Sie daran, sie über Datenfilter durch Bereiche
zu ersetzen und zu prüfen, ob sich daraus ein Unterschied ergibt.
43
Relativ
Mit einem Filter vom Typ „Relatives Datum“ können Sie einen Datumsbereich definieren, der in
Abhängigkeit davon aktualisiert wird, an welchem Datum und zu welcher Uhrzeit Sie die Ansicht öffnen.
Angenommen, Sie möchten den Umsatz im bisherigen Jahr, alle Datensätze der letzten 30 Tage oder die
in der letzten Woche behobenen Fehler anzeigen. Filter vom Typ „Relatives Datum“ können auch relativ
zu einem bestimmten Ankerdatum verwendet werden, nicht nur für den jeweiligen aktuellen Tag.
SELECT [FactSales].[Order Date], SUM([FactSales].[SalesAmount])
FROM [dbo].[FactSales] [FactSales]
WHERE (([FactSales].[Order Date] >= DATEADD(year,(-2),DATEADD(year,
DATEDIFF(year, 0, {ts '2012-12-16 22:37:51.490'}), 0))) AND
([FactSales].[Order Date] < DATEADD(year,1,DATEADD(year, DATEDIFF(year, 0,
{ts '2012-12-16 22:37:51.490'}), 0))))
GROUP BY [FactSales].[Order Date]
Wie Sie sehen, benutzt die sich daraus ergebende WHERE-Klausel einen Bereich-Datumsfilter. Dies ist
daher ebenfalls eine effiziente Form eines Datumsfilters.
Kontextfilter
Standardmäßig werden alle Filter, die Sie in Tableau festlegen, unabhängig voneinander berechnet. Jeder
Filter greift also auf alle Zeilen der Datenquelle zu, ohne andere Filter zu berücksichtigen. Sie können jedoch
einen oder mehrere Filter als Kontextfilter für die Ansicht festlegen. Dies können Sie sich als unabhängigen
Filter denken. Alle anderen Filter, die Sie festlegen, werden als abhängige Filter definiert. Der Grund ist, dass
diese Filter nur die Daten verarbeiten, die die Bedingungen des Kontextfilters erfüllen.
Kontextfilter sind besonders nützlich bei relationalen Datenquellen, weil sie implementiert werden,
indem die Filter-Ergebnismenge in eine temporäre Tabelle geschrieben wird. Diese Tabelle fungiert dann
als getrennte (kleinere) Datenquelle für nachfolgende Filter und Abfragen. Dies führt zu besserer
Leistung, wenn Sie Datenansichten erstellen.
44
Kontextfilter werden oft verwendet, um die Leistung zu verbessern. Beachten Sie, dass die Verbesserung
eintritt, weil die Datenbank die Ergebnisse des Kontextfilters in eine temporäre Tabelle schreibt. Das
Erstellen dieser temporären Tabelle ist eine kostenaufwendige Aktivität für die Datenbank. Daher wird
dieser Ansatz unter folgenden Bedingungen empfohlen:
● Der Kontextfilter reduziert die Größe des Datensatzes signifikant – also im Allgemeinen um ein
Vielfaches.
● Der Kontextfilter wird vom Benutzer nicht häufig geändert. Wenn der Filter geändert wird, muss
die Datenbank eine Neuberechnung vornehmen und die temporäre Tabelle neu schreiben. Dies
reduziert die Leistung.
Hier ist ein nützlicher Trick, der das Verhalten von Kontextfiltern nutzt: Sie können verwendet werden, um
einen Datensatz mit komplexen Tabellenverknüpfungen in einer einzelnen, denormalisierten Tabelle zu
materialisieren. Sehen Sie sich beispielsweise die folgende Abfrage an, die von Tableau generiert wird:
SELECT SUM([OrdersFact].[Sales])
FROM [dbo].[OrdersFact] [OrdersFact]
INNER JOIN [dbo].[CustomerDim] [CustomerDim]
ON ([OrdersFact].[Customer ID] = [CustomerDim].[Customer ID])
INNER JOIN [dbo].[DeliveryDim] [DeliveryDim]
ON ([OrdersFact].[Delivery ID] = [DeliveryDim].[Delivery ID])
INNER JOIN [dbo].[LocationDim] [LocationDim]
ON ([OrdersFact].[Place ID] = [LocationDim].[Place ID])
INNER JOIN [dbo].[ProductDim] [ProductDim]
ON ([OrdersFact].[Product ID] = [ProductDim].[Product ID])
INNER JOIN [dbo].[TimeDim] [TimeDim]
ON ([OrdersFact].[Date ID] = [TimeDim].[Date ID])
WHERE (([LocationDim].[Region] >= 'Africa')
AND ([LocationDim].[Region] <= 'Oceania'))
HAVING (COUNT_BIG(1) > 0)
Indem ein Kontextmenü auf eine Dimension gesetzt wird, die alle Dimensionselemente zurückgibt,
zwingen Sie Tableau, die oben angeführte Abfrage zu materialisieren und die Ergebnisse in eine
temporäre Tabelle zu schreiben. Dabei wird dieselbe Abfrage wie folgt erneut generiert:
SELECT SUM([#Tableau_3_Context].[Sales])
FROM [#Tableau_3_Context]
HAVING (COUNT_BIG(1) > 0)
Sie sehen, dass dabei eine weitaus einfachere Abfrage für die Datenbank entsteht und daher die
Leistung verbessert wird. Diese Technik könnte auch eingesetzt werden, um Arbeitsmappen zu
optimieren, die eine Datenverbindung basierend auf einer angepassten SQL-Anweisung verwenden.
Schnellfilter
Trotz des Namens werden Sie bei der Verwendung zu vieler Schnellfilter eine Leistungsverschlechterung
feststellen, insbesondere wenn Sie die Option „Nur relevante Werte“ verwenden und zahlreiche diskrete
Listen erhalten. Versuchen Sie es mit einem stärker auf Analysen beruhenden Ansatz und verwenden Sie
anstelle dessen Aktionsfilter in einem Dashboard. Wenn Sie eine Ansicht mit vielen Filtern erstellen, um sie
perfekt anpassbar zu machen, sollten Sie sich die Frage stellen, ob mehrfache Dashboards mit verschiedenen
Ebenen nicht besser funktionieren würden (Antwort: ja, höchstwahrscheinlich).
45
Enumeriert oder nicht enumeriert
Enumerierte Schnellfilter veranlassen Tableau, eine Abfrage in der Datenquelle für alle potenziellen
Feldwerte vorzunehmen, bevor das Schnellfilterobjekt gerendert werden kann. Dazu gehören:
Liste mit mehreren Werten
Liste mit Einzelwerten
Kompaktliste
Schieberegler
Kennzahlfilter
Filter mit Datumsbereichen
Nicht enumerierte Schnellfilter benötigen hingegen kein Wissen über potenzielle Feldwerte. Dazu
gehören:
Liste mit benutzerdefinierten Werten
Platzhalterübereinstimmung
Filter vom Typ „Relatives Datum“
Datumsfilter zum Durchsuchen eines Zeitraums
Nicht enumerierte Schnellfilter reduzieren daher die Anzahl von Abfragen im Zusammenhang mit
Schnellfiltern, die von der Datenquelle ausgeführt werden müssen. Außerdem rendern nicht
enumerierte Schnellfilter schneller, wenn viele Dimensionselemente anzuzeigen sind.
Die Verwendung von nicht enumerierten Schnellfiltern kann die Leistung verbessern, aber dies geht auf
Kosten des visuellen Kontexts für den Anwender.
Relevante Werte
Enumerierte Schnellfilter können so eingestellt werden, dass sie die potenziellen Feldwerte auf drei
Arten anzeigen:
Alle Werte in der Datenbank – Wenn Sie diese Option auswählen, werden unabhängig von den
anderen Filtern der Ansicht alle Werte der Datenbank angezeigt. Der Schnellfilter muss die
Datenbank nicht erneut abfragen, wenn andere Filter geändert werden.
Alle Werte im Kontext – Diese Option ist nur verfügbar, wenn Sie aktive Kontextfilter haben. Der
Schnellfilter zeigt alle Werte im Kontext (d. h. die temporäre Tabelle, die vom Kontextfilter
erstellt wird) unabhängig von anderen Filtern in der Ansicht an. Der Schnellfilter muss die
Datenbank nicht erneut abfragen, wenn andere Filter geändert werden.
Nur relevante Werte – Wenn Sie diese Option auswählen, werden auch andere Filter
berücksichtigt, und es werden nur Werte angezeigt, die die Bedingungen dieser Filter erfüllen.
Ein Schnellfilter für Bundesstaaten kann z. B. nur die Staaten für „East“ anzeigen, wenn ein Filter
für „Region“ entsprechend eingerichtet wurde. Der Schnellfilter muss daher die Datenbank
erneut abfragen, wenn andere Filter geändert werden.
46
Sie sehen: Die Einstellung „Nur relevante Filter“ kann hilfreich sein, damit der Benutzer relevante Auswahlen
treffen kann. Sie erhöht aber die Anzahl der Abfragen, die ausgeführt werden müssen, während die Benutzer
mit dem Dashboard arbeiten. Daher sollte sie nur eingeschränkt verwendet werden.
Alternativen zu Schnellfiltern
Es gibt Alternativen zur Verwendung von Schnellfiltern, die ein ähnliches analytisches Ergebnis
bewirken, aber dazu keinen zusätzlichen Abfrageaufwand benötigen.
Anstatt einen Schnellfilter für die Benutzer verfügbar zu machen, können Sie einen Parameter und Filter
basierend auf der Auswahl des Benutzers erstellen.
VORTEILE:
Parameter benötigen vor dem Rendern keine Datenbankabfrage.
Parameter + berechnete Felder können Logik implementieren, die komplexer ist als bei einem
einfachen Feldfilter möglich ist.
Parameter können verwendet werden, um über mehrere Datenquellen zu filtern. Schnellfilter
arbeiten hingegen nur mit einer einzelnen Datenquelle.
NACHTEILE:
Parameter haben nur einen einzelnen Wert. Sie können sie nicht verwenden, wenn der
Benutzer mehrere Werte auswählen soll.
Parameter sind nicht dynamisch. Die Liste der Werte wird beim Erstellen definiert. Sie werden
nicht auf der Grundlage der Werte im DBMS aktualisiert.
Eine andere Alternative ist die Verwendung von Filteraktionen zwischen Ansichten.
VORTEILE:
Aktionen unterstützen die Auswahl mehrerer Werte durch visuelles Lasso oder Klicken mit
Strg/Umschalttaste.
Aktionen zeigen eine dynamische Liste von Werten, die zur Laufzeit ausgewertet wird.
Aktionen können verwendet werden, um über mehrere Datenquellen zu filtern. Schnellfilter
arbeiten hingegen nur mit einer einzelnen Datenquelle.
NACHTEILE:
Das Aufsetzen von Filteraktionen ist komplexer als bei Schnellfiltern.
Aktionen haben nicht dieselbe Benutzeroberfläche wie Parameter oder Schnellfilter. In der
Regel benötigen sie für die Anzeige mehr Platz auf dem Bildschirm.
Die Aktionsquelle muss weiterhin die Datenquelle abfragen, profitiert aber von der
Cacheverarbeitung in der Tableau-Verarbeitungspipeline.
Weitere Hinweise zu alternativen Techniken für ein Design, das nicht stark auf Schnellfilter setzt, finden
Sie weiter oben.
47
Benutzerfilter
Arbeitsmappen, die – über das Dialogfeld „Benutzerfilter erstellen…“ oder über berechnete Felder, die
eine der eingebauten Benutzerfunktionen nutzen – Benutzerfilter verwenden, können keine gemeinsam
genutzten Ergebniscaches verwenden, wenn die Bereitstellung auf Tableau Server erfolgt, weil sie nur
jeweils für den Benutzer gelten. Dies kann aus folgenden Gründen Auswirkungen auf die Leistung haben:
Alle Arbeitsmappen müssen die zugrunde liegende Datenquelle abfragen, auch wenn eine
andere Benutzersitzung gerade genau dieselbe Abfrage durchgeführt hat. Dies führt zu
zusätzlichem E/A-Aufwand der Datenquelle.
Mehr Cachespeicher ist erforderlich, da jede Benutzersitzung ihren eigenen Cache für das
Ergebnis der Abfrage und das Modell erstellt. Auf Maschinen mit hoher Verarbeitungslast kann
dies dazu führen, dass die Caches geleert werden, obwohl sie noch benutzt werden. Auch das
führt zu vermehrtem E/A-Aufwand.
Detailliertere Hinweise finden Sie im folgenden Abschnitt über die Cacheverarbeitung im Tableau Server.
48
Teil 4 – Liegt es an den Berechnungen? In vielen Fällen stellen Ihre Quelldaten nicht alle Felder bereit, die Sie benötigen, um alle Ihre Fragen zu
beantworten. Berechnete Felder helfen Ihnen dabei, alle Dimensionen und Kennzahlen für Ihre Analyse
zu erstellen.
Innerhalb eines berechneten Feldes können Sie eine hartkodierte Konstante (beispielsweise einen
Steuersatz) definieren, einfache mathematische Berechnungen wie Subtraktion oder Addition
(beispielsweise Umsatz minus Kosten) anstellen, komplexere mathematische Formeln nutzen, logische
Tests durchführen (beispielsweise IF/THEN, CASE), Datentypen konvertieren und mehr.
Nachdem ein berechnetes Feld definiert wurde, steht es in der gesamten Arbeitsmappe zur Verfügung,
solange die Arbeitsblätter dieselbe Datenquelle verwenden. Sie können berechnete Felder in Ihrer
Arbeitsmappe genau so verwenden wie Sie Dimensionen und Kennzahlen aus Ihren Quelldaten verwenden.
In Tableau gibt es drei Arten von Berechnungen:
Grundlegende Berechnungen
Aggregierte Berechnungen
Tabellenberechnungen
Eine großartige Referenz für die Möglichkeiten bei der Ausführung komplexer Berechnungen sowie ein Forum,
in dem Benutzer Lösungen für allgemeine Probleme finden, ist die Tableau-Berechnungsreferenzbibliothek:
http://community.tableausoftware.com/community/viz-talk/tableau-community-
library/calculation-reference-library
Grundlegende und aggregierte Berechnungen Grundlegende und aggregierte Berechnungen werden als Teil der an die Datenquelle gesendeten
Abfrage angegeben und werden deshalb von der Datenbank berechnet. Beispiel:
SELECT DATEPART(year,[TimeDim].[Date]), SUM([OrdersFact].[Sales])
FROM [dbo].[OrdersFact] [OrdersFact]
INNER JOIN [dbo].[TimeDim] [TimeDim]
ON ([OrdersFact].[Date ID] = [TimeDim].[Date ID])
GROUP BY DATEPART(year,[TimeDim].[Date])
YEAR ist eine grundlegende Berechnung und SUM(SALES) ist eine aggregierte Berechnung.
Im Allgemeinen lassen sich grundlegende und aggregierte Berechnungen sehr gut skalieren, und es gibt
zahlreiche Tuning-Techniken für Datenbanken, die zur Leistungssteigerung angewendet werden können.
Tabellenberechnungen Andererseits werden Tabellenberechnungen nicht von der Datenbank, sondern von Tableau aus den
zurückgegebenen Abfrageergebnissen errechnet. Dies bedeutet zwar mehr Arbeit für Tableau, wird jedoch im
Allgemeinen an einem im Vergleich zur ursprünglichen Datenquelle wesentlich kleineren Datensatz ausgeführt.
Wenn die Leistung der Tabellenberechnung ein Problem ist (möglicherweise, weil der an Tableau
zurückgegebene Ergebnissatz sehr groß ist), überprüfen Sie die Möglichkeit, einige Aspekte der Berechnung auf
die Datenquellenebene zurückzuverlagern. Eine Möglichkeit wäre, einen aggregierten Datenextrakt zu nutzen.
49
Stellen Sie sich ein Beispiel vor, bei dem Sie das Wochenmittel der Tagesumsätze mehrerer Geschäfte ermitteln
möchten. Dies können Sie mit einer Tabellenberechnung mithilfe dieser Funktion erreichen:
WINDOW_AVG(SUM([Sales])
Wenn die Anzahl der Tage bzw. Geschäfte jedoch sehr groß ist, kann diese Berechnung langsam werden.
Um SUM([Sales]) auf die Datenebene zurückzuverlagern, erstellen Sie einen aggregierten Extrakt, der
die Datumsdimension bis zur Tagesebene aufrechnet. Die Berechnung kann dann einfach mit
AVG([Sales]) erfolgen, da der Extrakt bereits die Tagessummen enthält.
Einige Tabellenberechnungen sind in der Ausführung sehr teuer für die Tableau-Engine. Gemäß dem
folgenden Blog-Post von Richard Leeke zu den häufig verwendeten Tabellenberechnungen
WINDOW_XXX und TOTAL steigt die Ausführungszeit proportional zum Quadrat der Anzahl der Zeilen in
der zu analysierenden Partition. Das führt dazu, dass diese Funktionen bei einer großen Anzahl von
Datensätzen sehr langsam ausgeführt werden.
http://www.clearlyandsimply.com/clearly_and_simply/2011/01/another-look-at-site-catchment-
analysis-with-tableau-6-part-3.html
In diesem Post bietet er einige Behelfslösungen zur Begrenzung der Anzahl der Zeilen für die Engine-
Prozesse von Tabellenberechnungen an. Zum Beispiel kann die oben gezeigte Berechnung
WINDOW_AVG wie folgt umgeschrieben werden:
IF FIRST()==0 THEN WINDOW_AVG(SUM([Sales]),0,IIF(FIRST()==0,LAST(),0)) END
Diese Änderung kann zu erheblichen Verbesserungen führen. In einer der von ihm angeführten Referenzen
reduzierte er die zum Rendern einer Ansicht erforderliche Zeit von 3 Stunden auf 5 Sekunden!
Berechnungen im Vergleich zu nativen Funktionen Gelegentlich erstellen Benutzer berechnete Felder zum Ausführen von Funktionen, wenn diese mithilfe
nativer Funktionen von Tableau einfach erzielt werden können. Beispiel:
Gruppieren von Dimensionselementen: Einsatzmöglichkeiten für Gruppen;
Kennzahlen in Partitionen gruppieren: Einsatzmöglichkeiten für Partitionen;
Ändern der angezeigten Werte für Dimensionsmitglieder: Einsatzmöglichkeiten für Aliase.
Dies ist nicht immer möglich (Sie benötigen vielleicht Partitionen variabler Breite und das ist bei
grundlegenden Partitionen nicht möglich), aber ziehen Sie den Einsatz nativer Optionen so häufig wie
möglich in Betracht. Dies ist häufig effizienter als eine manuelle Berechnung. Da unsere Entwickler die
Leistung von Tableau weiterhin verbessern, werden Sie von ihren Anstrengungen profitieren.
Einfluss von Datentypen Wenn berechnete Felder erstellt werden, beachten Sie, dass der verwendete Datentyp einen
wesentlichen Einfluss auf die Berechnungsgeschwindigkeit hat. Als allgemeine Richtlinie gilt Folgendes:
Ganzzahlen sind schneller als boolesche Operationen und beide sind viel schneller als Zeichenfolgen.
Zeichenfolgenberechnungen sind sehr langsam. Häufig müssen für jede Berechnung 10 bis 100
grundlegende Anweisungen ausgeführt werden. Im Vergleich dazu sind numerische und boolesche
Berechnungen sehr effizient.
50
Dies trifft nicht nur auf die Berechnungs-Engine von Tableau zu, sondern auch auf die meisten Datenbanken.
Da grundlegende und aggregierte Berechnungen zur Datenbank verlagert werden, wenn sie in Form einer
numerischen anstatt einer Zeichenfolgelogik ausgedrückt sind, werden sie viel schneller ausgeführt.
Leistungstechniken Ziehen Sie die folgenden Techniken in Betracht, um sicherzustellen, dass Ihre Berechnungen so effizient
wie möglich sind:
Verwenden Sie boolesche Operationen für grundlegende logische Berechnungen Wenn Sie eine Berechnung haben, die ein binäres Ergebnis produziert (zum
Beispiel ja/nein, bestanden / nicht bestanden, über/unter), sollte ein
boolesches Ergebnis zurückgegeben werden und keine Zeichenfolge. Beispiel:
IF [Date]= TODAY() then “Today”
ELSE “Not Today”
END
Dies wäre sehr langsam, weil Zeichenfolgen verwendet werden. Schneller wird es durch die Rückgabe
eines booleschen Ergebnisses:
[Date]=Today()
Verwenden Sie dann Aliase , um die Ergebnisse TRUE und FALSE in „Today“ (Heute) und „Not Today“
(Nicht heute) umzubenennen.
Zeichenfolge-Suchvorgänge
Stellen Sie sich vor, Sie möchten die Möglichkeit haben, alle Datensätze anzuzeigen, in denen der
Produktname die gesuchte Zeichenfolge enthält. Sie können einen Parameter verwenden, um die
gesuchte Zeichenfolge vom Benutzer zu erhalten, und dann das folgende berechnete Feld einrichten:
IF FIND([Product Name],[Product Lookup])>0 THEN [Product Name] ELSE NULL END
Diese Berechnung ist langsam, denn es ist ineffizient, auf diese Weise nach enthaltenen Zeichenfolgen
zu suchen. Eine bessere Möglichkeit wäre, die spezifische Funktion CONTAINS zu verwenden, weil diese
nach Weitergabe an die Datenbank in optimale SQL umgewandelt wird:
CONTAINS([Product Name],[Product Lookup])
In diesem Fall wäre die beste Lösung allerdings, gar kein berechnetes Feld zu verwenden, sondern einen
Schnellfilter mit Platzhalterzeichen.
Parameter für bedingte Berechnungen
Eine häufig auftretende Technik in Tableau besteht darin, für Endbenutzer einen Parameter bereitzustellen,
damit er einen Wert auswählen kann, der die Art der Berechnungsausführung bestimmt. Im Allgemeinen
werden dem Benutzer leicht verständliche Optionen unterbreitet, also wird der Parameter als Zeichenfolgetyp
erstellt. Wie bereits erörtert, sind numerische Berechnungen wesentlich schneller als
Zeichenfolgeberechnungen. Nutzen Sie also die Funktion „Anzeigen als“ der Parameter, um Textbeschriftungen
anzuzeigen, verwenden Sie jedoch zugrunde liegende Ganzzahlwerte für die Berechnungslogik.
Beispiel: Angenommen, der Endbenutzer soll die Ebene der Datumsaggregation für eine Ansicht steuern,
indem er mögliche Werte aus einer Auswahlliste wählt. Viele würden einen Zeichenfolgeparameter erstellen:
51
Wert Anzeigen als
Jahr Jahr
Quartal Quartal
Monat Monat
Woche Woche
Tag Tag
Danach würden Sie ihn in einer Berechnung der folgenden Art verwenden:
IF [Parameters].[Date Part Picker]="Jahr"
THEN DATEPART('year',[Order Date])
ELSEIF [Parameters].[Date Part Picker]="Quartal"
THEN DATEPART('quarter',[Date])
…
ELSE NULL END
Ein Parameter, der bessere Leistungen bewirkt, wäre ein Integer-Datentyp mit Textbeschriftungen wie:
Wert Anzeigen als
1 Jahr
2 Quartal
3 Monat
4 Woche
5 Tag
Die Berechnung würde dann wie folgt lauten. Beachten Sie, wie die Vergleiche für numerische Werte
erfolgen, und nicht für Zeichenfolgen:
IF [Parameters].[Date Part Picker]=1
THEN DATEPART('year',[Order Date])
ELSEIF [Parameters].[Date Part Picker]=2
THEN DATEPART('quarter',[Order Date])
..
ELSE NULL END
BONUS: Für dieses spezifische Problem gibt es eine noch schnellere Methode, diese Berechnung
durchzuführen. Verwenden Sie den ursprünglichen, auf Zeichenfolgen basierenden Parameter und
erstellen Sie die Berechnung wie folgt:
DATEPART([Parameters].[Date Part Picker], [Order Date]))
Damit werden die Elemente der Bedingungslogik komplett ausgeschieden, und Sie können die
Zeichenfolge DATEPART direkt in der Berechnung substituieren. Dies führt unter allen Optionen zum
optimalen SQL-Code.
Datumsumwandlung
Benutzer verfügen oft über Datumsangaben, die nicht im nativen Datumsformat gespeichert sind. Sie
können also eine Zeichenfolge oder ein numerischer Zeitstempel sein. In Tableau 8.1 wurde eine neue
52
Funktion DateParse() eingeführt, um diese Umwandlung zu erleichtern. Sie können jetzt einfach eine
Formatierungszeichenfolge übergeben:
DATEPARSE(“yyyyMMdd”, [YYYYMMDD])
Beachten Sie, dass in Tableau 8.1 DateParse() nur bei einer Teilmenge der Datenquellen unterstützt wird:
MySQL
Oracle
PostgreSQL
Tableau-Datenextraktion
Wenn Ihre Datenquelle DateParse() nicht unterstützt, besteht die alternative Technik zum Konvertieren
in ein ordnungsgemäßes Tableau-Datum darin, das Feld in eine Datumszeichenfolge zu parsen (zum
Beispiel „2012-01-01“ – beachten Sie, dass ISO-Zeichenfolgen zu bevorzugen sind, weil sie der
Internationalisierung entsprechen), und es anschließend an die Funktion DATE() weiterzugeben.
Wenn es sich bei den Ursprungsdaten um ein numerisches Feld handelt, ist es sehr ineffizient, in eine
Zeichenfolge umzuwandeln und anschließend in ein Datum. Es ist viel besser, die Daten numerisch zu
lassen und DATEADD() sowie literale Datumswerte zum Ausführen der Berechnung zu verwenden.
Eine langsame Berechnung wäre beispielsweise Folgendes (Konvertierung eines Zahlenfeldes im ISO-Format):
DATE(LEFT(STR([YYYYMMDD]),4)
+ “-“ + MID(STR([YYYYMMDD]),4,2)
+ “-“ + RIGHT(STR([YYYYMMDD]),2))
Für diese Berechnung wäre die folgende Vorgehensweise wesentlich effizienter:
DATEADD( 'day', INT([yyyymmdd] )% 100 - 1,
DATEADD( 'month', INT( [yyyymmdd]) % 10000 / 100 - 1,
DATEADD( 'year', INT( [yyyymmdd] ) / 10000 - 1900,
#1900-01-01# ) ) )
Beachten Sie, dass der Leistungsgewinn bei großen Datensätzen erheblich sein kann. Bei einer
Datenbank mit mehr als 1 Milliarde Datensätzen benötigte die erste Berechnung mehr als 4 Stunden,
während die zweite 1 Minute dauerte.
Datumsfunktionen
Verwenden Sie NOW() nur, wenn Sie die Detaildaten der Zeitstempelebene benötigen. Verwenden Sie
TODAY() für Berechnungen auf Datumsebene.
Logische Anweisungen
Wenn Sie mit komplexen logischen Anweisungen arbeiten, beachten Sie Folgendes:
ELSEIF > ELSE IF
Der Grund dafür ist, dass eine verschachtelte IF-Anweisung eine zweite IF-Anweisung berechnet, und
nicht als Teil der ersten berechnet wird. Somit würde dieses berechnete Feld:
53
IF [Region] = "East" and [Customer Segment] = "consumer"
then "East-Consumer"
Else IF [Region] = "East" and Customer Segment] <>"consumer"
then "East-All Others"
END
END
wesentlich schneller ablaufen als:
IF [Region] = "East" and [Customer Segment] = "consumer"
then "East-Consumer"
Elseif [Region] = "East" and [Customer Segment] <>"consumer"
then "East-All Others"
end
aber diese Form ist noch schneller:
IF [Region] = "East" THEN
IF [Customer Segment] = "consumer" THEN
"East-Consumer"
Else "East-All Others"
END
END
Entsprechend wird empfohlen, redundante Logikprüfungen zu vermeiden. Die folgende Berechnung:
IF [Sales] < 10 Then "Bad"
Elseif [Sales]>= 10 and [Sales] < 30 Then "OK"
Elseif [Sales] >= 30 then "Great"
END
wäre in dieser Form effizienter:
IF [Sales] < 10 Then "Bad"
Elseif [Sales] >= 30 then "Great"
else "OK"
END
Trennen grundlegender und aggregierter Berechnungen
Bei der Nutzung von Extrakten und benutzerdefinierten Aggregation teilen Sie die Berechnung auf.
Platzieren Sie die Berechnungen auf Zeilenebene in ein berechnetes Feld und die aggregierte
Berechnung in ein zweites berechnetes Feld. Anschließend können Extrakte die Berechnungen auf
Zeilenebene optimieren (vorab berechnen und materialisieren).
54
Teil 5 – Liegt es an den Unterschieden zwischen Desktop und Server? Es gibt Fälle, in denen eine Arbeitsmappe beim Einzelbenutzertest zufriedenstellend abläuft, auf Tableau
Server jedoch – mit vielen Benutzern – langsam ausgeführt wird. Im folgenden Abschnitt werden
Bereiche aufgezeigt, in denen die Unterschiede zwischen Einzel- und Mehrbenutzerszenarien
unterschiedliche Leistungsniveaus aufweisen.
Allgemeine Richtlinien
Verwenden Sie ein 64-Bit-Betriebssystem
Obwohl Tableau Server auf 32-Bit-Betriebssystemen von Microsoft problemlos ausgeführt werden kann,
sollten Sie für eine optimale Leistung eine 64-Bit-Edition wählen. Bei Tableau 8.1 können alle
Komponenten von Tableau Server als native 64-Bit-Prozesse ausgeführt werden. Das bedeutet, dass alle
Komponenten viel mehr RAM adressieren können. Unsere ersten Benchmarking-Tests ergeben, dass
sich die 64-Bit-Version von Tableau wesentlich besser skalieren lässt als die 32-Bit-Version.
Den Kunden wird dringend empfohlen, für ihre Tableau Server-Installation ein Upgrade auf 8.1 oder
höher durchzuführen und die 64-Bit-Version von Tableau Server bereitzustellen.
Fügen Sie weitere Kerne und mehr Speicher hinzu
Gleichgültig ob Tableau Server nun auf einem oder mehreren Computern ausgeführt wird: Als
allgemeine Regel gilt, dass sich durch mehr CPU-Kerne und mehr RAM die Leistung verbessern lässt.
Stellen Sie sicher, dass Sie die empfohlenen Hardware- und Softwareanforderungen von Tableau Server
erfüllen, und beurteilen Sie anhand von Zeitpunkt des Hinzufügens und Neukonfigurierens von
Arbeitscomputern, ob weitere Computer hinzugefügt werden sollten.
Im Juli 2013 haben wir Skalierbarkeitstests mit Tableau Server durchgeführt, um unseren Kunden bei der
Planung umfassender Bereitstellungen zu helfen. Wir haben drei verschiedene Serverkonfigurationen
getestet, bei denen wir einen, zwei oder drei Server in einer spezifischen Belastungstestumgebung
verwendet haben. Wir haben zwei verschiedene Arten von Berichten mit unterschiedlichem
Komplexitätsgrad getestet. Wir versuchten, eine reale Nutzung zu simulieren, indem wir die einzelnen
Benutzer aufgefordert haben, diverse Aufgaben auszuführen, etwa Bericht laden, Auswahl ausführen,
Ansicht filtern und Registerkarten wechseln. Im folgenden Whitepaper werden diese Tests beschrieben
und Techniken zur Verbesserung der Leistung von Tableau Server umrissen.
http://www.tableausoftware.com/learn/whitepapers/tableau-server-scalability-explained
Konfiguration
Planen von Aktualisierungen für Nebenzeiten
Sollte die Serverleistung langsam sein, können Sie der Verwaltungsansicht Hintergrundaufgaben Ihre
aktuellen Zeitpläne für Aktualisierungsaufgaben entnehmen. Planen Sie Aktualisierungen nach
Möglichkeit für Nebenzeiten. Wenn Ihre Hardwarekonfiguration dies zulässt, können Sie die
Hintergrundprozesskomponenten auf einen spezifischen Worker-Knoten verschieben.
Überprüfen Sie das Zeitüberschreitungslimit der VizQL-Sitzung
Standardmäßig ist das Zeitüberschreitungslimit der VizQL-Sitzung auf 30 Minuten eingestellt. Selbst VizQL-
Sitzungen, die sich im Leerlauf befinden, verbrauchen weiterhin Speicher und CPU-Zyklen. Wenn ein niedrigeres
Limit ausreichend ist, ändern Sie mit tabadmin die Einstellung vizqlserver.session.expiry.timeout.
55
Beurteilen Sie die Prozesskonfiguration
Tableau Server ist in sechs verschiedene Komponenten unterteilt, die als Serverprozesse bezeichnet werden.
Obwohl deren Standardkonfiguration entwurfsgemäß für eine breite Vielzahl von Szenarien funktioniert,
können die Prozesse neu konfiguriert werden, um andere Leistungsziele zu erreichen. Insbesondere können Sie
steuern, auf welchen Computern wie viele Prozesse ausgeführt werden. Richtlinien zur Bereitstellung auf
einem, zwei und drei Computern finden Sie unter Verbessern der Serverleistung.
Überwachen von Tableau Server Tableau Server umfasst einige Ansichten für Administratoren, die die Überwachung der Tableau Server-
Aktivitäten erleichtern sollen. Diese Ansichten befinden sich in der Tabelle „Analyse“ auf der
Wartungsseite des Servers.
Weitere Informationen zu diesen Ansichten finden Sie unter dem folgenden Link:
http://onlinehelp.tableausoftware.com/current/server/de-de/adminview.htm
Zusätzliche benutzerdefinierte Verwaltungsansichten können Sie erstellen, indem Sie eine Verbindung
zur Datenbank PostgreSQL herstellen, einem Teil des Tableau-Repositorys. Anleitungen finden sich hier:
http://onlinehelp.tableausoftware.com/current/server/de-de/adminview_postgres.htm
Zwischenspeicherung Mithilfe der Zwischenspeicherung kann Tableau Server schnell auf Client-Anforderungen reagieren,
insbesondere bei Ansichten, die eine Verbindung zu Live-Datenbanken herstellen. Tableau Server
verfügt über mehrere Zwischenspeicherebenen, die so konzipiert sind, dass Daten und Berechnungen
für mehrere Benutzeranfragen wiederverwendet werden:
56
Clientseitiges Rendern
Bevor die Zellen und Daten der Ansicht in einem Client-Webbrowser angezeigt werden, werden sie
abgerufen, interpretiert und gerendert. Tableau Server kann diesen Prozess im Client-Webbrowser oder auf
dem Server ausführen. Das clientseitige Rendern ist der Standardmodus, weil die Handhabung des Renderns
und aller Interaktionen auf dem Server einen verstärkten Netzwerkdatenverkehr und
Umlaufzeitverzögerungen zur Folge haben kann. Beim clientseitigen Rendern laufen die meisten
Interaktionen für Ansichten schneller ab, weil sie direkt vor Ort im Client interpretiert und gerendert werden.
Einige Ansichten werden allerdings auf dem Server effizienter gerendert, weil dort mehr Rechenleistung zur
Verfügung steht. Serverseitiges Rendern ist bei einer Ansicht sinnvoll, die so komplex ist, dass die Bilddateien
wesentlich weniger Bandbreite erfordern als die zum Erstellen der Bilder verwendeten Daten. Und da Tablets
normalerweise eine geringere Leistung haben als PCs, können sie komplexe Ansichten nicht so gut
handhaben. Es gibt Fälle, in denen eine im Webbrowser eines PCs geöffnete Ansicht clientseitig, die gleiche
Ansicht jedoch für den Webbrowser eines Tablets serverseitig gerendert wird.
Tableau Server ist so konfiguriert, dass diese Situationen mithilfe der Schwellenwertberechnung als
Auslöser für das Rendern einer Ansicht auf dem Server bzw. im Webbrowser automatisch gehandhabt
werden. Als Administrator können Sie diese Einstellung für PCs und Tablets testen. Weitere
Informationen finden Sie in den folgenden Themen.
Sie können dies jederzeit festlegen, indem Sie der Ansichts-URL Folgendes hinzufügen. In der
Symbolleiste der Ansicht weist ein kleines „S“ oder „B“ auf den Rendermodus hin:
“?:jsdebug=true”
Sie können das clientseitige Rendern mit den folgenden URL-Parametern auch aktivieren bzw. deaktivieren:
57
Deaktivieren = “?:render=false”
Aktivieren = “?:render=true”
Clientseitiges Rendern wird im Internet Explorer 9.0 oder höher, Firefox, Chrome und Safari unterstützt.
Diese Webbrowser enthalten das HTML-5-Element <canvas>, dass für clientseitiges Rendern verwendet wird.
Wenn eine Ansicht Polygone, benutzerdefinierte Formen oder die Seitenverlauffunktion verwendet, wird
serverseitiges Rendern ausgeführt, auch wenn ansonsten clientseitiges Rendern aktiviert ist.
Bildkachel-Cache
Wenn clientseitiges Rendern nicht verwendet wird, bietet Tableau drei Ebenen zum Rendern auf dem
Server, die zur Verbesserung der Renderzeiten für die Ansicht beitragen. Die erste Ebene ist der
Bildkachel-Cache
Dashboards werden dem Client als eine Reihe von „Bildkacheln“ übermittelt, die dann zusammengesetzt
das komplette Dashboard ergeben. Die Wiederverwendung von Inhalten aus diesem Zwischenspeicher
ist höchst effizient hinsichtlich der Serverreaktionszeit und tritt in folgenden Fällen ein:
Das Dashboard wurde vorher bereits gerendert und die Lebenszeit des Caches ist noch nicht
abgelaufen.
Das Dashboard verwendet keine Sicherheitsfunktionen pro Benutzer.
Es wird ein Dashboard der Größe angefordert, das zuvor im Cache abgelegt wurde. Dies kann
auftreten, wenn zwei Client-Browserfenster genau die gleiche Größe haben oder wenn das
Dashboard mit genauen Größeneinstellungen entworfen wurde.
Der Bildkachel-Cache ist plattenspeicherbasiert und wird vom Gateway-Service verwaltet. Es gibt einen
pro VizQL-Arbeitscomputer.
Modellcache
Wenn dieser Bildkachel-Cache nicht verwendet werden kann, muss der VizQL-Server die angeforderten
Bilder erneut rendern. Dafür kann er möglicherweise alle zuvor ausgeführten Berechnungen erneut
nutzen, nämlich berechnete Felder, Tabellenberechnungen, Referenzlinien, Trendlinien usw. Diese
Ergebnisse werden im VizQL-Modellcache gespeichert und können in folgenden Fällen genutzt werden:
Das angeforderte Dashboard wurde vorher von dieser VizQL-Instanz bereits gerendert und die
Lebenszeit des Caches ist noch nicht abgelaufen.
Es gibt keine Änderungen an den angeforderten Daten. Alle Filter, Parameter und dynamischen
Berechnungen sind gleich.
Es gab keine Änderungen an den Berechnungen, keine Änderungen an den Referenzlinien,
Trendlinien usw.
Das Dashboard verwendet keine Sicherheitsfunktionen pro Benutzer.
Der Modellcache ist im Arbeitsspeicher und es gibt einen pro VizQL-Serverinstanz. Wenn mehrere VizQL-
Instanzen ausgeführt werden, kann dies die Effizienz des Modellchaches bei einer geringen
Benutzeranzahl reduzieren.
58
Abfrageergebniscache
Wenn der Modellcache nicht verwendet werden kann, können Sie alle erforderlichen Berechnungen
mithilfe von Daten durchführen, die bereits aus der Datenquelle gelesen wurden und sich im
Abfrageergebniscache befinden. Der Abfrageergebniscache enthält die Datensätze, die von Abfragen
zurückgegeben werden. Sie können sie unter folgenden Bedingungen nutzen:
Das angeforderte Dashboard wurde vorher von dieser VizQL-Instanz bereits gerendert und die
Lebenszeit des Caches ist noch nicht abgelaufen.
Es gibt keine Änderungen an den Dimensionen und Kennzahlen, die aus der Datenquelle benötigt
werden. Es wurden keine Felder geändert, beispielsweise durch ein dynamisch berechnetes Feld.
Es gibt keine Änderungen an den Filtern auf dem Dashboard.
Das Dashboard verwendet keine Sicherheitsfunktionen pro Benutzer.
Wie der Modellcache ist der Abfrageergebniscache im Arbeitsspeicher und es gibt einen pro VizQL-
Serverinstanz. Wenn mehrere VizQL-Instanzen ausgeführt werden, kann dies die Effizienz des
Abfrageergebniscache bei einer geringen Benutzeranzahl reduzieren.
Maximieren der Cachenutzung
Wie bereits erörtert, ist die effizienteste Maßnahme eines Designers von Arbeitsmappen die Einstellung
der Dashboardgröße auf „genau“, um die Wiederverwendung des Bildstapels und der Modellcaches zu
gewährleisten.
Optimieren von Caches
Auf makroskopischer Ebene kann die Leistung des Caches auf einem Tableau Server über das
Konfigurationsdienstprogramm von Tableau Server mit einer von drei Einstellungen konfiguriert werden:
Minimieren
von Abfragen
Jeder VizQL-Server behält Modelle und Abfrageergebnisse so lange wie
möglich im Cache.
Abfragen werden im Cache gespeichert, bis sie explizit aktualisiert werden.
Der Cache wird im Arbeitsspeicher eingerichtet. Wenn der Arbeitsspeicher voll
wird, werden die ältesten Elemente im Cache ausgelagert.
Gleichmäßig Jeder Server setzt Modelle und Daten mindestens so lange in den Cache, wie
festgelegt wurde.
Abfragen erhalten Daten aus dem Cache, die maximal die festgelegte Anzahl
von Minuten alt sind.
Aktuellste Die Server speichern weder Modelle noch Daten im Cache.
Die Anforderung wird mit den aktuellsten Daten aus der Datenquelle durchgeführt.
Diese Option belastet die Server viel stärker.
Es ist möglich, Tableau dazu zu zwingen, alle Caches zu umgehen und eine Direktabfrage in der Datenquelle
durchzuführen, indem der Parameter „?:refresh=yes“ an die Ansichts-URL angehängt wird. Beispiel:
59
http://demo-
apac.tableausoftware.com/views/NewWaveDashboard/ExecutiveDashboard?:refresh=yes
Tableau Server-Administratoren können auch die Größe des Modell- und Abfrageergebniscaches
optimieren. Diese Einstellungen werden über die tabadmin-Befehlszeilenfunktion geändert.
Modellcache vizqlserver.modelcachesize:30
Die Anzahl der im Cache zu speichernden Modelle, wobei ein Modell pro
viz-Instanz in einer Arbeitsmappe vorhanden ist
Abfragecache vizqlserver.querycachesize:64
Die Größe in Megabytes der im Cache zu speichernden Abfrageergebnisse
Detailliertere Hinweise finden Sie unter dem folgenden Link:
http://onlinehelp.tableausoftware.com/current/server/de-de/reconfig_tabadmin.htm
Beachten Sie, dass eine Änderung dieser Einstellung die Menge des Arbeitsspeichers erhöht, die von den
VizQL-Serverinstanzen genutzt wird. Stellen Sie sicher, dass genügend Arbeitsspeicher auf Ihrer Tableau
Server-Maschine vorhanden ist, um dies zu unterstützen.
60
Teil 6 – Müssen andere Faktoren berücksichtigt werden? In diesem abschließenden Abschnitt werden andere Faktoren untersucht, die in vielen Fällen nicht so
einfach zu verändern sind. Beispiele dafür sind die Wahl des Betriebssystems, die Hardware, auf der
Tableau läuft ... Diese Faktoren können sich auf die Leistung von Tableau auswirken.
Umgebung
Betriebssystem: 32 Bit oder 64 Bit
Grundsätzlich ist zu empfehlen, Tableau auf einem 64-Bit-Betriebssystem auszuführen. Seit Tableau 8.1 ist
die komplette Anwendung auf 64 Bit ausgelegt. Das bedeutet, dass die Anwendung > 3,2 GB RAM
verwenden kann. Damit sind größere Abfragen und das Rendern von viel mehr Datenmarkierungen möglich.
Dies hat wesentliche Auswirkungen bei Szenarios, in denen eine Verschmelzung eines Felds mit hoher
Kardinalität erfolgt oder (gegen die Empfehlung) versucht wird, eine sehr große Kreuztabelle zu rendern. In
praktischen Begriffen ausgedrückt, war dies ein großer Vorteil für Kunden, die viele Datenmarkierungen
rendern, beispielsweise angepasste geografische Polygone.
Mehr Arbeitsspeicher oder schnellere CPU
Wie bei den meisten Anwendungen bringen mehr Arbeitsspeicher und eine schnellere CPU auch bei
Tableau Vorteile. Einige der von Tableau durchgeführten Aktionen sind Multi-Thread-Vorgänge (z. B.
Erstellen oder Aktualisieren eines Datenextrakts) und profitieren daher von mehr Prozessorkernen.
SSD und mechanische Festplatten
Einige Aktionen von Tableau bewirken intensiven E/A-Verkehr (z. B. Laden/Erstellen/Aktualisieren eines
Datenextrakts) und arbeiten optimiert, wenn anstelle von mechanischen Festplatten SSDs verwendet werden.
Schnellere Netzwerkschnittstelle
Wenn die Daten von der Tableau-Workstation entfernt sind oder Sie Daten oder Arbeitsmappen auf
dem Tableau Server veröffentlichen, profitiert Tableau von einer schnelleren Netzwerkschnittstelle und
einer Netzwerkverbindung mit geringer Latenz.
Wahl des Browsers
Tableau verwendet JavaScript umfassend. Die Geschwindigkeit des JavaScript-Interpreters im Browser
hat Auswirkungen auf die Schnelligkeit des Renderns. Das Feld ist dicht gedrängt und die Entwicklung ist
rasant, aber derzeit lassen sich die Browser wie folgt einreihen:
Firefox, Chrome
Neuer IE (10+)
Alter (IE9-), Opera, Safari
Diese Empfehlung basiert auf den hier berichteten Zahlen:
http://www.zdnet.com/the-big-browser-benchmark-january-2013-edition_p2-7000009776/
61
Anhang A – Relationale und OLAP-Funktionen Tableau stellt Verbindungen sowohl zu Cube-Quellen (OLAP) als auch zu relationalen Datenquellen mit nativen Liveverbindungen her. Cube und
relationale Datenbank unterscheiden sich stark in ihrer Struktur, ihrem Zweck und allgemein auch in ihrer Leistung. Aufgrund dieser
Unterschiede hat Tableau die Verbindungen und Funktionen optimiert, um jede Art der Verbindung optimal zu nutzen.
Im Allgemeinen sind Cubes voraggregiert und strukturiert. Relationale Quellen sind im Allgemeinen disaggregiert und weniger strukturiert. Die
Tableau-Funktionen sind überwiegend identisch für die beiden Arten von Datenquellen.
Spezifisches Merkmal Cube Relational
Benutzerfilter Bei Cubes können die Sicherheitsfunktionen auf Benutzerebene definiert werden. Tableau kann diese Logik in Ihrer Umgebung nutzen. Sie brauchen Ihr Sicherheitsmodell in Tableau nicht neu zu erstellen. Wenn es nicht in Ihrem Cube definiert ist, können Sie es in Tableau definieren.
SICHERHEIT
Bei relationalen Datenquellen können die Sicherheitsfunktionen definiert werden. Sie brauchen diese Logik in Tableau nicht neu zu erstellen. Wenn Ihre Datenbank diese Logik nicht aufweist, kann sie in Tableau definiert werden.
SICHERHEIT
Datenverschmelzung In jeder Organisation sind Daten in Cubes und außerhalb zu finden. Tableau ermöglicht es Benutzern, relationale Daten einfach mit Cube-Daten zu verschmelzen, ohne dass die Daten bewegt oder im Cube modelliert werden müssen.
DATENVERSCHMELZUNG
Datenverschmelzung funktioniert mit relationalen Datenbanken, quer über Datenbanken und zu Cubes. Der Ansatz von Tableau zu Fragen der verteilten Datenquellen ist einmalig. Tableau verlangt nicht, dass Daten verschoben werden.
DATENVERSCHMELZUNG
Satzanalyse Sätze werden von vielen Cube-Benutzern geschätzt. Tableau kann diese Sätze nutzen. Wenn sie hingegen im Cube nicht existieren, können Sie einen dynamischen, dimensionalen Satz in Tableau erstellen.
SATZ MIT RANGFOLGE
Sätze sind eine Methode zum Speichern von dimensionalen Überschneidungen von Daten. Wenn Sie eine relationale Datenquelle verwenden, können Sie Sätze in den Daten in der Art von Cubes erstellen.
SÄTZE
62
Spezifisches Merkmal Cube Relational
Funktionen für aggregierte Berechnungen
Die Aggregation erfolgt vorher in einem Cube und Tableau reagiert mit dem Aggregationssatz im Cube. Dies ist einer der wichtigsten Leistungsvorteile von Cubes.
Aggregate werden in der Regel in einer relationalen Datenbank nicht vorher vorgenommen. Tableau ermöglicht dann dem Benutzer, die Aggregation in Tableau auszuwählen, und die Datenbank führt die Aggregation auf Anfrage aus.
Tableau-„Gruppen“ Gruppierungen werden üblicherweise im Cube durch den Entwickler definiert und vorausberechnet. Dies führt zu einer Leistungsverbesserung und zu einer Standardstruktur. Sie können die Gruppierung mit einfachem MDX vornehmen: [Customer].[CustomerGeography].[France] + [Customer].[CustomerGeography].[Germany]
Die Gruppierung wird in der Regel nicht vorher in einer relationale Datenbank modelliert. Tableau bietet jedoch die Möglichkeit, Gruppen direkt und jederzeit während Ihrer Analyse zu erstellen.
ERSTELLEN VON GRUPPEN
Tableau-„Partitionen“ Partitionen – Gruppe von Kennzahlenbereichen – werden in der Regel im Cube modelliert und sind Attribute im Dimensionsfenster. Damit ist eine gemeinsame Definition für Partitionen möglich. Benutzer können Partitionen in Tableau mit einfachem MDX-Code erstellen: str(INT(([Internet Sales Amount] / [Bin Size])) * [Bin Size])
Partitionen werden in der Regel nicht in einer relationalen Datenbank modelliert. Tableau bietet jedoch Benutzern die Möglichkeit, Partitionen für Kennzahlen zu erstellen.
GERADE PARTITIONEN
UNGERADE PARTITIONEN
Manipulationen von Zeichenfolgen
Manipulationen von Zeichenfolgen werden oft in einem Cube nicht vorher vorgenommen. Manipulationen von Zeichenfolgen können in Tableau mithilfe eines einfachen MDX-Codes erfolgen: LEFT([Product].[Product Categories].DataMember.MemberValue,LEN([Product].[Product Categories].DataMember.MemberValue)-5)
Bei einer Verbindung mit relationalen Quellen können Manipulationen von Zeichenfolgen direkt mit berechneten Feldern von Tableau erfolgen. Dies kann hilfreich sein, wenn die Groß- oder Kleinschreibung geändert wird, Zip 5 auf Zip 5+4 erstellt wird oder andere Manipulationen vorgenommen werden.
ZEICHENFOLGENFUNKTIONEN
63
Spezifisches Merkmal Cube Relational
Datentypen Datentypen (z. B. Zeichenfolge, Datum, Zahl) und Rollen (Dimension und Kennzahl) werden in einem Cube explizit definiert. Damit wird sichergestellt, dass vorher durchgeführte Aggregationen und Attribute in den richtigen Fenstern in Tableau angezeigt werden.
Tableau erkennt automatisch den Spaltentyp einer Spalte in einer relationalen Datenbank. Damit wird die Menge an Datenmanipulationen beschränkt, die Sie in Tableau vornehmen müssen. Wenn Sie Datentypen in Tableau ändern möchten, können Sie dies in einem Kontextmenü tun:
ÄNDERN VON DATENTYPEN
KPI/Scorecard In einem Cube können Sie Attribute definieren, die Informationen darüber enthalten, in welche KPI-Gruppen ein bestimmtes Element gehört. Sie können in Tableau mit einer einfachen Berechnung oder einem Parameter Schwellenwert-KPIs auch direkt erstellen:
[Internet Sales Amount] >= [Desired Sales]
In einer relationalen Datenbank können Sie KPI-Berechnungen mit einfachen berechneten Feldern sehr schnell erstellen.
KPI-BERECHNUNGEN
Aktionen Tableau-Aktionen werden mit Cubes umfassend unterstützt. Aktionen funktionieren auch aus einem Cube zu relationalen Quellen in derselben Arbeitsmappe. Cube-basierte Aktionen werden in Tableau nicht unterstützt.
AKTIONEN
Aktionen funktionieren in relationalen Datenquellen sowie quer über und zwischen Cubes und relationalen Quellen. Damit können beide Datentypen miteinander kommunizieren.
Hierarchien Dies ist einer der wichtigsten Vorteile der Verwendung von Tableau mit einem Cube. Tableau unterstützt auch asymmetrische oder uneinheitliche Drilldowns in die Hierarchie.
In relationale Datenbanken sind keine Hierarchien eingebaut, aber Tableau ermöglicht Ihnen, diese direkt zu erstellen.
EINRICHTEN VON HIERARCHIEN
Schnellfilter Wenn eine Verbindung mit einem Cube besteht, sehen Sie Schnellfilter als Teil der Hierarchie und ihre Struktur wird dargestellt. Sie können in einer Hierarchie auf mehreren Ebenen filtern. Wenn Sie ein einzelnes Attribut haben, können Sie die strukturierte Ansicht vermeiden und eine Hierarchie mit nur einer Ebene anzeigen.
Schnellfilter in einer relationalen Datenbank werden als eine Ebene ohne Struktur angezeigt. Sie können mit einem einzigen Klick mit der rechten Maustaste diese Schnellfilter in Visualisierungen und das Dashboard einfügen.
64
Spezifisches Merkmal Cube Relational
Extrakte Cubes sind aufgrund der vorherigen Aggregation von Natur aus schnell und benötigen keine Extraktion.
Relationale Datenbanken können oft langsam sein. Tableau bietet die schnelle Daten-Engine als Methode, um relationale Daten besonders schnell zu verarbeiten. Tableau bietet die Option einer Liveverbindung mit Extraktion der Daten.
Aliase Leicht verständliche Namen sind in Cubes normal. Wenn Sie eine Verbindung mit Essbase herstellen, können Sie jede Aliasdatei verwenden, die im Cube definiert wurde.
In relationalen Datenbanken können Sie Ihre Aliaswerte erstellen, um den Namen der Elemente einer Dimension zu ändern. Dies ist hilfreich, wenn Sie Objekte unter einem neuen Namen gruppieren möchten.
Formatierung Die Formatierung von Feldern (Prozentsatz, Währung usw.) werden in einem Cube definiert. Damit wird sichergestellt, dass Zahlen ohne Eingriff des Benutzers korrekt dargestellt werden.
Relationale Datenquellen haben in der Regel keine eigene Formatierung. Die Definition von Prozent- und Währungswerten kann direkt in Tableau erfolgen. Sie können sogar die Standardformatierung einrichten, damit jedes Mal, wenn diese Kennzahl verwendet wird, die Anzeige im richtigen Format erfolgt.
Sortierreihenfolge Cubes bieten dem Entwickler die Möglichkeit, die Sortierreihenfolge von Elementen mit einem Attribut oder einer Dimension zu definieren. Damit wird sichergestellt, dass Ihre Elemente bei der Verwendung von Attributen jeweils in der richtigen Reihenfolge angezeigt werden. Dies ist hilfreich, wenn es keine Standardformatierung gibt.
Relationale Datenbanken haben keine Standardformatierung als Teil ihrer Definition. In Tableau kann ein Benutzer eine Sortierreihenfolge aufgrund einer Kennzahl festlegen (beispielsweise Bundesstaaten nach Umsatz sortieren) oder auch die Standardmethode der manuellen Sortierung zulassen.
Fiskalische Kalender Cubes bieten dem Entwickler die Möglichkeit, verschiedene Kalender innerhalb der Cubes zu definieren. Egal ob es sich um einen fiskalischen Kalender, einen 4-4-5-Kalender oder Ihren eigenen Einzelhandelskalender handelt, Tableau erbt diese Struktur und verhält sich entsprechend.
Relationale Datenbanken speichern in der Regel nur Datumsangaben und keine verschiedenen Kalender. In Tableau kann ein Benutzer den Start eines neuen Geschäftsjahrs festlegen oder Datumsberechnungen so einrichten, dass sie einen 4-4-5- oder Einzelhandelskalender nachbilden.
Top Related