Database Reference
In-Depth Information
Erneut müssen Sie eine Änderung an der app.config -Datei vornehmen. Än-
dern Sie das Storage-Backend (wie nachfolgend zu sehen) von bitcask in eLe-
velDB und starten Sie die Server neu:
{riak _ kv, [
%% Storage _ backend specifies the Erlang module defining the
%% storage mechanism that will be used on this node.
{storage _ backend, riak _ kv _ eleveldb _ backend},
eLevelDB ist eine Erlang-Implementierung des Google Key/Value-Stores na-
mens LevelDB. 14 Diese neue Backend-Implementierung erlaubt Sekundärin-
dizes in Riak.
Sobald unser System bereit ist, können wir jedes Objekt mit einer beliebigen
Zahl von Header-Tags indexieren. Diese index entries definieren, wie ein Ob-
jekt indexiert werden soll. Die Feldnamen beginnen mit x-riak-index- und
enden mit _ int oder _ bin für Integer- oder Binärwerte (alles außer Integer).
Bei Blue II, dem Maskottchen der Butler Bulldogs, wollen wir über den Na-
men der Universität, dessen Maskottchen dieser Hund ( butler ) ist, indexie-
ren, aber auch über die Versionsnummer (Blue 2 ist das zweite Bulldog-Mas-
kottchen).
$ curl -X PUT http://localhost:8098/riak/animals/blue
-H "x-riak-index-mascot _ bin: butler"
-H "x-riak-index-version _ int: 2"
-d '{"nickname" : "Blue II", "breed" : "English Bulldog"}'
Sie werden bemerkt haben, dass die Indizes nichts mit den Werten zu tun
haben, die im Schlüssel gespeichert sind. Das ist tatsächlich ein sehr mäch-
tiges Feature, da wir Daten orthogonal zu den von uns gespeicherten Werten
indexieren können. Wenn Sie also ein Video als Wert speichern wollen, kön-
nen Sie es dennoch indexieren.
Den Wert über den Index abzurufen, ist eine einfache Sache.
$ curl http://localhost:8098/riak/animals/index/mascot _ bin/butler
Zwar sind die Sekundärindizes bei Riak ein großer Schritt in die richtige
Richtung, dennoch liegt noch ein langer Weg vor uns. Wenn Sie beispielswei-
se Datumswerte indexieren wollen, müssen Sie einen String speichern, der
entsprechend sortiert werden kann - etwa "JJJJMMTT" . Die Speicherung von
Fließkommawerten verlangt zuerst die Multiplikation mit einem signifikan-
ten Vielfachen von 10 und die Speicherung als Integerwert - etwa 1.45 * 100
14. http://code.google.com/p/leveldb/
Search WWH ::




Custom Search