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 = []
2. http://www.jamendo.com/
3. http://developer.jamendo.com/en/wiki/NewDatabaseDumps
4. http://img.jamendo.com/data/dbdump_artistalbumtrack.xml.gz
5. http://rdoc.info/github/couchrest/couchrest/master/
Search WWH ::




Custom Search