2014-11-24 2 views
0

카스 산드라에 몇 기가 바이트의 csv 파일을로드해야합니다. 우리는 소스 명령을 사용하여 데이터를 가져 와서 csv 파일의 데이터 값으로 삽입 문을 포함하는 텍스트 파일에서 데이터를 가져 오려고했습니다.카산드라 소스 문 대 복사본

이 방법을 사용하면 데이터가 올바르게 업로드되지 않습니다. 첫 번째 행의 데이터는 모든 후속 행에서 반복됩니다. (나는 삽입 명령을 확인하고 올바른 값을 포함하고있는 것 같다.)

무엇이 문제 일 수 있습니까? Cassandra가 데이터를 디스크로 플러시하는 데 시간이 걸리기 때문에 행이 중복 된 것을 볼 수 있습니까? 그래도 보류중인 플러시가 표시되지 않습니다.

CSV 파일을 만들고 데이터를 가져 오는 데 copy 문을 사용하는 것이 더 효율적입니까? pls. 권하다.

답변

1

복사는 대개 소량의 데이터에 사용됩니다. 권장되는 방법은 SSTable Loader를 사용하고 데이터에서 SSTable 파일을 만드는 것입니다. 이것은 조금 더 많은 작업이지만 더 빨리 섭취해야합니다. 또한 Spark를 사용하고 Spark를 통해 Cassandra에 섭취 할 수도 있습니다.

불일치의 경우 Cassandra는 기본 키를 기반으로 업서 트를 수행합니다. 둘 이상의 행이 동일한 기본 키와 일치하면 마지막으로 쓰기가 이루어집니다. 모든 행을 유지해야하는 경우 레코드를 고유하게 만들기 위해 기본 키에 타임 스탬프 또는 시간 원본 열을 추가하십시오.