Verteilte Auswertung von RDF-Graphen mit MapReduce und ...
Verteilte Auswertung von RDF-Graphen mit MapReduce und ...
Verteilte Auswertung von RDF-Graphen mit MapReduce und ...
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
2.3 Apache Cassandra<br />
QUORUM : n + 1 Knoten, wobei n der Replikationsfaktor ist, müssen den Schreibvorgang<br />
bestätigen.<br />
2<br />
ALL : Alle n Knoten müssen den Schreibvorgang bestätigen.<br />
Nachdem ein Konsistenzgrad ausgewählt worden ist, kann nun der Zugriff auf die<br />
Daten erfolgen. Wird das Datenmodell als multidimensionale Map betrachtet, erfolgt<br />
der Zugriff durch Angeben der Schlüssel. Je nachdem, welche Schlüssel angegeben<br />
worden sind, werden Subspalten, Superspalten oder ganze Zeilenbereiche zurückgegeben.<br />
Eine Filterung der gewünschten Daten ist durch Definition <strong>von</strong> Wertebereichen<br />
(engl. ranges) möglich. Wird bei einer Anfrage ein SlicePredicate definiert,<br />
so werden nur die dadurch definierten Spalten zurückgegeben. Dabei gibt es zwei<br />
Möglichkeiten, die gewünschten Spalten zu definieren. Entweder werden die Spaltennamen<br />
explizit angegeben oder es wird ein Bereich definiert, der durch einen<br />
Anfangs- <strong>und</strong> Endschlüssel gegeben ist. Die Daten zwischen Start <strong>und</strong> Ende ergeben<br />
sich aus dem verwendeten Vergleicher. Per SlicePredicate kann außerdem eine<br />
Li<strong>mit</strong>ierung der Spaltenanzahl („count“) <strong>und</strong> die Umkehrung der Reihenfolge („reversed“)<br />
erfolgen. Es ist nicht möglich ein SlicePredicate für Subspalten zu definieren.<br />
Wird eine Superspalte ausgewählt, werden immer alle Subspalten serialisiert. Eine<br />
Anwendung, die nicht alle Subspalten benötigt, muss also nach der Serialisierung<br />
filtern.<br />
Die Funktionen get_range_slices <strong>und</strong> multi_get_range der Cassandra API<br />
erlauben es, die resultierenden Zeilen der Anfrage einzuschränken. Sie erfordern aber,<br />
um effektiv genutzt werden zu können, den Einsatz des veralteten OrderPreserving-<br />
Partitioner. Eine Übersicht aller weiteren Funktionen findet sich in [11, 13].<br />
17