Efficient Workbooks - II.docx

64
1 Bewährte Verfahrensweisen für den Entwurf effizienter Tableau-Arbeitsmappen Zweite Ausgabe Alan Eldridge Tableau Software 15. April 2014

Transcript of Efficient Workbooks - II.docx

Page 1: Efficient Workbooks - II.docx

1

Bewährte Verfahrensweisen für den Entwurf effizienter Tableau-Arbeitsmappen Zweite Ausgabe

Alan Eldridge

Tableau Software

15. April 2014

Page 2: Efficient Workbooks - II.docx

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.

Page 3: Efficient Workbooks - II.docx

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

Page 4: Efficient Workbooks - II.docx

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

Page 5: Efficient Workbooks - II.docx

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.

Page 6: Efficient Workbooks - II.docx

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.

Page 7: Efficient Workbooks - II.docx

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.

Page 8: Efficient Workbooks - II.docx

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.

Page 9: Efficient Workbooks - II.docx

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:

Page 10: Efficient Workbooks - II.docx

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.

Page 11: Efficient Workbooks - II.docx

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

Page 12: Efficient Workbooks - II.docx

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.

Page 13: Efficient Workbooks - II.docx

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

Page 14: Efficient Workbooks - II.docx

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

Page 15: Efficient Workbooks - II.docx

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

Page 16: Efficient Workbooks - II.docx

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)

Page 17: Efficient Workbooks - II.docx

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.

Page 18: Efficient Workbooks - II.docx

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

Page 19: Efficient Workbooks - II.docx

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)

Page 20: Efficient Workbooks - II.docx

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.

Page 21: Efficient Workbooks - II.docx

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

Page 22: Efficient Workbooks - II.docx

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.

Page 23: Efficient Workbooks - II.docx

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.

Page 24: Efficient Workbooks - II.docx

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

Page 25: Efficient Workbooks - II.docx

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

Page 26: Efficient Workbooks - II.docx

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“.

Page 27: Efficient Workbooks - II.docx

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.

Page 28: Efficient Workbooks - II.docx

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.

Page 29: Efficient Workbooks - II.docx

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.

Page 30: Efficient Workbooks - II.docx

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ü:

Page 31: Efficient Workbooks - II.docx

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.

Page 32: Efficient Workbooks - II.docx

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]

Page 33: Efficient Workbooks - II.docx

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

Page 34: Efficient Workbooks - II.docx

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.

Page 35: Efficient Workbooks - II.docx

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:

Page 36: Efficient Workbooks - II.docx

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.

Page 37: Efficient Workbooks - II.docx

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:

Page 38: Efficient Workbooks - II.docx

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:

Page 39: Efficient Workbooks - II.docx

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:

Page 40: Efficient Workbooks - II.docx

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.

Page 41: Efficient Workbooks - II.docx

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.

Page 42: Efficient Workbooks - II.docx

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.

Page 43: Efficient Workbooks - II.docx

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.

Page 44: Efficient Workbooks - II.docx

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).

Page 45: Efficient Workbooks - II.docx

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.

Page 46: Efficient Workbooks - II.docx

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.

Page 47: Efficient Workbooks - II.docx

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.

Page 48: Efficient Workbooks - II.docx

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.

Page 49: Efficient Workbooks - II.docx

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.

Page 50: Efficient Workbooks - II.docx

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:

Page 51: Efficient Workbooks - II.docx

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

Page 52: Efficient Workbooks - II.docx

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:

Page 53: Efficient Workbooks - II.docx

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).

Page 54: Efficient Workbooks - II.docx

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.

Page 55: Efficient Workbooks - II.docx

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:

Page 56: Efficient Workbooks - II.docx

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:

Page 57: Efficient Workbooks - II.docx

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.

Page 58: Efficient Workbooks - II.docx

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:

Page 59: Efficient Workbooks - II.docx

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.

Page 60: Efficient Workbooks - II.docx

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/

Page 61: Efficient Workbooks - II.docx

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

Page 62: Efficient Workbooks - II.docx

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

Page 63: Efficient Workbooks - II.docx

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.

Page 64: Efficient Workbooks - II.docx

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.