Wie Verbundschlüssel für eine Spalte Familie zu definieren und es dann Hector mit Referenz?

StackOverflow https://stackoverflow.com/questions/7329211

  •  27-10-2019
  •  | 
  •  

Frage

wo kann ich Proben für diese finden?

Die meisten meines Code ColumnFamilyTemplate mit CRUD zu tun auf den Datensatz, siehe unten. Sobald ich die Verbundschlüssel definiert habe, kann ich immer noch ColumnFamilyTemplate verwenden, um meine Daten mit zusammengesetzten Schlüsseln zugreifen?

private static final ColumnFamilyTemplate<UUID, String> template = 
    new ThriftColumnFamilyTemplate<UUID, String>(
        Bootstrap.keyspace, 
        "User", 
        UUIDSerializer.get(), 
        StringSerializer.get(),
        HFactory.createMutator(Bootstrap.keyspace, UUIDSerializer.get()));
War es hilfreich?

Lösung

Es sollte keine Rolle, welche API Sie verwenden, um die CRUD auf den Aufzeichnungen zu tun; Composite (oder DynamicCompositeType) ist nur eine andere Art (beispielsweise ähnlich wie UUID), die einen entsprechenden Serialisierer hat (CompositeSerializer). Also, Ihr Beispiel könnte sein:

private static final ColumnFamilyTemplate<Composite, String> template = 
new ThriftColumnFamilyTemplate<Composite, String>(
    Bootstrap.keyspace, 
    "User", 
    CompositeSerializer.get(), 
    StringSerializer.get(),
    HFactory.createMutator(Bootstrap.keyspace, CompositeSerializer.get()));

Nur Extra wäre das Verbund zu erstellen, bevor Vorlage (nehmen Verbunde aus UUID & Long):

Composite key = new Composite();
key.addComponent(someUUID, UUIDSerializer.get());
key.addComponent(someLong, LongSerializer,get());
ColumnFamilyResult<Composite,String> result = template.queryColumns(key);

Wenn Ergebnisse zu holen, eine Möglichkeit, die Komponenten der Schlüssel zu erhalten:

myUUID = result.getKey().get(0, UUIDSerializer.get());
myLong = result.getKey().get(1, LongSerializer,get());

Andere Tipps

Wenn Sie einen zusammengesetzten Schlüssel zu definieren, müssen Sie auch Cassandra sagen (> 0.8.1) Composite als Komparator zu verwenden. Hier ist ein vollständiges Beispiel von der Definition Composite Schema beginnend Programmierung einer Bereichsabfrage: http://randomizedsort.blogspot.com/2011/11/cassandra -range-query-using.html

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top