Blogfeed mit Power BI visualisieren

Publiziert von

Blogfeed mit Power BI

Wir sehen uns heute an, wie mit dem hervorragenden Tool Power BI Desktop der Datenfeed eines Firmenblogs in wenigen Schritten visualisiert werden kann und so interessante Aufschlüsse über das eigene Blogverhalten gewonnen werden können.  Die fertige Visualisierung kann mit einem Klick auf PowerBI.com veröffentlicht werden und dort im Team – beispielsweise der Marketing Abteilung – geteilt und laufend aktualisiert werden. Die Anwendung kann dann beispielsweise gemeinsam mit der (Google Analytics) Web Traffic Analyse Bestandteil eines Marketing Dashboards sein.

Das Datenmodell kann anstelle von Power BI Desktop völlig gleichwertig auch mit Excel Power Query und Power Pivot aufgebaut werden, die Visualisierungs- und Analysemöglichkeiten sind jedoch in Excel Power View deutlich abgeschlagen und daher nicht empfehlenswert.

Der Aufbau der Anwendung erfolgt in 3 Schritten: Anbindung des Feeds des gewünschten Blogs (= Query), Anreicherung der Query um Logik (= Modellierung) und Visualisierung und Publizieren (= Data Discovery).

1. Anbindung des Feeds des gewünschten Blogs (= Query)

Das ist der schwierige Teil des Vorhabens, aber mit Trial & Error kommt man auch durch diesen Abschnitt ganz gut durch. Zuerst die Anwendung Power BI Desktop öffnen und den Dialog „Get Data“ aufrufen, für die Auswertung eines Blogfeeds wird die normale Web-Schnittstelle verwendet …

Blogfeed Query 01

… als URL die Feed-Adresse eintragen (in unserem Fall liefert die URL www.linearis.at/feed den eigentlichen Blog und die URL www.linearis.at/blog/feed würde die Kommentare liefern):

Blogfeed Query 02

Jetzt startet die Query-Komponente von Power BI Desktop, hier die Option Open File As … Xml Tables auswählen:

Blogfeed Query 03

Das hier nicht mehr sichtbare Feld „Attribute:version“ löschen wir weg (siehe Eintrag in den „Applied Steps“ rechts), dann den Expand-Button des Feldes channel klicken und mit OK alle Inhalte anzeigen lassen:

Blogfeed Query 04

Hier ist jetzt Trial & Error die richtige Strategie, am besten alle Expand-Buttons mal ausprobieren und mit dem „x“ in den Applied Steps wieder rückgängig machen. Alle Felder bis auf die folgenden weglöschen (siehe weitere Eintrag „Removed Columns1“ in den Applied Steps) und den Expand-Button des Feldes channel.item ausführen …

Blogfeed Query 05

… nach dem Bestätigen mit dem OK Button des Expand-Dialogs werden alle Blogbeiträge abgerufen und die durchgeführte Aktion in den Applied Steps entsprechend angezeigt:

Blogfeed Query 06

Auch in dieser Liste holen wir noch wertvolle Informationen durch entsprechende Expand-Aktionen auf folgenden Feldern in die Tabelle:

  • channel.item.category … zeigt die Zuordnung eines Blogbeitrags zu einer Category, da ein Blogbeitrag mehreren Categories zugeordnet sein kann, kommt es zu einer entsprechenden Vervielfachung der Blogbeiträge (ein Umstand, der uns in weiterer Folge vor Herausforderungen stellen wird)
  • creator … zeigt den Autor eines Blogbeitrags
  • Comments … zeigt die Anzahl der Kommentare eines Blogbeitrags

Blogfeed Query 07

Nicht benötigte Felder dieser Liste sollten wiederum gelöscht werden.

Schließlich fügen wir eine Custom Column zur Ermittlung des Bezugsdatums der Blogbeiträge hinzu. Unsere Bloglinks sind so aufgebaut, daß nach dem Text „/blog/“ das Datum des Blogbeitrags im Format „2016/01/29“ gezeigt wird und dann der Blogtitel. Daher fragen wir mit der Text.Range-Formel (entspricht der „Teil“- bzw. „Mid“-Formel in Excel) die 10 Zeichen des Datums ab der 28. Textstelle ab:

Blogfeed Query 08

Beachten Sie bitte, daß die hier anzuwendende Abfragesprache „M“ keinerlei Toleranz beim Syntax zuläßt, auch die Groß- und Kleinschreibung des Befehls Text.Range muß genau in dieser Form verwendet werden.

Die neue Spalte Blogpost Date wird abschließend noch als Datum formatiert (damit aus dem „2016/01/29“ ein „29.01.2016“ wird). Danach einen sprechenden Namen für die Query vergeben (hier „Blogfeed„) und den Query-Prozess mit dem Befehl Close & Apply abschließen:

Blogfeed Query 09

2. Anreicherung der Query um Logik (= Modellierung)

Nach Abschluß des Query-Prozesses erhalten wir den fertigen Table „Blogfeed“ in unserem Datenmodell (= Power Pivot), aufgrund der Einfachheit der Anwendung benötigen wir neben dieser Faktentabelle keinerlei Dimensionstabellen für die geplante Auswertung. Aufgrund der Mehrfachnennung der Blogbeiträge (wegen der Category-Aufgliederung, siehe oben) benötigen wir aber ein Measure # Blogposts, das die tatsächliche Anzahl der Blogposts wiedergibt. Dies wird sehr einfach mit dem DISTINCTCOUNT-Statement erreicht (hier ist die die Power Pivot Formelsprache DAX zu verwenden):

Blogfeed Model 01

Das Datenmodell könnte bezüglich der Mehrfachnennungen noch um folgendes ausgebaut werden:

  • Calculated Table für die einzigartigen Bloglinks als Basis für die Word Cloud
  • Measure für die # Comments, also die Anzahl der Kommentare

3. Visualisierung und Publizieren (= Data Discovery)

Die Belohnung für den Aufbau des Queries und des Datenmodells erhalten wir jetzt: die Analyse und die Visualisierung macht mit Power BI Desktop viel Spaß und geht extrem leicht von der Hand.

Wir erstellen als erstes einen Jahres-Slicer aus dem Feld „Blogpost Date“, obwohl es sich dabei nur um ein Datumsfeld handelt schlägt Power BI Desktop gleich automatisch die Auswertung auf Jahresebene vor (= Zeitintelligenz). Danach erstellen wir ein Column Chart für die Auswertung der Anzahl der Blogbeiträge pro Periode. Wie auch schon beim Slicer braucht hier lediglich das Feld „Blogpost Date“ ausgewählt werden, die Auswertung erfolgt dann gleich auf Jahresebene, mit den Drilldown-/Drillup-Buttons im Chart kann dann bequem von der Jahresebene etwa auf die Monatsebene navigiert werden:

Blogfeed Visuals 01

Als nächstes erstellen wir ein Bar Chart für die Auswertung der Blogposts nach Categories, aufgrund der Mehrfachzuordnung der Blogposts wird hier natürlich eine entsprechend vielfache Anzahl an Einträgen gezeigt. Die Visuals auf einer Berichtsseite sind in Power BI immer automatisch interaktiv miteinander verbunden, d.h. die Visuals filtern sich gegenseitig (und das Filterverhalten kann auch noch feinjustiert werden, hier ist der Modus „Highlighting“ aktiv):

Blogfeed Visuals 02

Als nächstes möchten wir noch eine interaktive Word Cloud aus den Beitragstiteln erstellen, dazu laden wir von app.powerbi.com/visuals das entsprechende Custom Visual herunter und importieren es nach Power BI Desktop:

Blogfeed Visuals 03

Das neue Word Cloud Custom Visual erscheint in der Liste der Visualizations, die Handhabung ist wirklich sehr einfach, da nur lediglich das Feld channel.item.title aktiviert wird und schon ist die Word Cloud nicht nur funktionsfähig sondern auch interaktiv mit den anderen Visuals der Berichtsseite verbunden (und als viertes Element erstellen wir noch einen Table mit den channel.item.links zur Anzeige der konkreten Blogbeiträge):

Blogfeed Visuals 04

Sinnvollerweise werden noch sogenannte Stopwörter für die Word Cloud definiert, also Texte die von der Visualisierung ausgeschlossen werden (hier: „mit in und die da im von to aus für fürs ist com das als beim“). Kritisch sind hier zwei Dinge anzumerken:

  1. Die Word Cloud ist aufgrund der Mehrfachnennung der Blogbeiträge verzerrt, für die ganz korrekte Darstellung braucht lediglich der oben genannte Calculated Table für die „Unique Blogpost Links“ angelegt zu werden.
  2. Die interaktive Filterung der anderen Visuals ausgehend von einem ausgewählten Begriff in der Word Cloud funktioniert nicht korrekt, andersrum aber schon.

Fazit und Ausblick

Die Umsetzung mit Power BI Desktop geht – etwas Technik-Interesse vorausgesetzt – sehr leicht von der Hand, die Visualisierung und Analyse macht richtig Spaß. In diesem Punkt ist Power BI Desktop der excel-basierten Lösung wirklich bereits haushoch überlegen, auch weil der Anwendungsfall keine excel-basierte / zell-basierte Analyse erfordert. Dazu ist Power BI Desktop eine sehr stabile und leistungsfähige 64-bit BI Anwendung.

Die fertige Visualisierung kann mit einem Klick auf den Button Publish auf PowerBI.com veröffentlicht werden (ein aktiver Account ist natürlich Voraussetzung) und dort im Team – beispielsweise der Marketing Abteilung – geteilt und laufend aktualisiert werden. Die Anwendung kann dann beispielsweise gemeinsam mit der (Google Analytics) Web Traffic Analyse Bestandteil eines Marketing Dashboards sein.

Robert Lochner

Robert Lochner ist seit 2001 als Unternehmer tätig und Gründer der Linearis. Seit seinem Betriebswirtschaftsstudium an der WU Wien ist er als Unternehmer in der BI Branche tätig, ist Trainer für Excel BI und Power BI und unterstützt Unternehmen bei der digitalen Transformation ihrer Business Intelligence Prozesse. Er ist Autor des Linearis Blogs und mehrerer fachlicher Publikationen.

Weitere Beiträge

Kategorien: Analyse, Dashboarding, Power BI im Team nutzen