Ecco un esempio dello scenario che sto affrontando. Dire che ho questa colonna la famiglia:Interrogazione di colonne CompositeType in Cassandra con Hector
create column family CompositeTypeCF
with comparator = 'CompositeType(IntegerType,UTF8Type)'
and key_validation_class = 'UTF8Type'
and default_validation_class = 'UTF8Type'
Ecco alcuni esempi di codice Java utilizzando Hector su come mi piacerebbe andare sull'inserimento di alcuni dati in questa colonna la famiglia:
Cluster cluster = HFactory.getOrCreateCluster("Test Cluster", "192.168.1.6:9160");
Keyspace keyspaceOperator = HFactory.createKeyspace("CompositeTesting", cluster);
Composite colKey1 = new Composite();
colKey1.addComponent(1, IntegerSerializer.get());
colKey1.addComponent("test1", StringSerializer.get());
Mutator<String> mutator = HFactory.createMutator(keyspaceOperator, StringSerializer.get());
Mutator<String> addInsertion = mutator.addInsertion("rowkey1", "CompositeTypeCF",
HFactory.createColumn(colKey1, "Some Data", new CompositeSerializer(), StringSerializer.get()));
mutator.execute();
questo funziona, e se io andare al cassandra-cli e fare una lista ottengo questo:
$ list CompositeTypeCF;
Using default limit of 100
-------------------
RowKey: rowkey1
=> (column=1:test1, value=Some Data, timestamp=1326916937547000)
la mia domanda ora è questa: come posso fare per l'interrogazione di questi dati a Hector? In pratica avrei bisogno di interrogare in alcuni modi:
- Dammi l'intera riga in cui Row Key = "rowkey1"
- Dammi i dati della colonna in cui la prima parte del nome della colonna = un certo valore intero
- Dammi tutte le colonne dove la prima parte del nome della colonna è entro un certo intervallo
puoi approfondire perché abbiamo bisogno di GREATER_THAN_EQUAL nell'ultimo componente? Ho esaminato l'articolo, ma le cose non sono ancora chiare. –
Ho chiesto questo come una domanda separata in modo da poter premiare i tuoi punti! –
Non so, ho provato un codice di esempio per convincermi che ha funzionato per ciò di cui avevo bisogno. – libjack