hector api를 사용하여 복합 열을 읽는 동안 문제가 발생합니다. 구성 요소 0의 값을 읽는 데 필요한 바이트가 부족합니다. - Hector Composite 열 Read
내 열 가족 :create column family step_wise_stats_cc with key_validation_class = 'CompositeType(UTF8Type, UTF8Type)' and comparator = UTF8Type and default_validation_class = UTF8Type;
데이터 : 행 키 : {TYPE-1, SUB-TYPE-1}
열 : 이름 1 : 값 1
내가 이런 식으로 질의하고 있습니다 :
Cluster cluster = HFactory.getOrCreateCluster("cls1", "localhost:9160");;
Keyspace keyspace = HFactory.createKeyspace("ks1",cluster);;
Serializer se = StringSerializer.get();
Composite start = new Composite();
start.addComponent(0, "TYPE-1", ComponentEquality.EQUAL);
start.addComponent(1, "SUB-TYPE-1", ComponentEquality.EQUAL);
Composite end = new Composite();
end.addComponent(0, "TYPE-1", ComponentEquality.GREATER_THAN_EQUAL);
start.addComponent(1, "SUB-TYPE-1", ComponentEquality.GREATER_THAN_EQUAL);
SliceQuery<String, Composite, String> sliceQuery = HFactory.createSliceQuery(keyspace, se, CompositeSerializer.get(), se);;
sliceQuery.setColumnFamily("cf1");
sliceQuery.setKey("TYPE-1");
sliceQuery.setRange(start, start, false, 999);
QueryResult<ColumnSlice<Composite, String>> qr = sliceQuery.execute();
그러나 예외 아래 점점 : me.prettyprint.hector.api.exceptions.HInvalidRequestException을 : INVA lidRequestExc eption (이유 : 구성 요소 0의 값을 읽는 데 바이트가 충분하지 않음)
어떤 도움이 필요합니까?
나는 여기에서 컴포지트 행 키 Vs 복합 열을 통해 혼란스러워합니다. 이것들에 좋은 링크를 제공 할 수 있습니까? –
가장 큰 차이점은 열이 아니라 행이 아닌 범위 쿼리를 수행 할 수 있다는 것입니다. 따라서 모든 쿼리는 합성 여부와 상관없이 전체 행 키를 알고 있어야하지만 정확한 열을 지정할 필요는 없습니다. – Richard
리차드 한 가지 더 질문에 감사드립니다. 제 경우에는 약 100 개의 키가 있습니다 (또는 TYPE이라고 말하면됩니다). 각각의 하위 유형에는 수만 가지의 하위 유형이있을 수 있습니다. 각 하위 유형에는 5 ~ 6 개의 열이 있습니다. 컬럼 가족을 어떻게 모델링해야합니까? 미리 감사드립니다 .. –