내가 CQL & 복합 키에 새로운 (나는 이전에 사용 CLI)입니다 내가 대신 복합 키를 사용하여 내 오랜 슈퍼 열 가족을 구현하기 위해 찾고 있어요. 한마디로 내 룩업 모델은 다음과 같습니다카산드라 CQL3 복합 키는 중복 된 값을 반환
/*Example insertions*/
INSERT INTO blocks (file_id, start_position, block_id,size) VALUES ('test_schema_file', 0, 'testblock1', 500);
INSERT INTO blocks (file_id, start_position, block_id,size) VALUES ('test_schema_file', 500, '2testblock2', 501);
I 조회 :
CREATE TABLE blocks (
file_id text,
start_position bigint,
block_id text,
size bigint,
PRIMARY KEY (file_id, start_position,block_id)
);
내가 이러한 샘플 값을 삽입 :
blocks[file_id][position][block_id]=size
내가 복합 키를 사용하여 folowing CQL 테이블이
OperationResult result = m_keyspace.prepareQuery(m_BlocksTable).getKey(file).execute();
ColumnList<BlockKey> columns = (ColumnList<BlockKey>) result.getResult();
for (Column<BlockKey> column : columns) {
System.out.println(StaticUtils.fieldsToString(column.getName()));
try{
long value=column.getLongValue();
System.out.println(value);
}catch(Exception e){
System.out.println("Can't get size");
}
}
,369이 아 스티 아낙 스 코드를 사용하여
결과를 반복 할 때 각 열에 대해 2 개의 결과를 얻습니다. 하나는 "크기"를 포함하고 다른 하나는 "크기"열이 존재하지 않는 것입니다. 블록 [FILE_ID] [위치] block_id = 사이즈 : 이론적
- 내가는 복합 키의 값이어야 크기 열을 필요로하지 않는다 :
recorder.data.models.BlockKey Object { m_StartPosition: 0 m_BlockId: testblock1 m_Extra: null } Can't get size recorder.data.models.BlockKey Object { m_StartPosition: 0 m_BlockId: testblock1 m_Extra: size } 500 recorder.data.models.BlockKey Object { m_StartPosition: 500 m_BlockId: 2testblock2 m_Extra: null } Can't get size recorder.data.models.BlockKey Object { m_StartPosition: 500 m_BlockId: 2testblock2 m_Extra: size } 501
그래서 두 질문 블록 대신 [file_id] [위치] [block_id] [ '크기'] = 크기. . 어떻게 중복 크기 열을 만들지 않고이 데이터를 CQL3에 올바르게 삽입합니까? 나는 그런 행을 삽입하지 않을 경우
- 이유는, '크기'하지 않고 여분의 열을 무엇입니까? CQL와 별도의 메타 데이터를 저장하는 여분의 삽입 절약 열의 존재 때문에 "중복 '
감사합니다. 메타 데이터의 성격을 아십니까? – eshalev