내가 rowkey 복합 데이터 유형을 사용하고, 열 가족,카산드라
create column family CompositeTest
with comparator = 'UTF8Type'
and key_validation_class = 'CompositeType(UTF8Type,UTF8Type)'
and default_validation_class = 'UTF8Type';
아래이 칼럼 제품군의 샘플 데이터 아래로
입니다RowKey: s2:2222222
=> (column=param1, value=value1
=> (column=param2, value=value2
=> (column=param3, value=value3
-------------------
RowKey: s2:3333333
=> (column=param1, value=value1
=> (column=param2, value=value2
=> (column=param3, value=value3
-------------------
RowKey: s2:1111111
=> (column=param1, value=value1
=> (column=param2, value=value2
=> (column=param3, value=value3
-------------------
RowKey: s1:3333333
=> (column=param1, value=value1
=> (column=param2, value=value2
=> (column=param3, value=value3
-------------------
RowKey: s1:2222222
=> (column=param1, value=value1
=> (column=param2, value=value2
=> (column=param3, value=value3
-------------------
RowKey: s1:1111111
=> (column=param1, value=value1
=> (column=param2, value=value2
=> (column=param3, value=value3
행 키의 첫 번째 구성 요소가 "s1"인 모든 행을 가져오고 싶습니다. Hector 클라이언트를 사용할 수 있습니까? 그렇지 않다면 어떤 cassandra 클라이언트가 가능한가?
나는 다음과 같은 코드를 사용하여 시도,하지만 작동하지 않는 한, 사전에
Composite start = new Composite();
start.addComponent(0, "s1", ComponentEquality.EQUAL);
Composite end = new Composite();
end.addComponent(0, "s1", ComponentEquality.GREATER_THAN_EQUAL);
RangeSlicesQuery<Composite, String, String> rangeSlicesQuery = HFactory.createRangeSlicesQuery(keyspace, new CompositeSerializer(), StringSerializer.get(), StringSerializer.get());
rangeSlicesQuery.setKeys(start, end);
rangeSlicesQuery.setRange("param1", "param3", false, 100);
rangeSlicesQuery.setColumnFamily("CompositeTest");
rangeSlicesQuery.setRowCount(11);
QueryResult<OrderedRows<Composite, String, String>> queryResult = rangeSlicesQuery.execute();
Rows<Composite, String, String> rows = queryResult.get();
Iterator<Row<Composite, String, String>> rowsIterator = rows.iterator();
덕분에 ...
Hector 클라이언트와 Astyanax 클라이언트 모두에서이를 수행 할 수 있습니다. –
가능한 경우 Hector를 사용하여 수행하는 방법을 나에게 알려주십시오. –