{"id":55144,"date":"2020-01-13T00:00:00","date_gmt":"2020-01-12T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/tableau-v-roznitse-realno"},"modified":"2020-02-18T14:03:13","modified_gmt":"2020-02-18T11:03:13","slug":"tableau-v-roznitse-realno","status":"publish","type":"post","link":"https:\/\/prohoster.info\/de\/blog\/news\/tableau-v-roznitse-realno","title":{"rendered":"Tableau im Einzelhandel, wirklich?","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><b>Die Zeit f\u00fcr die Berichterstattung in Excel geht schnell zu Ende \u2013 der Trend zu benutzerfreundlichen Tools zur Pr\u00e4sentation und Analyse von Informationen ist in allen Bereichen sichtbar. Wir haben bereits intern \u00fcber die Digitalisierung der Berichterstellung diskutiert und uns f\u00fcr das Visualisierungs- und Self-Service-Analyse-System Tableau entschieden. Alexander Bezugly, Leiter der Abteilung f\u00fcr analytische L\u00f6sungen und Berichterstattung der Gruppe \u201eM.Video-Eldorado\u201c, sprach \u00fcber die Erfahrungen und Ergebnisse beim Aufbau eines operativen Dashboards.<\/b><\/p>\n<p>Ich sage gleich, nicht alles, was geplant war, konnte umgesetzt werden, aber die Erfahrung war interessant, ich hoffe, sie wird auch f\u00fcr Sie n\u00fctzlich sein. Und wenn jemand Ideen hat, wie man es besser machen k\u00f6nnte \u2013 w\u00e4re ich sehr dankbar f\u00fcr Ratschl\u00e4ge und Ideen.<\/p>\n<p><img decoding=\"async\" alt=\"Tableau im Einzelhandel, wirklich?\" src=\"\/wp-content\/uploads\/2020\/01\/81c41899e9b3acf1858a4faa627c121b.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIm Folgenden erfahren Sie, mit welchen Herausforderungen wir konfrontiert waren und was wir gelernt haben.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h4>Wie wir angefangen haben<\/h4>\n<p>\nIn der Gruppe \u201eM.Video-Eldorado\u201c gibt es ein gut ausgearbeitetes Datenmodell: strukturierte Informationen mit der erforderlichen Speichertiefe und eine gro\u00dfe Anzahl von festen Berichtsvorlagen (siehe Details <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/mvideo\/blog\/462015\/\">diesen Artikel geschrieben<\/a><\/noindex>). Daraus erstellen Analysten entweder Pivot-Tabellen oder formatierte Mailings in Excel, oder ansprechende Pr\u00e4sentationen in PowerPoint f\u00fcr die Endbenutzer.<\/p>\n<p>Vor etwa zwei Jahren begannen wir, anstelle von festen Berichten analytische Reports in SAP Analysis zu erstellen (ein Add-In f\u00fcr Excel, im Wesentlichen eine Pivot-Tabelle \u00fcber eine OLAP-Engine). Aber dieses Tool konnte die Bed\u00fcrfnisse aller Benutzer nicht abdecken, die meisten nutzten weiterhin die Informationen, die von den Analysten zus\u00e4tzlich verarbeitet wurden.<\/p>\n<p>Unsere Endbenutzer lassen sich in drei Kategorien einteilen:<\/p>\n<p><b>Top-Management<\/b>. Fordert Informationen in gut pr\u00e4sentierter und anschaulich verst\u00e4ndlicher Form an.<\/p>\n<p><b>Middle-Management<\/b>, fortgeschrittene Benutzer. Interessiert an der Datenforschung und in der Lage, selbstst\u00e4ndig Berichte zu erstellen, wenn die entsprechenden Tools vorhanden sind. Genau sie wurden zu den Hauptbenutzern der analytischen Berichte in SAP Analysis.<\/p>\n<p><b>Massenbenutzer<\/b>. Nicht interessiert an selbstst\u00e4ndiger Datenanalyse, nutzen Berichte mit begrenztem Freiraum, in Form von Mailings und Pivot-Tabellen in Excel.<\/p>\n<p>Unsere Idee war es, die Bed\u00fcrfnisse aller Nutzer abzudecken und ihnen ein einheitliches, benutzerfreundliches Werkzeug zu bieten. Wir haben mit dem Top-Management begonnen. Sie ben\u00f6tigten benutzerfreundliche Dashboards zur Analyse der wichtigsten Gesch\u00e4ftsergebnisse. So starteten wir mit Tableau und w\u00e4hlten zun\u00e4chst zwei Bereiche aus: Verkaufszahlen im Einzelhandel und online, mit eingeschr\u00e4nkter Tiefe und Breite der Analyse, die etwa 80 % der vom Top-Management angeforderten Daten abdecken sollten.<\/p>\n<p>Da die Benutzer der Dashboards das Top-Management waren, kam ein weiterer zus\u00e4tzlicher KPI des Produkts hinzu \u2013 die Reaktionsgeschwindigkeit. Niemand wird 20-30 Sekunden warten, bis die Daten aktualisiert sind. Die Navigation sollte in 4-5 Sekunden erfolgen, am besten sofort. Leider haben wir das nicht erreicht.<\/p>\n<p>So sah das Layout unseres Hauptdashboards aus:<\/p>\n<p><img decoding=\"async\" alt=\"Tableau im Einzelhandel, wirklich?\" src=\"\/wp-content\/uploads\/2020\/01\/a7a028feee6542dfbc1fd3c2feeaa3de.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDie zentrale Idee war es, die wichtigsten KPI-Treiber, von denen sich letztendlich 19 angesammelt haben, links zu b\u00fcndeln und deren Dynamik sowie die Aufschl\u00fcsselung nach den wichtigsten Attributen rechts darzustellen. Die Aufgabe scheint nicht kompliziert, die Visualisierung logisch und verst\u00e4ndlich, bis man in die Details eintaucht.<\/p>\n<h2>Detail 1. Datenvolumen<\/h2>\n<p>\nDie Hauptverkaufstabelle f\u00fcr das Jahr umfasst bei uns etwa 300 Millionen Zeilen. Da sowohl die Dynamik des aktuellen Jahres als auch die des Vorjahres abgebildet werden m\u00fcssen, betr\u00e4gt das Datenvolumen nur f\u00fcr die tats\u00e4chlichen Verkaufszahlen etwa 1 Milliarde Zeilen. Zudem werden die Informationen zu den Plan-Daten und dem Bereich Internet-Verk\u00e4ufe separat gespeichert. Daher, selbst wenn wir die spaltenbasierte In-Memory-Datenbank SAP HANA verwendet haben, betrug die Abfragegeschwindigkeit f\u00fcr die Auswahl aller Kennzahlen f\u00fcr eine Woche aus den aktuellen Speichern zur Laufzeit etwa 15-20 Sekunden. Die L\u00f6sung dieses Problems dr\u00e4ngt sich geradezu auf \u2013 zus\u00e4tzliche Materialisierung der Daten. Aber auch dabei gibt es Fallstricke, die ich im Folgenden erl\u00e4utere.<\/p>\n<h2>Detail 2. Nicht-additive Kennzahlen<\/h2>\n<p>\nViele unserer KPIs sind an die Anzahl der Belege gebunden. Dieser Wert stellt sich als COUNT DISTINCT der Anzahl der Zeilen (Beleg\u00fcberschriften) dar und zeigt unterschiedliche Summen je nach gew\u00e4hlten Attributen. Zum Beispiel, wie dieser Wert und davon abgeleitete Werte berechnet werden sollten:<\/p>\n<p><img decoding=\"async\" alt=\"Tableau im Einzelhandel, wirklich?\" src=\"\/wp-content\/uploads\/2020\/01\/0a6d676f0a5c2b779a5e7892b1f54929.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nF\u00fcr die Korrektheit der Berechnungen kann man:<\/p>\n<ul>\n<li>Solche Kennzahlen zur Laufzeit im Speicher berechnen;\n<\/li>\n<li>Die Berechnung \u00fcber das gesamte Datenvolumen in Tableau durchf\u00fchren, d.h. auf Anfrage in Tableau alle Daten zu den gew\u00e4hlten Filtern mit der Granularit\u00e4t der Belegpositionen bereitstellen;\n<\/li>\n<li>Eine materialisierte Sicht erstellen, in der alle Kennzahlen f\u00fcr alle Auswahlvarianten berechnet werden, die unterschiedliche nicht-additive Ergebnisse liefern.\n<\/li>\n<\/ul>\n<p>\nEs ist klar, dass in den Beispielen UTE1 und UTE2 die Attribute des Materials darstellen, die die Warenhierarchie repr\u00e4sentieren. Dies ist keine statische Angelegenheit; dar\u00fcber erfolgt das Management innerhalb des Unternehmens, da verschiedene Produktgruppen von unterschiedlichen Managern betreut werden. Wir hatten viele globale \u00dcberarbeitungen dieser Hierarchie, bei denen alle Ebenen ver\u00e4ndert wurden, wo die Beziehungen neu bewertet wurden, sowie st\u00e4ndige punktuelle \u00c4nderungen, bei denen eine Gruppe von einem Knoten zu einem anderen wechselt. In der \u00fcblichen Berichterstattung wird all dies dynamisch aus den Materialattributen berechnet. Im Falle der Materialisierung dieser Daten ist es notwendig, einen Mechanismus zur Verfolgung solcher \u00c4nderungen und zur automatischen \u00dcbertragung historischer Daten zu entwickeln. Eine durchaus komplexe Aufgabe.<\/p>\n<h2>Detail 3. Datenvergleich <\/h2>\n<p>\nDieser Punkt \u00e4hnelt dem vorherigen. Der Kernpunkt ist, dass in der Firma bei der Analyse mehrere Vergleichsebenen mit dem vorherigen Zeitraum gebildet werden:<\/p>\n<p><i>Vergleich mit dem vorherigen Zeitraum (Tag zu Tag, Woche zu Woche, Monat zu Monat)<\/i><\/p>\n<p>In diesem Vergleich wird davon ausgegangen, dass wir je nach dem vom Benutzer gew\u00e4hlten Zeitraum (zum Beispiel die 33. Woche des Jahres) die Dynamik zur 32. Woche anzeigen m\u00fcssen. Wenn wir Daten f\u00fcr den Monat ausw\u00e4hlen w\u00fcrden, zum Beispiel Mai, w\u00fcrde dieser Vergleich die Dynamik zum April zeigen.<\/p>\n<p><i>Vergleich mit dem Vorjahr<\/i><\/p>\n<p>Der Hauptpunkt besteht darin, dass man beim Vergleich von Tagen und Wochen nicht einfach denselben Tag des Vorjahres nimmt, also nicht nur das aktuelle Jahr minus eins setzen kann. Man muss den taggleichen Wochentag betrachten. Im Gegenteil, beim Vergleichen von Monaten muss man genau denselben Kalendertag des Vorjahres heranziehen. Es gibt auch Besonderheiten bei Schaltjahren. In den urspr\u00fcnglichen Datenspeichern sind alle Informationen nach Tagen aufgeteilt, es gibt keine separaten Felder f\u00fcr Wochen, Monate oder Jahre. Daher muss man, um einen vollst\u00e4ndigen analytischen \u00dcberblick im Dashboard zu erhalten, nicht nur einen Zeitraum, zum Beispiel eine Woche, betrachten, sondern vier Wochen berechnen und dann diese Daten vergleichen, um die Dynamik und Abweichungen abzubilden. Diese Logik zur Bildung des Vergleichs in der Dynamik kann entweder in Tableau oder auf der Seite des Dashboards implementiert werden. Ja, und wir waren uns dieser Details nat\u00fcrlich bewusst und dachten bereits in der Entwurfsphase dar\u00fcber nach, aber deren Einfluss auf die Leistung des endg\u00fcltigen Dashboards war schwer vorherzusagen.<\/p>\n<p>Bei der Einf\u00fchrung des Dashboards folgten wir einem langen Agile-Weg. Unser Ziel war es, so schnell wie m\u00f6glich ein funktionierendes Werkzeug mit den erforderlichen Daten zur Testung bereitzustellen. Daher arbeiteten wir in Sprints und konzentrierten uns darauf, die Arbeiten im aktuellen Datenspeicher zu minimieren.<\/p>\n<h2>Teil 1. Vertrauen in Tableau<\/h2>\n<p>\nUm die IT-Unterst\u00fctzung zu vereinfachen und \u00c4nderungen schnell umzusetzen, haben wir beschlossen, die Logik zur Berechnung nicht-additiver Kennzahlen und den Vergleich vergangener Zeitr\u00e4ume in Tableau zu realisieren.<\/p>\n<h3>Schritt 1. Alles live, keine Nachbearbeitung der Dashboards.<\/h3>\n<p>\nIn diesem Schritt haben wir Tableau an die aktuellen Dashboards angeschlossen und uns angesehen, wie die Anzahl der Belege f\u00fcr ein Jahr berechnet wird.<\/p>\n<p><b>Ergebnis:<\/b><\/p>\n<p>Die Antwort war ern\u00fcchternd \u2013 20 Minuten. Daten\u00fcbertragung \u00fcber das Netzwerk, hohe Belastung f\u00fcr Tableau. Wir haben verstanden, dass die Logik f\u00fcr nicht-additive Kennzahlen in HANA realisiert werden muss. Das hat uns nicht wirklich erschreckt, wir hatten bereits \u00e4hnliche Erfahrungen mit BO und Analysis gemacht und konnten schnelle Dashboards in HANA erstellen, die korrekt berechnete nicht-additive Kennzahlen liefern. Jetzt blieb nur noch, sie an Tableau anzupassen.<\/p>\n<h3>Schritt 2. Wir optimieren die Dashboards, keine Materialisierung, alles in Echtzeit.<\/h3>\n<p>\nWir haben eine separate neue Pr\u00e4sentation erstellt, die die erforderlichen Daten f\u00fcr TABLEAU dynamisch bereitstellte. Insgesamt haben wir ein gutes Ergebnis erzielt, indem wir die Zeit zur Erstellung aller Kennzahlen innerhalb einer Woche auf 9-10 Sekunden verk\u00fcrzt haben. Wir hatten ehrlich erwartet, dass die Reaktionszeit des Dashboards in Tableau beim ersten \u00d6ffnen 20-30 Sekunden betragen w\u00fcrde und danach aufgrund des Caches zwischen 10 und 12 Sekunden, was uns insgesamt zufrieden gestellt h\u00e4tte.<\/p>\n<p><b>Ergebnis:<\/b><\/p>\n<p>Erstes \u00d6ffnen der Dashboards: 4-5 Minuten<br \/>\nJeder Klick: 3-4 Minuten<br \/>\nEine solche zus\u00e4tzliche Verbesserung der Pr\u00e4sentation hatte niemand erwartet.<\/p>\n<h2>Teil 2. Eintauchen in Tableau<\/h2>\n<p><\/p>\n<h3>Schritt 1. Analyse der Tableau-Leistung und schnelles Tuning<\/h3>\n<p>\nWir begannen, zu analysieren, wof\u00fcr Tableau die meiste Zeit ben\u00f6tigt. Daf\u00fcr gibt es durchaus gute Tools, was nat\u00fcrlich ein Pluspunkt f\u00fcr Tableau ist. Das Hauptproblem, das wir festgestellt haben, waren sehr komplexe SQL-Abfragen, die Tableau erstellte. Diese hingen vor allem mit Folgendem zusammen:<\/p>\n<p> \u2014 der Transponierung von Daten. Da Tableau keine Werkzeuge zur Transponierung von Datens\u00e4tzen hat, mussten wir f\u00fcr die Erstellung des linken Teils des Dashboards mit der detaillierten Darstellung aller KPIs eine Tabelle mithilfe von CASE erstellen. Die Gr\u00f6\u00dfe der SQL-Abfragen in der Datenbank erreichte 120.000 Zeichen.<\/p>\n<p><img decoding=\"async\" alt=\"Tableau im Einzelhandel, wirklich?\" src=\"\/wp-content\/uploads\/2020\/01\/8fc4d99017ddd604bbabb5ea0a19b38d.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n \u2014 der Auswahl des Zeitraums. Eine solche Abfrage auf Datenbankebene ben\u00f6tigte mehr Zeit zur Kompilierung als zur Ausf\u00fchrung:<\/p>\n<p><img decoding=\"async\" alt=\"Tableau im Einzelhandel, wirklich?\" src=\"\/wp-content\/uploads\/2020\/01\/a9b9cc6ddd6b03c643935d070532728e.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nD.h. die Bearbeitung der Abfrage dauerte 12 Sekunden + 5 Sekunden zur Ausf\u00fchrung.<\/p>\n<p>Wir beschlossen, die Logik der Berechnungen auf der Tableau-Seite zu vereinfachen und einen weiteren Teil der Berechnungen auf die Pr\u00e4sentation und die Datenbankebene zu verlagern. Das brachte gute Ergebnisse.<\/p>\n<p>Zuerst haben wir die Transponierung dynamisch durchgef\u00fchrt, und zwar durch einen Full Outer Join in der finalen Berechnungsphase der VIEW, gem\u00e4\u00df dem Ansatz, der hier beschrieben ist: <noindex><a rel=\"nofollow\" href=\"http:\/\/en.wikipedia.org\/wiki\/Transpose\">Transpose \u2013 Wikipedia, die freie Enzyklop\u00e4die<\/a><\/noindex> und <noindex><a rel=\"nofollow\" href=\"http:\/\/en.wikipedia.org\/wiki\/Elementary_matrix#Row-addition_transformations\">Elementarmatrix \u2013 Wikipedia, die freie Enzyklop\u00e4die<\/a><\/noindex>.<\/p>\n<p><img decoding=\"async\" alt=\"Tableau im Einzelhandel, wirklich?\" src=\"\/wp-content\/uploads\/2020\/01\/5259995831dc8ae379a34bfe84e52daa.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDas hei\u00dft, wir haben eine Konfigurationstabelle erstellt \u2013 eine Transpositionsmatrix (21x21) und alle Kennzahlen in zeilenweiser Aufschl\u00fcsselung erhalten.<\/p>\n<p>Fr\u00fcher:<br \/>\n<img decoding=\"async\" alt=\"Tableau im Einzelhandel, wirklich?\" src=\"\/wp-content\/uploads\/2020\/01\/9382ee65a1482cc137a52b5f80c39eeb.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIst geworden:<br \/>\n<img decoding=\"async\" alt=\"Tableau im Einzelhandel, wirklich?\" src=\"\/wp-content\/uploads\/2020\/01\/1d6653ec427ce0621b441943f589d860.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDas Transponieren der Datenbank ben\u00f6tigt nahezu keine Zeit. Die Anfrage zu allen Metriken f\u00fcr die Woche wurde weiterhin in etwa 10 Sekunden bearbeitet. Allerdings ging die Flexibilit\u00e4t beim Erstellen des Dashboards f\u00fcr eine bestimmte Kennzahl verloren, d.h. f\u00fcr den rechten Teil des Dashboards, wo die Dynamik und die detaillierte Aufschl\u00fcsselung einer bestimmten Kennzahl dargestellt sind, wurde der Report fr\u00fcher in 1-3 Sekunden bearbeitet, da die Anfrage nur f\u00fcr eine Kennzahl lief. Jetzt w\u00e4hlt die Datenbank jedoch immer alle Kennzahlen aus und filtert das Ergebnis, bevor es an Tableau zur\u00fcckgegeben wird.<\/p>\n<p>Infolgedessen hat sich die Geschwindigkeit der Dashboard-Nutzung fast um das Dreifache verringert.<\/p>\n<p><b>Ergebnis:<\/b><\/p>\n<ol>\n<li>5 Sekunden \u2013 Parsen des Dashboards, Visualisierungen<\/li>\n<li> 15-20 Sekunden \u2013 Vorbereitung der Kompilierung von Anfragen mit Vorausberechnungen in Tableau<\/li>\n<li> 35-45 Sekunden \u2013 Kompilierung der SQL-Anfragen und deren parallele\/sequenzielle Ausf\u00fchrung in Hana<\/li>\n<li> 5 Sekunden \u2013 Verarbeitung der Ergebnisse, Sortierung, Neuberechnung der Visualisierungen in Tableau<\/li>\n<li>Nat\u00fcrlich waren solche Ergebnisse f\u00fcr das Gesch\u00e4ft unbefriedigend, und wir setzten die Optimierung fort.<\/li>\n<\/ol>\n<p><\/p>\n<h3>Phase 2. Minimale Logik in Tableau, vollst\u00e4ndige Materialisierung<\/h3>\n<p>\nWir waren uns bewusst, dass es unm\u00f6glich ist, ein Dashboard mit einer Reaktionszeit von wenigen Sekunden auf einem Report zu erstellen, der 10 Sekunden ben\u00f6tigt, und betrachteten die M\u00f6glichkeit der Materialisierung der Daten auf der Datenbankseite speziell f\u00fcr das ben\u00f6tigte Dashboard. Doch wir stie\u00dfen auf ein globales Problem, das oben beschrieben wurde \u2013 nicht additive Kennzahlen. Wir konnten es nicht umsetzen, dass Tableau beim \u00c4ndern von Filtern oder Rollouts flexibel zwischen verschiedenen Reports und Ebenen, die f\u00fcr verschiedene Produkt Hierarchien vorab berechnet wurden, umschaltet (im Beispiel generieren drei Anfragen ohne UTE, mit UTE1 und UTE2 unterschiedliche Ergebnisse). Daher entschieden wir uns, das Dashboard zu vereinfachen, auf die Produkthierarchie im Dashboard zu verzichten und zu beobachten, wie schnell es in der vereinfachten Version sein kann.<\/p>\n<p>So sammelten wir in diesem letzten Schritt ein separates Speicher, in dem wir alle KPIs in transponierter Form ablegten. Auf der Datenbankseite wird jede Anfrage an dieses Speicher in 0,1 \u2013 0,3 Sekunden bearbeitet. Im Dashboard erhielten wir folgende Ergebnisse:<\/p>\n<p>Erstes \u00d6ffnen: 8-10 Sekunden<br \/>\nJeder Klick: 6-7 Sekunden<\/p>\n<p>Die Zeit, die Tableau ben\u00f6tigt, besteht aus:<\/p>\n<ol>\n<li>0,3 Sekunden \u2013 Parsen des Dashboards und Kompilierung der SQL-Anfragen\n<\/li>\n<li>1,5-3 Sekunden \u2013 Ausf\u00fchrung der SQL-Anfragen in Hana f\u00fcr die Hauptvisualisierungen (wird parallel zu Punkt 1 gestartet)\n<\/li>\n<li>1,5-2 Sekunden \u2014 Rendering, Neuberechnung von Visualisierungen\n<\/li>\n<li>1,3 Sekunden \u2014 Ausf\u00fchrung zus\u00e4tzlicher SQL-Abfragen zur Ermittlung relevanter Filterwerte (Marke, Division, Stadt, Gesch\u00e4ft), Parsing der Ergebnisse\n<\/li>\n<\/ol>\n<p><\/p>\n<h3>Wenn wir eine kurze Zusammenfassung ziehen w\u00fcrden<\/h3>\n<p>\nUns hat das Tool Tableau aus Sicht der Visualisierung gefallen. In der Entwurfsphase haben wir verschiedene Visualisierungselemente betrachtet und alle in den Bibliotheken gefunden, einschlie\u00dflich komplexer mehrstufiger Segmentierungen und Multidriver-Waterfall.<\/p>\n<p>Bei der Einf\u00fchrung von Dashboards mit den wichtigsten Verkaufskennzahlen sind wir auf Leistungsprobleme gesto\u00dfen, die wir bisher nicht l\u00f6sen konnten. Wir haben \u00fcber zwei Monate investiert und ein funktional unvollst\u00e4ndiges Dashboard erhalten, dessen Reaktionsgeschwindigkeit am Rande des Ertr\u00e4glichen lag. Daraus haben wir folgende Erkenntnisse gewonnen:<\/p>\n<ol>\n<li>Tableau kann nicht mit gro\u00dfen Datenmengen umgehen. Wenn Ihre urspr\u00fcngliche Datenmodell mehr als 10 GB Daten enth\u00e4lt (ungef\u00e4hr 200 Millionen x 50 Zeilen), verlangsamt sich das Dashboard erheblich \u2013 von 10 Sekunden bis zu mehreren Minuten f\u00fcr jeden Klick. Wir haben sowohl mit live-connect als auch mit Extract experimentiert. Die Arbeitsgeschwindigkeit ist vergleichbar.\n<\/li>\n<li>Einschr\u00e4nkungen bei der Verwendung mehrerer Speicherorte (Datasets). Es gibt keine M\u00f6glichkeit, die Beziehung der Datasets mit Standardmitteln anzugeben. Wenn Umgehungsl\u00f6sungen zur Verbindung von Datasets verwendet werden, hat das erhebliche Auswirkungen auf die Leistung. In unserem Fall haben wir in Betracht gezogen, Daten in jedem ben\u00f6tigten Dimensionalen Material zu machen und auf diesen materialisierten Datasets Umschaltungen vorzunehmen, w\u00e4hrend die zuvor ausgew\u00e4hlten Filter beibehalten wurden \u2014 das stellte sich in Tableau als unm\u00f6glich heraus.\n<\/li>\n<li>In Tableau k\u00f6nnen keine dynamischen Parameter erstellt werden. Sie k\u00f6nnen einen Parameter, der zur Filterung des Datasets im Extrakt oder bei einer Live-Verbindung verwendet wird, nicht mit dem Ergebnis einer anderen Auswahl aus dem Dataset oder einem Ergebnis einer anderen SQL-Abfrage f\u00fcllen, sondern nur mit der nativen Benutzereingabe oder einer Konstante.\n<\/li>\n<li>Einschr\u00e4nkungen im Zusammenhang mit dem Erstellen von Dashboards mit OLAP-Elementen | Pivot-Tabellen. <br \/>\nIn MSTR, SAP SAC, SAP Analysis, when you add a dataset to a report, all objects on it are linked to each other by default. In Tableau, this is not the case; connections need to be set up manually. This is likely more flexible, but for all our dashboards, it\u2019s a mandatory requirement for the elements \u2013 hence this results in extra labor costs. Moreover, if you create linked filters so that, for instance, when filtering by region, the list of cities is limited to only those cities in that region, you immediately encounter sequential queries to the database or extract, which noticeably slows down the dashboard.<\/li>\n<li>Limitations in functions. Both with the extract and especially with the dataset from Live-connect, bulk transformations cannot be performed. This can be done through Tableau Prep, but that entails additional labor costs and another tool that needs to be learned and maintained. For example, you cannot transpose data, or join it with itself. This is limited by transformations on individual columns or fields that need to be selected through case or if, leading to very complex SQL queries, where the database spends most of its time compiling the query text. These inflexibilities of the tool had to be addressed at the level of the display, leading to a more complicated storage solution and additional loads and transformations.\n<\/li>\n<\/ol>\n<p>\nWe haven't given up on Tableau. However, as a tool capable of building industrial dashboards and a means to replace and digitize the entire corporate reporting system of the company, we are not considering Tableau.<\/p>\n<p>We are currently actively developing a similar dashboard on another tool and simultaneously trying to rethink the dashboard architecture in Tableau to simplify it even further. If the community is interested, we will share the results.<\/p>\n<p>We also welcome your ideas or advice on how to build fast dashboards in Tableau over such large volumes of data, as we have a website where the data far exceeds that in retail.<br \/>\n<br \/>Quelle: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/mvideo\/blog\/483656\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412\u0440\u0435\u043c\u044f \u043e\u0442\u0447\u0451\u0442\u043d\u043e\u0441\u0442\u0438 \u0432 Excel \u0441\u0442\u0440\u0435\u043c\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u0445\u043e\u0434\u0438\u0442 \u2014 \u0442\u0440\u0435\u043d\u0434 \u043d\u0430 \u0443\u0434\u043e\u0431\u043d\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0432\u0438\u0434\u0435\u043d \u0432\u043e \u0432\u0441\u0435\u0445 \u0441\u0444\u0435\u0440\u0430\u0445. \u041c\u044b \u0434\u0430\u0432\u043d\u043e \u043e\u0431\u0441\u0443\u0436\u0434\u0430\u043b\u0438 \u0432\u043d\u0443\u0442\u0440\u0438 \u0446\u0438\u0444\u0440\u043e\u0432\u0438\u0437\u0430\u0446\u0438\u044e \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u043e\u0442\u0447\u0451\u0442\u043d\u043e\u0441\u0442\u0438 \u0438 \u0432\u044b\u0431\u0440\u0430\u043b\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0438 self-service \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0438 Tableau. \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440 \u0411\u0435\u0437\u0443\u0433\u043b\u044b\u0439, \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c \u043e\u0442\u0434\u0435\u043b\u0430 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u0438 \u043e\u0442\u0447\u0451\u0442\u043d\u043e\u0441\u0442\u0438 \u0413\u0440\u0443\u043f\u043f\u044b \u00ab\u041c.\u0412\u0438\u0434\u0435\u043e-\u042d\u043b\u044c\u0434\u043e\u0440\u0430\u0434\u043e\u00bb, \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u043b \u043e\u0431 \u043e\u043f\u044b\u0442\u0435 \u0438 \u0438\u0442\u043e\u0433\u0430\u0445 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u0431\u043e\u0435\u0432\u043e\u0433\u043e \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u0430. \u0421\u043a\u0430\u0436\u0443 \u0441\u0440\u0430\u0437\u0443, \u043d\u0435 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-55144","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412\u0440\u0435\u043c\u044f \u043e\u0442\u0447\u0451\u0442\u043d\u043e\u0441\u0442\u0438 \u0432 Excel \u0441\u0442\u0440\u0435\u043c\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u0445\u043e\u0434\u0438\u0442 \u2014 \u0442\u0440\u0435\u043d\u0434 \u043d\u0430 \u0443\u0434\u043e\u0431\u043d\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0432\u0438\u0434\u0435\u043d \u0432\u043e \u0432\u0441\u0435\u0445 \u0441\u0444\u0435\u0440\u0430\u0445.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/de\/blog\/news\/tableau-v-roznitse-realno\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47Tableau \u0432 \u0440\u043e\u0437\u043d\u0438\u0446\u0435, \u0440\u0435\u0430\u043b\u044c\u043d\u043e? | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412\u0440\u0435\u043c\u044f \u043e\u0442\u0447\u0451\u0442\u043d\u043e\u0441\u0442\u0438 \u0432 Excel \u0441\u0442\u0440\u0435\u043c\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u0445\u043e\u0434\u0438\u0442 \u2014 \u0442\u0440\u0435\u043d\u0434 \u043d\u0430 \u0443\u0434\u043e\u0431\u043d\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0432\u0438\u0434\u0435\u043d \u0432\u043e \u0432\u0441\u0435\u0445 \u0441\u0444\u0435\u0440\u0430\u0445.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/de\/blog\/news\/tableau-v-roznitse-realno\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-01-12T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T11:03:13+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Is Tableau really in retail? | ProHoster","description":"The time for reporting in Excel is rapidly fading \u2014 the trend towards convenient tools for presenting and analyzing information is evident in all areas.","canonical_url":"https:\/\/prohoster.info\/de\/blog\/news\/tableau-v-roznitse-realno","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47Tableau \u0432 \u0440\u043e\u0437\u043d\u0438\u0446\u0435, \u0440\u0435\u0430\u043b\u044c\u043d\u043e? | ProHoster","og:description":"\u0412\u0440\u0435\u043c\u044f \u043e\u0442\u0447\u0451\u0442\u043d\u043e\u0441\u0442\u0438 \u0432 Excel \u0441\u0442\u0440\u0435\u043c\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u0445\u043e\u0434\u0438\u0442 \u2014 \u0442\u0440\u0435\u043d\u0434 \u043d\u0430 \u0443\u0434\u043e\u0431\u043d\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0432\u0438\u0434\u0435\u043d \u0432\u043e \u0432\u0441\u0435\u0445 \u0441\u0444\u0435\u0440\u0430\u0445.","og:url":"https:\/\/prohoster.info\/de\/blog\/news\/tableau-v-roznitse-realno","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-01-12T21:00:00+00:00","article:modified_time":"2020-02-18T11:03:13+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"55144","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 19:50:02","updated":"2022-10-05 23:10:07","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/55144","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=55144"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/55144\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=55144"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=55144"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=55144"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}