Database Reference
In-Depth Information
gehenden Link von Star Wars und einmal als eingehenden Link bei Yoda. Die
Beziehung zweimal zu speichern, macht den Lookup sowohl der ausgehen-
den als auch der eingehenden Links einer Seite sehr schnell.
Um die zusätzlichen Linkdaten zu speichern, legen wir eine neue Tabelle an.
Wechseln Sie in die Shell und geben Sie Folgendes ein:
hbase> create 'links', {
NAME => 'to', VERSIONS => 1, BLOOMFILTER => 'ROWCOL'
},{
NAME => 'from', VERSIONS => 1, BLOOMFILTER => 'ROWCOL'
}
Im Prinzip hätten wir die Linkdaten auch in die existierende Spaltenfami-
lie einfügen oder ein oder mehrere zusätzliche Spaltenfamilien in die Wiki-
Tabelle aufnehmen können. Eine separate Tabelle anzulegen, hat aber den
Vorteil, dass die Tabelle separate Regionen besitzt. Das bedeutet, dass der
Cluster die Regionen ganz nach Bedarf effektiver aufteilen kann.
Der generelle Rat der HBase-Community in Bezug auf Spaltenfamilien lautet,
die Anzahl der Familien pro Tabelle klein zu halten. Sie erreichen das, indem
Sie mehr Spalten in der gleichen Familie unterbringen oder indem Sie die
Familien gleich in andere Tabellen auslagern. Die Entscheidung hängt größ-
tenteils davon ab, ob und wie oft Clients ganze Datenzeilen (im Gegensatz zu
einigen wenigen Spaltenwerten) benötigen.
Im Fall unseres Wikis müssen die text -und revision -Spaltenfamilien in der
gleichen Tabelle liegen, damit beim Einfügen neuer Revisionen Metadaten
und Text den gleichen Zeitstempel haben. Im Gegensatz dazu hat der links -
Inhalt niemals den gleichen Zeitstempel wie der Artikel, von dem die Daten
stammen. Darüber hinaus werden die meisten Clients am Artikeltext oder
an den Informationen über die Links interessiert sein, nicht aber an beiden
gleichzeitig. Das Ausgliedern der to -und from -Spaltenfamilien in eine sepa-
rate Tabelle ist also durchaus sinnvoll.
Den Scanner aufbauen
Nachdem wir die links -Tabelle angelegt haben, können wir ein Skript imple-
mentieren, das alle Zeilen der wiki -Tabelle scannt. Für jede Zeile rufen wir
dann den Wikitext ab und extrahieren die Links. Abschließend erzeugen wir
für jeden gefundenen Link ein- und ausgehende Einträge in der link -Tabelle.
Ein Großteil des Skripts sollte Ihnen nun vertraut sein. Das meiste haben wir
recycelt, und auf die wenigen neuen Elemente gehen wir gleich ein.
Search WWH ::




Custom Search