Database Reference
In-Depth Information
definiert ist. Die Daten sind also unvollständig, aber darum können wir uns
später kümmern.
Phase 1: Datentransformation
Sie wundern sich vielleicht, warum wir uns die Mühe machen, zuerst Redis
zu befüllen, statt die Daten direkt in CouchDB einzupflegen. Da es als Ver-
mittler arbeitet, bringt Redis Struktur in die TSV-Rohdaten, was das nachfol-
gende Einfügen in andere Datenbanken sehr schnell macht. Da unser Plan
darin besteht, einen einzelnen Datensatz pro Band anzulegen, erlaubt Re-
dis es uns, die TSV-Datei in einem Durchlauf zu verarbeiten (der Bandna-
me taucht für jedes Mitglied auf und jedes Bandmitglied wird in einer Zeile
beschrieben). Jedes einzelne Mitglied direkt in CouchDB einzufügen, kann
zu einem Update-Stau führen, wenn für zwei Bandmitglieder zur gleichen
Zeit ein Band-Dokument angelegt/aktualisiert wird, weil das System dann
einen Datensatz erneut einfügen muss, wenn CouchDBs Versionsprüfung
fehlschlägt.
Der Haken an dieser Strategie ist die Beschränkung von Redis auf das Vor-
halten des gesamten Datenbestands im RAM - auch wenn wir dieses Limit
mit Hilfe des Clusters von Tag 2 lösen könnten.
Neben den Rohdaten benötigen wir ein installiertes Node.js sowie den Node
Package Manager (npm). Sobald das erledigt ist, müssen wir drei NPM-Pro-
jekte installieren: redis, csv und hiredis (der optionale Redis C-Treiber von
gestern, der Redis-Interaktionen stark beschleunigen kann).
$ npm install hiredis redis csv
Stellen Sie nun sicher, dass der Redis-Server den Standardport 6379 nutzt,
oder ändern Sie die createClient() -Funktion aller Skripten entsprechend.
Sie können Redis befüllen, indem Sie das folgende Node.js-Skript im gleichen
Verzeichnis ausführen, in dem auch Ihre TSV-Datei liegt (deren Namen wir
hier mit group _ membership.tsv annehmen). Alle von uns betrachteten Java-
Script-Dateien sind recht umfangreich, weshalb wir sie hier nicht ganz ab-
drucken. Sie können den gesamten Code über die Pragmatic Website herun-
terladen. Hier gehen wir nur auf die wichtigsten Teile jeder Datei ein. Laden
Sie die folgende Datei herunter und führen Sie sie aus:
$ node pre _ populate.js
Das Skript geht jede Zeile der TSV-Datei durch und extrahiert die Namen der
Künstler, der Bands und die Rollen, die die Künstler in der Band überneh-
men. Dann fügt es diese Werte in Redis ein (und überspringt Leerzeilen).
Search WWH ::




Custom Search