2017-07-17 4 views
1

Wir haben die Aufgabe erfüllt, ein erweiterbares Schema für verschiedene Parametersätze zu entwickeln, mit der Möglichkeit, in ihnen zu suchen, indem auch multiple Kriterienwerte kombiniert werden. Wir haben diese Aufgabe gelöst, indem wir Map-Typ verwendet und den Stratio Lucene-Index auf dieser Karte erstellt haben. Hier ist unser Schema:Cassandra Lucene-Index für die Suche in der Kartenart

CREATE TABLE logging_events (
    event_id    UUID, 
    event_parameters MAP<VARCHAR, VARCHAR>, 
    PRIMARY KEY (event_id) 
); 

Und hier ist lucene Index:

CREATE CUSTOM INDEX logging_events_index ON logging_events() 
USING 'com.stratio.cassandra.lucene.Index' 
WITH OPTIONS = { 
    'schema': '{ 
     fields: { 
     "event_parameters": {type: "string"}, 
     } 
    }'}; 

Wir haben diesen Ansatz Ursache für verschiedene Veranstaltungen, die wir andere Parameter haben.

Jetzt ist meine Frage, wie zuverlässig sind diese Dinge und welche möglichen Probleme können wir in der Produktion treffen. Ist diese Herangehensweise gut oder schlecht für unseren Fall? Vielen Dank für deine Antworten.

Und wir verstehen, dass ohne Index wir gar nicht in der Lage sein werden, sogar mit dem Filtern zu suchen.

Antwort

0

Nach vielen Tests und dem Ausführen dieser Architektur unter Last während eines Monats scheint es ein gültiger Fall zu sein. Und aufgrund der Nosql-Natur von Cassandra scheint es, dass dies eines der Hauptmerkmale von Cassandra aufgrund des schwachen Datenschemas ist. Vorteile dieses Ansatzes bestehen darin, dass Sie den Index nach einer Schemaaktualisierung oder einer solchen Aktualisierung nicht neu erstellen müssen. Aber seien Sie bereit für ernsthaften Platzverbrauch

Verwandte Themen