Funktionsweise von Lookups

In diesem Abschnitt wird anhand des Beispiels title aus dem Demo-Projekt erklärt, wie Lookups funktionieren.

Bestandteile

Lookups bestehen aus drei Teilen:
  1. Vergleichsfelder
  2. Wertefelder
  3. Tabelle mit Daten

Vergleichsfelder

In den Vergleichsfeldern wird angegeben welche Felder aus den Logdaten verglichen werden sollen. Jedem Vergleichsfeld wird eine Vergleichsfunktion (hier ~ bzw. Like) zugewiesen, die das Feld (hier filename) mit den Werten in der Tabelle vergleicht. Die Felder aus der Logdatei kann man vor dem Vergleich noch durch Funktionen beliebig manipulieren - beispielsweise könnte man den Dateinamen kleinschreiben: lowercase(filename).

Wertefelder

Die Wertefelder geben an welche Felder der Lookup den Logdaten hinzufügt. Im Beispiel wären das der Titel title und die Rubrik group. Zusätzlich muss angegeben werden, von welchem Typ das neue Feld sein soll ("Datentyp"). Wenn kein passender Eintrag in der Tabelle gefunden wird, so wird ein frei definierbarer Standardwert ("Default-Wert") verwendet.

Falls die "Funktion"-Einstellung nicht aktiviert ist, werden die Daten aus der Tabelle so wie angegeben in die Logdaten geschrieben. Ist das Feld aktiviert, so wird erwartet, dass das Feld eine Funktion, die Daten auswertet, enthält. Ein Beispiel hierfür ist das Wertefelder query im Suchmaschinenen-Lookup searchengine. In dieses Feld sollen Suchwörter aus dem Referrer geschrieben werden. Dieses Extrahieren der Suchwörter übernimmt hier die Funktion "queryparam".

Daten

Die Tabelle enthält die Daten zu den Vergleichs- und Wertefeldern. So steht beispielsweise in der title-Tabelle, dass falls der Dateiname /index.html ist, dass dann als Titel "Homepage" und als Rubrik "Sonstiges" verwendet werden soll. Die weiteren Zeilen enthalten Zuordnungen zu den weiteren Seiten.

Bei den Suchmaschinen wird beispielsweise überprüft, ob der Referrer (ohne Query) http://www.google.de/search ist. Wenn das der Fall ist, dann wird der Suchmaschinenname auf "Google" und das Land der Suchmaschine auf "deutsch" gesetzt. Die Suchanfrage wird dann mit der Funktion QueryParam(referrer,"q") aus dem Referrer gelesen und in das Suchmaschinen-query-Feld geschrieben. Bei anderen Suchmaschinen müssen andere Parameter ausgelesen werden (z.B. bei Yahoo p=...).

Funktionsweise

Ein Lookup wird für jede Anfrage der Logdatei einzeln ausgeführt. Es wird jeweils die erste Zeile der Lookup-Tabelle gesucht, in der alle Vergleichsfelder mit den Werten der aktuellen Anfrage übereinstimmt. Die Datenwerte dieser Zeile der Lookup-Datei wird dann mit der Anfrage aus der Logdatei verknüpft.

Beispiele

Dynamische Lookups

Der Unterschied zwischen dynamischen und normalen Lookups ist der Zeitpunkt zu dem der Lookup ausgeführt wird. Normale Lookups werden beim Einlesen bzw. beim Analysieren von Logdaten ausgeführt und die Werte werden dauerhaft in der Projektdatenbank gespeichert. Dynamische Lookups werden dagegen erst dann ausgeführt, wenn man einen Wert braucht. Die Ergebnisse von dynamischen Lookups werden nicht in der Projektdatenbank gespeichert, sondern werden stets neu berechnet.

Vergleich zwischen dynamischen und normalen Lookups

dynamischer Lookupnormaler Lookup
VorteilBei Änderung des Lookups muss die Datenbank nicht neu aktualisiert werden.Die Erstellung von Berichten mit Werten aus normalen Lookups ist schnell, da auf gespeicherte Werte zugegriffen wird.
NachteilDie Erstellung von Berichten mit Werten aus dynamischen Lookups ist langsamer, da die Werte stets neu berechnet werden müssen.Bei Änderung des Lookups muss die Datenbank aktualisiert werden, damit sich die Änderungen auf die Berichte auswirken.

Weitere Informationen