2011-12-11 3 views
1

Java API 또는 다른 도구를 사용하여 cassandra (0.7.x 이상 버전)의 열 패밀리에서 모든 행키를 내보내는 가장 빠른 방법은 무엇입니까?cassandra에서 키를 내보내는 가장 빠른 방법

현재 Java Pelops API를 사용하고 있으며 모든 레코드를 페이징하지만 더 나은 메커니즘이 있는지 궁금해합니다.

행키 (열/하위 열 없음) 만 내보내므로 가능한 빨리이 작업을 수행하는 데 사용할 수있는 cassandra 직접 저장소 API 섹션이 있는지 궁금합니다.

답변

1

Java 클라이언트를 사용하면 어떨까요? 샘플 이 https://github.com/rantav/hector/wiki/User-Guide

RangeSlicesQuery<String, String, String> rangeSlicesQuery = 
HFactory.createRangeSlicesQuery(keyspace, stringSerializer, 
    stringSerializer, stringSerializer); 
rangeSlicesQuery.setColumnFamily("Standard1"); 
rangeSlicesQuery.setKeys("fake_key_", ""); 
rangeSlicesQuery.setReturnKeysOnly(); // use this 
rangeSlicesQuery.setRowCount(5); 
Result<OrderedRows<String, String, String>> result = rangeSlicesQuery.execute(); 
  • 에서 가져온 에 대한 API 인터페이스입니다. 직접 저장소로 이동하려면 바이너리로 데이터 파일을 읽어야합니다. 위의 코드는 좋은 성능을 제공해야합니다.
  • 한 번 내보내기에 필요한 경우 확인이라고 대답합니다. 프로덕션 환경에서이 작업이 필요한 경우 데이터 모델을 재고해야합니다. 잘못된 작업을 수행했을 수 있습니다.
  • 많은 행을 스캔해야하는 경우를 대비하여 여러 키 범위를 사용하여 쿼리를 분할해야 할 수 있습니다.
관련 문제