2012-12-31 2 views
0

나는 cassandra의 키 공간 스키마를 읽고 싶다. 나는 카산드라 - CLI 우리가 스키마java를 사용하여 키 공간 스키마를 읽는 방법?

show schema keyspace1; 

을 얻기 위해 다음 명령을 실행할 수 있다는 것을 알고하지만 난 자바를 사용하여 원격 컴퓨터에서 스키마를 읽고 싶어.

어떻게 해결할 수 있습니까? Plzzz

+0

일부 클라이언트를 사용하고 있습니까? Astyanax와 같은 클라이언트 라이브러리를 사용하면 가능할 것이라고 생각합니다. 그리고 정확히 당신이 스키마를 읽은 후에 무엇을하고 싶은지 명확하지 않습니다 – Easility

+0

저는 Hector를 사용하고 클라이언트를 절약하려고했지만 스키마 읽기를위한 API를 찾을 수 없었습니다 –

답변

0

.... 내가 KsDef 것을 우리는 우리가 원하는대로 읽을 수로부터 있도록

KsDef keyspaceDefinition = _client.describe_keyspace(_keyspace); 
List<CfDef> columnDefinition = keyspaceDefinition.getCf_defs(); 

다음은 주요 공간의 정의, 전체 스키마 세부 사항을 포함 중고품 클라이언트를 사용하여 해결이를 도와주세요. 필자의 경우 메타 데이터를 읽으므로 위의 열 정의에서 열 메타 데이터를 읽는 중입니다.

for(int i=0;i<columnDefinition.size();i++){ 
     List<ColumnDef> columnMetadata = columnDefinition.get(i).getColumn_metadata(); 
     for(int j=0;j<columnMetadata.size();j++){ 
      columnfamilyNames.add(columnDefinition.get(i).getName()); 
      columnNames.add(new String((columnMetadata.get(j).getName()))); 
      validationClasses.add(columnMetadata.get(j).getValidation_class()); 
      //ar.add(coldef.get(i).getName()+"\t"+bb_to_str(colmeta.get(j).getName())+"\t"+colmeta.get(j).getValidationClass()); 
     } 
    } 

여기 columnfamilyNames, columnNames 및 validationClasses는 arraylists입니다.

관련 문제