2012-12-22 6 views
1

2 차 색인 '포인터'가있는 열 패밀리가 있습니다. 동일한 '포인터'값 (예 : abc)을 가진 행을 여러 개 제거하려면 어떻게해야합니까?pycassa - 보조 색인으로 여러 행을 제거 하시겠습니까?

내가 아는 유일한 옵션은 다음과 같습니다

expr = create_index_expression('pointer', 'abc') 
clause = create_index_clause([expr]) 
for key, user in cassandra_cf.get_indexed_slices(clause): 
    cassandra_cf.remove(key) 

그러나 나는 이것이 매우 비효율적이고 나는이 같은 '포인터'값으로 수천 개의 행이있는 경우 오래 걸릴 수 있습니다 알고 있습니다. 다른 옵션이 있습니까?

답변

0

한 번에 여러 행을 제거 할 수 있습니다

expr = create_index_expression('pointer', 'abc') 
clause = create_index_clause([expr]) 
with cassandra_cf.batch() as b: 
    for key, user in cassandra_cf.get_indexed_slices(clause): 
     b.remove(key) 

이 의지의 그룹을 제거합니다 (100)의 배치에 (기본적으로). 일괄 처리 객체가 여기에있는 것처럼 컨텍스트 관리자로 사용될 때 with 블록이 남아 있으면 나머지 변이 전송을 자동으로 처리합니다.

자세한 내용은 pycassa.batch API docs에서 확인할 수 있습니다.

+0

다소 (빈 공간) – user1923472

관련 문제