Dimension & Metrics

In der aktuellen Google Analytics Version, sind ein paar kleine Änderung für den Umgang mit den Dimensions & Metrics enthalten.

image

Für die erste Verison der Google Analytics Komponente hatte ich mir ein kleines Tool geschrieben, mit dem ich die Dimensionen und Metriken pflegen und dann in das verwendete XML Format exportieren konnte. Google hatte zu diesem Zeitpunkt noch keine Metadata API und es Bestand nur die Möglichkeit die Informationen manuell von der Google Analytics Seite abzutippen. Da die Änderungen an den Dimensionen und Metriken immer zahlreicher wurden, bin ich irgendwann dazu übergegangen, die XML Datei nicht mehr ausschließlich als Embedded Resource auszuliefern, sondern habe eine Funktion implementieren, mit der manuell bearbeitete XML Dateien nachgeladen werden konnten. Somit konnte jeder die XML Dateien auf die aktuellsten Google Dimensionen und Metriken anpassen.

Die Änderungen haben in der letzten Zeit jedoch so stark zugenommen, dass die mit der Komponente ausgelieferte Datei sehr schnell nicht mehr auf dem aktuellsten Stand waren und sich auch die Pflege seitens der User zunehmend nicht als praktikabel herausstellte. Eine neue Lösung musste also her.

Eine längere Zeit bestand bei mir die Idee die Metadata API in die Komponente zu integrieren, so dass immer die aktuellsten Daten in der Komponente zur Verfügung stehen. Da innerhalb der Komponente die Dimensionen und Metriken aber den richtigen SSIS Datenytpen mit den entsprechenden Length, Precision und Scale Werten zugeordnet werden müssen, hat sich diese Lösung für mich nicht als optimalste Lösung dargestellt.

Am Ende habe ich mich jetzt zwar nicht vollständig von der Metadata API verabschiedet, jedoch von der direkten Integration in die Komponente. In der aktuellen Version werden nach wie vor die XML Dateien für Dimensionen und Metriken mit ausgeliefert, die Embedded Resourcen existieren jedoch nicht mehr. Die Komponente wurde dafür um File Connection Manager erweitert, so dass die XML Dateien nun immer explizit ausgewählt werden müssen.

image

 

Achtung: Die mit der Komponente ausgelieferten XML Dateien liegen im Standard Installationspfad und sind damit nur mit Admin-Berechtigungen zu erreichen. Diese sollten also zuvor in ein anderes Verzeichnis kopiert werden.

Um regelmäßig aktuelle Dimensionen und Metriken als XML Datei für die Komponente zur Verfügung zu stellen, werde ich mit der neuen Version auf Codeplex auch eine Datenbankprojekt und ein SSIS Projekt zur Verfügung stellen. Das SSIS Projekt lädt die JSON Daten aus der Metadata API in die entsprechende Datenbank, so dass die Daten dort gepflegt werden können.

image

Neue Dimensionen und Metriken werden automatisch hinzugefügt und an die in der Datenbank definierten Datenytpen angepasst. Die Datenbank und die SSIS Pakete werde ich in Zukunft mit der Komponente weiter ausbauen, so dass auch die derzeit noch nicht verwendeten Informationen und Möglichkeiten der Metadata API irgendwann in die Komponente einfließen werden.

Das SSIS Paket verwendet zum Lesen der Google Metadata API das allseits bekannte Json.NET. Wird das Paket angepasst, muss in der Regeln die Referenz auf die entsprechende Assembly innerhalb des Script-Tasks neu gesetzt werden. Das Projekt für den SQL Server 2012 verwendet die Json.NET Library für .NET Framework 4.0, im SQL Server 2014 wird dagegen das .NET Framework 4.5 verwendet. Wenn das Paket auf einem System ausgeführt wird, auf dem auch die Google Analytics Komponente installierte ist, sollte Json.NET bereits im GAC installiert sein. Ist dies nicht der Fall, so muss das zum erfolgreichen Ausführen des Pakets nachgeholt werden.