Create your own DWH - Part 1 Power Query

Werbung
CREATE YOUR OWN DWH WITH
EXCEL
PART 1: POWER QUERY
MANUEL SUMMERMATTER
BI-CONSULTANT
TRIVADIS AG
8152 GLATTBRUGG
CREATE YOUR OWN DWH WITH EXCEL
Inhaltsverzeichnis
1
Einleitung ......................................................................................................................... 3
2
Einsatz von Power Query .............................................................................................. 4
2.1
Datengrundlage
4
2.2
Extraction
5
2.3
Transformation
6
2.3.1 Separierung der Daten in Kolonnen
6
2.3.2 Erstellung der Dimensionen
8
2.3.3 Erstellung der Faktentabellen
3
10
Fazit ................................................................................................................................ 12
Manuel Summermatter
Seite 2 von 12
CREATE YOUR OWN DWH WITH EXCEL
1 Einleitung
Es wird aufgezeigt, in wie weit Excel bei der Erstellung eines eigenen, kleinen Data
Warehouses helfen kann. Dabei werden Statistiken verwendet, die Daten der UEFA
Championsleague beinhalten. Der Fokus liegt dabei auf dem ETL Prozess (Extraction,
Transformation, Load) und der Datenmodellierung. Weiter werden dann noch
verschieden Reportingmöglichkeiten aufgezeigt.
Im „Part 1: Power Query“ wird Power Query angeschaut, welches vor allem beim
Datenabzug (Extraktion aus Quellen) und bei der Datentransformation helfen soll.
Im „Part 2: Power Pivot“ wird das eigentliche Datenmodell erstellt. Die Modellierung
lehnt sich dabei an die dimensionale Modellierung (Dimensionstabellen und
Faktentabellen).
Im „Part 3: Reporting mit Excel“ werden unterschiedliche Reportingtools gezeigt, die
Excel zur Verfügung stellt.
Anmerkung: Es wird nicht jeder Schritt ausführlich beschrieben. Das Ziel besteht
darin, die unterschiedlichen Möglichkeiten und ggf. Grenzen aufzuzeigen.
Manuel Summermatter
Seite 3 von 12
CREATE YOUR OWN DWH WITH EXCEL
2 Einsatz von Power Query
Power Query kann als ETL-Werkzeug innerhalb von Excel verwendet werden. Es ist frei
zugänglich und kann als Add-in heruntergeladen werden. Hinter jedem Query steckt die
Programmiersprache M, welche explizit bearbeitet und erweitert werden kann. Dieses
Beispiel beschränkt sich allerdings auf die Transformationen, die die Benutzer ohne
Vorwissen dieser Sprache einsetzen können.
2.1
Datengrundlage
In diesem Testszenario werden Fussballstatistiken der UEFA Champions League verwendet.
Die Daten stammen aus einem PDF, aus welchem diverse Informationen in unterschiedliche
Textfiles transferiert wurden.
Anmerkung: Das Einzige was diese Datengrundlage nicht mitliefert, ist ein Zeitbezug.
Normalerweise besitzt ein DWH immer eine Datumsdimension. Da es hier aber um das
Auzeigen der Möglichkeiten von Power Query, Power Pivot etc geht, wird davon abgesehen.
Die eigentlichen Quellen in diesem Beispiel fürs Power Query sind Textfiles, die aus reinem
Fliesstext bestehen und keine bestimmten Delimiter wie beispielsweise Semikolon, Komma
etc. aufweisen (Siehe Bild unten).
Wie im Auszug oben ersichtlich ist, ist keine eindeutige Aufteilung in Kolonnen möglich, da
jeder Record unterschiedlich viele Informationen erhält (bspw. kann ein Spieler für mehrere
Clubs Tore geschossen haben).
Insgesamt werden in diesem Beispiel drei Quellen verwendet, die folgende Informationen
beinhalten:

Clubstatistiken

Torschützen (dieses Dokument befasst sich vor allem mit der Torschützenstatistik)

Spielereinsätze
Mittels Power Query sollen die Daten so transformiert werden, dass schlussendlich drei
Faktentabellen (Clubstatistiken, Torschützenstatistiken und Einsatzstatistiken) und zwei
Dimensionen (Dimension Club und Dimension Spieler) im PowerPivot-Modell erstellt werden
können.
Manuel Summermatter
Seite 4 von 12
CREATE YOUR OWN DWH WITH EXCEL
2.2
Extraction
Die Quellen liegen wie oben bereits erwähnt als Textfiles vor. Power Query bietet
unterschiedliche Möglichkeiten Daten von bestimmten Quellen abzuziehen, u.a. sind dies
(siehe Bild unten):




1
Daten vom Web
o
Online Search [1]
o
Angabe der Web-URL [2]
Daten aus unterschiedlichen Files [3]
o
Excel
o
XML
o
Textfiles
o
CSV
Daten aus Datenbanken [4]
o
SQL Server
o
Azure SQL DB
o
Access DB
o
Oracle DB
o
IBM DB2
o
MySQL DB
o
PostgreSQL DB
o
Sybase DB
o
Terradata DB
Daten aus diversen anderen Quellen [5]
o
Sharepoint Listen
o
Azure Marketplace
o
Facebook
o
Hadoop File System
o
Etc.
2
3
Manuel Summermatter
4
5
Seite 5 von 12
CREATE YOUR OWN DWH WITH EXCEL
Bei der Extraktion der Daten aus Textfiles muss der Pfad der jeweiligen Datei angeben
werden. Nach dem Quelldatenabzug der Texfiles liegen die Daten im Power Query Editor zur
Bearbeitung vor (siehe Bild unten). Aus dieser Datenbasis soll schlussendlich eine
Faktentabelle der Anzahl erzielten Tore für einen Verein, sowie eine Club- und
Spielerdimension entstehen (Analog gilt das auch für die Quellen zu den „Spielereinsätzen“
und „Clubstatistiken“).
Das Problem an den nun vorliegenden Daten, ist das Fehlen von eindeutigen Delimitern.
Weiter weisen einige Spieler mehrere Clubs auf, wobei eine eindeutige Zuweisung der
Kolonnen erschwert wird.
2.3
Transformation
Power Query gibt dem Anwender die Möglichkeit die einzelnen Transformationsschritte in
den Query Settings / Applied Steps einzusehen und ggf. auch zu bearbeiten (siehe Bild
unten).
2.3.1 Separierung der Daten in Kolonnen
Bei der Transformation der Daten geht es hauptsächlich darum, die Daten in die gewünschte
Form und Struktur zu bringen. In einem ersten Schritt müssen die Daten in unterschiedliche
Manuel Summermatter
Seite 6 von 12
CREATE YOUR OWN DWH WITH EXCEL
Kolonnen eingeteilt werden. Hierfür kann die Split Column Funktion für „Delimiter“ oder für
„Anzahl Zeichen“ eingesetzt werden (siehe Bild unten)
Da die Datenbasis keine eindeutigen Delimiter aufweisen und eine Aufteilung in Kolonnen
anhand der Anzahl Zeichen nicht möglich ist, muss dieser Schritt mehrere Male für
unterschiedliche Delimiter vorgenommen werden bis die Daten in der gewünschten Form
vorliegen (Siehe Bild unten).
Weitere Transformationsschritte:

Unerwünschte Zeichen entfernen (siehe gelbe Markierung oben im Bild)
o

Power Query Funktion: Replace Values
Leerzeichen am Anfang oder Schluss entfernen (Manchester United FC_ -> Der
Underscore signalisiert ein „unnötiges“ Leerzeichen)
o

Änderung des Datentyps (bspw. für Tore: Whole Number)
o

Power Query Funktion: Format -> Trim
Power Query Funktion: Data Type
Kolonnenüberschriften ändern
Im Bild unten ist das Zwischenergebnis nach den diversen Transformationsschritten
ersichtlich.
Manuel Summermatter
Seite 7 von 12
CREATE YOUR OWN DWH WITH EXCEL
2.3.2 Erstellung der Dimensionen
Für die Erstellung der Dimensionen (Spieler und Club) dienen die entsprechenden Kolonnen,
welche u.a. in der oben erstellten Basis (vgl. Kapitel 2.3.1) existieren. Dabei werden
unterschiedliche Querys verfasst, die bspw. jeweils die Clubs und Spieler auflisten. Für die
Clubs existieren jeweils mehrere Kolonnen (Club 1, Club 2 etc), die dafür in Frage kommen
(Step 1).
Gewisse Spieler haben nur für einen Club Tore geschossen und andere für mehrere Clubs.
Darum ist es möglich, dass bei einigen Spielern in Kolonnen die den Club anzeigen, NULLValues vorkommen. Diese Null-Values können herausgefiltert werden mit der Power Query
Funktion Text-Filters: Does not equal null (Step 2). Nachdem alle Null-Values herausgefiltert
wurden, können neue Querys erstellt werden, die die einzelnen Kolonnen jeweils
untereinander anhängen. Ein Nachteil hier ist es, dass jeweils nur zwei Querys
zusammengefügt werden können. Da aber mehre Querys mit den unterschiedlichen Clubs
existieren, muss dier Schritt mehrmals durchgeführt werden. Hierfür bietet Power Query die
Funktion Append an. Voraussetzung für eine Auflistung der Clubs untereinander ist dieselbe
Kolonnenüberschrift. Nun kann es sein, dass ein Club mehrmals vorkommt. Mit der Power
Query Funktion Remove Duplicates können die redundanten Einträge entfernt werden.
Anschliessend kann bspw. noch sortiert werden (Step 3). Die einzelnen
Transformationsschritte sind im Bild unten am Beispiel zur Erstellung der Dimension Clubs
veranschaulicht. In ähnlicher Art und Weise kann die Dimension Spieler erstellt werden.
Für die Club-Dimension wurde zusätzlich eine Ländertabelle aus dem Web eingelesen, welche
die Clubs den entsprechenden Ländern zuweist. Dabei kann eine Web-Url angegeben werden
und anschliessend kann die entsprechende Tabelle der Website ausgewählt und in ein Query
eingelesen werden. Dies ermöglicht schlussendlich bei der Modellierung des Power Pivot
Modells die Erstellung einer Hierarchie. Diese Möglichkeit, die eigenen Daten mit Inhalten
aus dem Internet anzureichern, ist eine der grossen Stärken von Power Query.
Manuel Summermatter
Seite 8 von 12
CREATE YOUR OWN DWH WITH EXCEL
Step 1
Step 2
Step 3
Manuel Summermatter
Seite 9 von 12
CREATE YOUR OWN DWH WITH EXCEL
2.3.3 Erstellung der Faktentabellen
Für die Erstellung der Faktentabellen wird wie für die Dimensionen auch, die Datenbasis
welche im Kapitel 2.3.1 erstellt wurde, verwendet. Hier wird näher auf die Erstellung der
Faktentabelle „Torschützenstatistiken“ eingegangen. Die anderen erstellten Faktentabellen
(Clubstatistiken und Spieler-Einsatzstatistiken) werden auf ähnliche Art erstellt.
In der zugrundeliegenden Datenbasis wird jeder Spieler nur einmal aufgelistet. Innerhalb
einer Zeile wiederum sind die erzielten Tore des Spielers für die verschiedenen Clubs
aufgelistet (siehe Bild unten).
Beispielsweise hat Christiane Ronaldo für zwei unterschiedliche Clubs (Manchester United FC,
Real Madrid CF) Tore geschossen, hingegen Lionel Messi nur für einen Club (FC Barcelona).
Das Ziel bei der Erstellung der Faktentabelle ist es nun, die Records untereinander aufzulisten
wie in der Tabelle unten veranschaulicht.
Spieler
Club
Anzahl Tore
Gesamtanzahl Tore
Christiano Ronaldo
Manchester United FC
15
75
Christiano Ronaldo
Real Madrid CF
60
75
Lionel Messi
Barcelona
null
75
…
Was an dieser Zielstruktur auffällt ist der Null-Value unter Anzahl Tore. Dieser ist von der
Quelle so gegeben und kommt jeweils vor, wenn ein Spieler nur für einen Club Tore
geschossen hat. Ist das der Fall, sind die Gesamtanzahl Tore des Spielers mit der Kolonne
Anzahl Tore identisch. Diese Null-Values werden allerdings erst im Power Pivot-Modell
ersetzt und nicht hier mittels Power Query.
Im ersten Schritt geht es also darum, Querys zu erzeugen, die die entsprechenden Kolonnen
beinhalten.
Folgendes Query (siehe Bild unten) zeigt die Auflistung der Spieler für den ersten Club.
Da nächste Query (siehe Bild unten) zeigt die Auflistung der Spieler für den zweiten Club.
Manuel Summermatter
Seite 10 von 12
CREATE YOUR OWN DWH WITH EXCEL
Die oben angezeigten Bilder zeigen das Endresultat eines Querys an. Dabei wurden folgende
weiteren Transformationen angewendet:

Alle Null-Values aussortiert (falls ein Spieler nur für einen Club Tore geschossen hat,
weist er bei den weiteren Clubs keinen Eintrag resp. einen Null-Value auf und wird
somit aussortiert)
o

Änderung des Datentyps
o

Power Query Funktion: Text-Filters, Does not equal null
Power Query Funktion: Data Type
Kolonnenüberschrift ändern
Zusätzlich wurden für jedes Query zwei Custom Columns eingefügt, welche fixe Werte
aufweisen (Power Query Funktion: Add Custom Column), um keine Informationen zu
verlieren, welche in der Datengrundlage enthalten sind.

Anzahl Clubs: Fixer Wert jeweils 1, um schlussendlich analysieren zu können für wie
viele Clubs ein Spieler Tore geschossen hat.

Bemerkung: Gibt die Information des „wie vielten Clubs eines Spielers“ zurück
Das Bild unten zeigt die beiden zusätzlich eingefügten Kolonnen (siehe Bild unten):
Analog werden die weiteren Querys erstellt. Anschliessend werden diese über die AppendFunktion zur schlussendlichen Faktentabelle zusammengefügt (siehe auch Kapitel 2.3.2 Append).
Manuel Summermatter
Seite 11 von 12
CREATE YOUR OWN DWH WITH EXCEL
3 Fazit
Power Query bietet gute Möglichkeiten Daten auf einfache Weise zu transformieren. Ein
grosser Vorteil den Power Query bietet, ist der Datenbezug von unterschiedlichsten Quellen.
Weiter lassen sich die Querys mit bestimmten Inhalten aus dem Web anreichern. So kann
man beispielsweise die eigenen produktiven Daten mit Informationen aus dem Web
anreichern und so noch bessere Möglichkeiten für die spätere Analyse ermöglichen.
Andererseits kann man mit Power Query nicht jede erdenkliche Transformation durchführen.
So fehlt mir beispielsweise eine Lookup-Funktion (nur Merge möglich), welche ich gut hätte
Einsetzen könne. Für diesen Punkt müsste man auf Power Pivot zugreifen (bspw. mit der
DAX-Funktion „Related“). Ebenso ist es schade, dass die Appendfunktion auf zwei Querys
begrenzt ist.
Rundum ist Power Query ein schönes Werkzeug, um Daten in die gewünschte Funktion zu
bringen, v.a. in Anbetracht dessen, dass es ein frei verfügbares Add-in ist und Excel sehr
verbreitet ist.
Manuel Summermatter
Seite 12 von 12
Herunterladen