2012-07-09 2 views

답변

8

가장 좋은 방법 :

SELECT column_name FROM system.schema_columnfamilies WHERE keyspace_name = X AND columnfamily_name = Y 

참조 또한 http://www.datastax.com/dev/blog/schema-in-cassandra-1-1

+0

에는 몇 가지 훌륭한 hector 예제가 있습니다. 가장 편리한 해결책 인 것 같습니다. 나는이 시점에서 카산드라 1.0.9를 사용하고 있기 때문에 이것을 시도 할 수는 없다. – user1511772

+1

Cassandra 1.2의 경우 (분명히 ... 2.0.4를 사용하고 있습니다) [schema_columns] (http://www.datastax.com/documentation/cql/cql_using/use_query_system_c.html?pagename=docs&version=1.2&file)를 쿼리해야합니다. = cql_cli/using/query_system_tables) 'SELECT column_name FROM system.schema_columns 어디 키 공간 이름 =? AND columnfamily_name =? ' –

+0

Cassandra 2. *에서는 작동하지 않습니다. 사이트 링크가 있습니까? – shankbond

1

이 답변에는 몇 가지 부분이 있습니다.

먼저 특정 질문에 대답하려면 sliceQuery를 사용하여 행의 모든 ​​열을 가져와야합니다. 시작과 끝 값 효과적으로 모든 열을 요청하는대로 빈의 ByteBuffer를 전달합니다

ByteBuffer empty = ByteBufferUtil.EMPTY_BYTE_BUFFER;  
sliceQuery.setRange(empty,empty,false,100); 

둘째, 당신은 데이터 모델이 열 가족에 저장되는 대한 가정을 확인해야합니다.

데이터 모델이 정적 인 경우 (객체 당 하나의 행, 속성 당 하나의 열) 가져 오는 열 이름은 표시하려는 열 이름이어야합니다. 그러나 데이터가 동적 인 방식으로 저장되는 경우 (열당 하나의 객체, 동일한 행에 저장된 동일한 기본 키를 갖는 모든 객체) - 예를 들어 시계열과 같이 - 열의 방식을 이해해야합니다 이름 (복합 요소 일 가능성이 있음)을 해석해야합니다. 동적 접근 방식의 또 다른 보편적 인 사용은 CQL을 통해 정의 될 때 열 패밀리가 지속되는 방식입니다.

열 패밀리가 객체를 저장하는 데 사용되는 방법을 알 수있는 방법이 없다는 것을 추가해야합니다. 쿼리 할 수있는 스키마가 있지만 데이터 (및 특성 이름)가 serialize 및 deserialize되는 방식이 아니라 지속될 때 데이터의 형식을 지정하는 방법 만 알려줍니다. 당신이 카산드라 1.1 사용하는 경우

+0

죄송합니다,하지만 난 행의 모든 ​​열을 얻기 전에, 행을 가져와야하고 행 키를 알아야합니다. 필자의 경우에는 열 패밀리의 이름 만 알고 행의 행은 알 수 없습니다. 그래서 내가하고 싶은 것은 모든 행을 스캔하고 행 ID를 수집하거나 적어도 특정 열의 모든 값을 스캔하는 것입니다. P. 나는 관계형 세계에서 왔고 카산드라는 나에게 힘든 시간을 주었다. – user1511772

+0

그래서 일반적인 질문에서 헥터를 사용하는 방법에 관한 질문은 무엇입니까? –

+0

http://hector-client.github.com/hector/build/html/content/getting_started.html#read – pd40

0

이 시도 :

select columnfamily_name from system.schema_columnfamilies where keyspace_name=‘mykeyspace';