Erstellen einer Webseitenstatistik mithilfe eines OLAP-Servers Projektarbeit Erstellen einer Webseitenstatistik mithilfe eines OLAP-Servers Jan Lübeck Envers AG
Agenda Einleitung Ist - Analyse Konzept Realisierung Fazit Einleitung
Einleitung
Seit 2000 in DU-Rheinhausen Zur Zeit 11 Mitarbeiter Die Envers AG Seit 2000 in DU-Rheinhausen Zur Zeit 11 Mitarbeiter IT Dienstleistungen Entwicklung/Vermarktung von Softwarelösungen
Eigenes CMS “Flexcove 3” Modularer Aufbau Serverseitiges Sessionsystem Das CMS Eigenes CMS “Flexcove 3” Modularer Aufbau Serverseitiges Sessionsystem Administration über Controlcenter
Ist-Analyse
Speicherung pro Seitenzugriff Datensammlung Speicherung pro Seitenzugriff Relationale Datenbank ( MySQL ) 2 Tabellen 1. Tabelle: Zugriffsdaten 2. Tabelle: Parameter pro Zugriff( 1:n ) Große Datenmengen Flexible Datensammlung
Anzeige pro Zeiteinheit: Auswertung Anzeige pro Zeiteinheit: Benutzerzahlen Seitenaufrufe Referer Javascript Bildschirmauflösung
Daten per SQL-Statements Neuberechnung bei jeder Abfrage Performance Daten per SQL-Statements Neuberechnung bei jeder Abfrage „Joins“ mit anderen Datenbanken Langsam: 4 bis 11 Minuten
Google Analytics: Log-Auswertung: Generell: Externe Tools Javascript nötig Log-Auswertung: Entweder Langsam Oder Statisch Wenig Information Generell: Abhängigkeit vom Datenformat
Konzept
Beschleunigung der Auswertung Einsatz eines OLAP-Servers Sollkonzept Beschleunigung der Auswertung Einsatz eines OLAP-Servers Abfrage per Webbrowser Linux/Apache/PHP Gleiches UI Gleicher Datenumfang
PALO Linux, Apache, PHP ( Anforderung ) OLAP-Server Bedingungen: Software Linux, Apache, PHP ( Anforderung ) OLAP-Server Bedingungen: Linux Möglichst kostengünstig PHP-Schnittstelle PALO
Realisierung
Softwareinstallation Palo
Online Analytics Processing Daten in “Cubes” OLAP Online Analytics Processing Daten in “Cubes” “Cube” ist Sinnbild Enthält Werte Dimensionen Definieren die Bedingungen Enthalten Elemente Summenelemente
Wert( Gesamt, Jahr, Zugriffe ) OLAP Schlüssel Zugriffe - Admin - Benutzer - Bot Monat - Jahr - Januar - Februar - … Jahr - Gesamt - … - 2007 - 2008 Abfrage von Werten Wert( 2008, Januar, Bot) Wert( 2008, Jahr, Benutzer ) Wert( Gesamt, Jahr, Zugriffe )
Definition der Dimensionen Zeitliche Einteilung Datum( “Year”, “Month”, “Day” ) “Hour”, “Minute”, “Second” Art der Zusammenfassung “Request” “Session” ( Bot, User, Admin )
Definition der Dimensionen Schlüssel-Wert-Paare HTTP-Variablen: Übergabeparameter Javascript-Parameter, wenn verfügbar Summierung als Hierarchie Typ, Name, Schlüssel Beispiel: HTTP|HTTP_REFERER|www.google.de
HTTP|User_Agent|Firefox Beispiel HTTP HTTP|Referer HTTP|Referer|www.google.de HTTP|Referer|www.msn.com HTTP|User_Agent HTTP|User_Agent|Firefox HTTP|User_Agent|IE_7
Auslesen der Daten von MySQL Füllen der Dimensionen Benutzer Zugriffe Importscript Auslesen der Daten von MySQL Füllen der Dimensionen Benutzer Zugriffe Schlüssel Füllen des Cubes
Trennung von Daten und Darstellung Auswertung Trennung von Daten und Darstellung Klasse „Analysis“ Wertet Überparameter aus Ermittelt Daten Erstellt XML-Daten XSLT-Prozessor Erhält XML-Daten Benutzt XSLT-Template Erstellt HTML-Daten
Fazit
Weitere Seitenaufrufe Vergleich Bisherige Auswertung Neue Auswertung Zeitvorteil Erster Seitenaufruf 11 Minuten 4 Minuten 275% Weitere Seitenaufrufe 1-6 Minuten 15-45 Sekunden 400-800% Import Ad-Hoc Ca. 10 Minuten -
Zu bewältigende Hürden Ausblick Erfahrungen mit PALO Relativ unflexibel Skaliert nicht Langsam im Import Alternative: HOLAP Zu bewältigende Hürden Zugriff über PHP Einsatz Linux oder Windows
Vielen Dank für Ihre Aufmerksamkeit