Database Reference
In-Depth Information
when 'revision'
key = document[ 'title' ].to _ java _ bytes
ts = ( Time.parse document[ 'timestamp' ] ).to _ i
p = Put.new( key, ts )
p.add( * jbytes( "text" , "" , document[ 'text' ]))
p.add( * jbytes( "revision" , "author" , document[ 'username' ]))
p.add( * jbytes( "revision" , "comment" , document[ 'comment' ]))
table.put( p )
count += 1
table.flushCommits() if count % 10 == 0
if count % 500 == 0
puts " #{count} records inserted ( #{document[ 'title' ]} )"
end
end
end
end
table.flushCommits()
exit
{ Der erste bemerkenswerte Unterschied ist die Einführung einiger Varia-
blen:
￿ document : Enthält die aktuellen Artikel- und Revisionsdaten
￿ buffer : Enthält Zeichendaten des aktuellen Feldes innerhalb des Do-
kuments (Text, Titel, Autor und so weiter)
￿ count : Hält nach, wie viele Artikel wir bislang importiert haben
| Beachten Sie insbesondere unsere Nutzung von table . setAutoFlush
(false) . Bei HBase werden Daten automatisch in regelmäßigen Zeitab-
ständen auf die Platte geschrieben (Autoflushing). Das wird von den meis-
ten Anwendungen bevorzugt. Durch die Deaktivierung von Autoflush in
unserem Skript werden alle put -Operationen gepuffert, bis wir table .
flushCommits aufrufen. Auf diese Weise können wir Schreiboperationen
bündeln und dann ausführen, wenn es uns gelegen kommt.
} Als Nächstes sehen wir uns an, was beim Parsing passiert. Wenn der
Start-Tag page ist, setzen wir document auf einen leeren Hash zurück.
Wenn es sich um einen anderen Tag handelt, der uns interessiert, setzen
wir den buffer zurück, um dessen Text festzuhalten.
~ Wir verarbeiten die Zeichendaten, indem wir sie an den Puffer anhängen.
Bei den meisten schließenden Tags schieben wir den gepufferten Inhalt
einfachindas document . Ist der schließende Tag eine </revision> ,er-
zeugen wir hingegen eine neue Put -Instanz, füllen sie mit den Feldern
des document s und senden sie an die Tabelle. Danach nutzen wir flush-
Commits , wenn wir das eine Zeit lang nicht getan haben, und geben den
Fortschritt über die Standardausgabe aus ( puts ).
Search WWH ::




Custom Search