Piwik PRO & ClickHouse – So erstellen wir schnelle und leistungsstarke Reports

Geschrieben von Karolina Lubowicka, Veronika Fachinger

Veröffentlicht Januar 22, 2019

Vor ein paar Monaten haben wir unsere Analytics Suite um das performance-starke Feature Custom Reports erweitert. Dank seines exzellenter Leistungsfähigkeit hat das neue Modul unsere Analytics-Lösung schneller und agiler als je zuvor gemacht.

Dahinter steckt das Database Management System von ClickHouse, das maßgeblich zu der Weiterentwicklung unseres Produkts beigetragen hat. Welche Verbesserung wir im Detail geschaffen haben und warum, erfahren Sie in diesem Artikel.

Was sind die Vorteile von Custom Reports? In unseren Blogartikeln erfahren Sie mehr:

Was wir mit Custom Reports erreichen wollten

Während der Entwicklung des Custom Reports Moduls, haben wir damit stets folgende Ziele verfolgt:

  • Einfache Verwendung & Bedienbarkeit: User sollten ohne jegliches Datenbank-Wissen und technische Expertise von allen Vorteilen der Reports profitieren
  • Mehr Auswahl: Usern sollten eine Reihe von Möglichkeiten zur Verfügung stehen, ihre Daten zu visualisieren
  • Schnelligkeit: Die Erstellung der Reports sollte überdurchschnittlich schnell funktionieren und ohne jegliche Vorbereitung durchgeführt werden können

Für das Erreichen dieser Ziele haben wir viele Szenarien durchgespielt. Eine der größten Herausforderungen war dabei das Backend der Datenbank. Um Reports schneller zu erstellen, mussten wir das row-oriented MySQL gegen eine flexiblere Lösung austauschen.

Piwik PRO vs. Google Analytics – Der ultimative Vergleich

Was sind die Vorteile, Nachteile, Gemeinsamkeiten und Unterschiede? Wir liefern Ihnen Antworten und einen vollständigen Überblick.

Reihenorientiert vs. spaltenorientiert

Die Schnelligkeit unserer Reporterstellung ist auf die column-oriented Lösung von ClickHouse zurückzuführen. Diese ist weitaus effektiver bei Anfragen mit einer kleinen Menge an Columns, welche bei Analytics-Prozessen typisch sind.

Der Unterschied zwischen einem column- und row-oriented Database Management System (DBMS) lässt sich durch die folgende Darstellung visuell veranschaulichen:

Reihenorientiertes DBMS

Quelle: ClickHouse

Spaltenorientiertes DBMS

Quelle: ClickHouse

Sie benötigen mehr Informationen zu column-oriented DBMS? Schauen Sie in den Vergleich unterschiedlicher Lösungen und die technischen Details.

Die interne Vorbereitung für eine reihenorientierte Datenbank

Um den vollen Nutzen aus einer reihenorientierte Datenbank zu ziehen, mussten wir einige Änderungen an unserem Datenmodell vornehmen. Dies betraf insbesondere das normalisierte Schema der Piwik PRO Datenbank, welches in ein wide-Format umgebaut werden musste.

Bei diesem Prozess, bekannt unter dem Begriff Denormalisierung, führt die Rücknahme der Normalisierung zu einem verbesserten Laufzeitverhaltens der Datenbankanwendung.

Diese Herangehensweise macht das Filtern bei einer großen Datenmenge effizienter und ermöglicht Echtzeit-Anfragen. Zudem ist der Prozess besonders nützlich für benutzerdefinierte Segmente, die auf sogenannten arbitrary (sprich willkürlich/beliebigen) Columns basieren und daher nicht leicht indexiert werden können.

Zur weiteren Verbesserung der Performance haben wir uns dazu entschieden, die Unterscheidung zwischen Sessions und Events beizubehalten. Dadurch können alle Reports, die keine zusätzlichen Event-Level-Dimensionen benötigen, noch schneller ermittelt werden.

Um das Ganze umzusetzen, haben wir einen ETL (extract, transform, load) Prozess implementiert. Hierbei werden alle paar Minuten Daten aus MySQL abgerufen, asynchron in kleinere Datenblöcke verarbeitet und dann in ClickHouse hochgeladen.

Was sind die Vorteile?

Trotz des Arbeitsaufwands, der hinter diesem Prozess liegt, sind die Vorteile ausschlaggebend:

  • Reporte können nun in Echtzeit erstellt werden
  • Es ist keine teure Vorverarbeitung der Quellen notwendig; z. B. bei benutzerdefinierten Daten-Segmenten

Custom Reports = Sekundenschnelle Erstellung von Reports jeglicher Metriken und Dimensionen

Gerne zeigen wir Ihnen, wie Sie Custom Reports anwenden können, um Ihre Zeit effektiv zu nutzen und auch ohne IT-Support nur die Reports zu erstellen, die Sie wirklich benötigen.

Piwik PRO Custom Reports

Erhalten Sie endlich nur die Insights, die für Sie von Bedeutung sind – Piwik PRO Custom Reports macht’s möglich