2016-06-28 4 views
0

csv 파일을 받아서이 파일을 읽고 Cassandra에 씁니다. 나는 많은 데이터 (일일 약 1000 만 줄)에 대해 이렇게한다. 파일 자체는 상당히 작다 (100에서 1000 줄까지)많은 데이터에 데이터가 이미 존재하는지 확인하십시오.

내가 원하는 것은 데이터베이스에 쓰기 전에 검사하는 것이다. 열쇠를 삽입하려고하는데, 이미 존재합니다.

나는 Select count(*) from table where primary key1 = something and key2 is something else으로 할 수 있음을 알고 있습니다.

그러나 이것은 느립니다. 이미 카산드라에있는 데이터에 영향을 주면 빠른 속도로 전체 파일을 확인하고 싶습니다. 내가 원하는 것을 얻을 수있는 방법이 있습니까? (또는 일괄 처리가 행에 영향을 줄지 여부를 확인하는 것과 비슷한)

+0

당신은 당신에게 테이블 스키마를 게시 할 수 있을까요? 특히 어떤 키가 파티션이고 어떤 것이 클러스터링입니까? – yurgis

답변

1

IF NOT EXIST를 EXIST 문에 사용하고 IF IFIST를 UPDATE 문에 사용할 수 있습니다. 성능은 모든 행을 계산하는 것보다 낫지 만, 삽입과 비교하여 확인하지 않고 느립니다. 카산드라는 모든 노드에서 기존 기본 키를 확인해야합니다. INSERT에 대한

문서는 :

및 UPDATE에 대한 https://docs.datastax.com/en/cql/3.1/cql/cql_reference/insert_r.html는 : https://docs.datastax.com/en/cql/3.1/cql/cql_reference/update_r.html

+0

이것은 어떤 항목이 올바르게 삽입되지 않았는지에 대한 어떠한 피드백도 제공하지 않습니까? – Proliges

+0

당신은 진실 또는 거짓을 얻을 것이다. 간단한 스크립트를 작성하십시오. 각 줄마다 CQL 명령을 만든 다음 줄 번호가있는 false를 기록 할 수 있습니다. –

+0

실제로 의미가 있지만 작동하지만 느려지는 방법이라고 생각합니다. 데이터베이스의 숫자가 증가하면 존재하지 않는 것이 많은 시간이 걸립니다. 나는 그것이 원하는대로하는 것을 명심해야하지만 조금 느려질 것입니다. – Proliges

관련 문제