Database Reference
In-Depth Information
sere
music
-Datenbank zu importieren. Wir zeigen, wie man große Datenmen-
gen in CouchDB importiert und Sie haben einen schönen Datenbestand, mit
dem Sie arbeiten können, wenn wir fortgeschrittene Views entwickeln.
WirnutzendieMusikdatenvonJamendo.com,
2
eine Site, die freie Musik hos-
tet. Jamendo stellt alle Künstler-, Album- und Titel-Daten in einem struktu-
rierten XML-Format zur Verfügung, wasfürdenImportineinedokumenten-
orientierte Datenbank wie CouchDB ideal ist.
Wechseln Sie auf Jamendos NewDatabaseDumps-Seite
3
und laden Sie
db-
dump
_
artistalbumtrack.xml.gz
herunter.
4
Die gezippte Datei ist nur etwa
15MB groß. Zum Parsing von Jamendos XML-Datei nutzen wir das
libxml-
ruby
-Gem.
Statt unseren eigenen Ruby-CouchDB-Treiber zu schreiben oder HTTP-Re-
quests direkt anzugeben, nutzen wir ein beliebtes Ruby-Gem namens
couchrest
, das diese Aufrufe in eine komfortable Ruby-API packt. Wir wer-
den nur einige wenige Methoden der API nutzen, doch die Dokumentation ist
recht gut, falls Sie den Treiber für eigene Projekte nutzen wollen.
5
Über die Kommandozeile installieren wir die benötigten Gems:
$
gem install libxml-ruby couchrest
Genau wie bei den Wikipedia-Daten in Kapitel 4,
HBase
, auf Seite 103 nut-
zen wir einen SAX-Parser, um Dokumente in die Datenbank einzufügen, die
sequentiell verarbeitet werden, während sie über die Standardeingabe her-
einkommen. Hier der Code:
code/couchdb/import_from_jamendo.rb
{
require
'rubygems'
require
'libxml'
require
'couchrest'
include LibXML
|
class
JamendoCallbacks
include XML::SaxParser::Callbacks
}
def
initialize()
@db = CouchRest.database!(
"http://localhost:5984/music"
)
@count = 0
@max = 100
# Wie viele Datensätze sollen importiert werden?
@stack = []