2011-10-10 2 views
2

일부 성능 테스트에 사용할 수 있도록 약 600k 레코드 (전자 메일 등 민감한 정보 제거)의 대용량 데이터 세트를 익명화하려고합니다.MongoDB - 600k 레코드를 익명으로 처리합니다.

저는 Mongo와 함께 Scala (Casbah)를 사용하고 있습니다. 실제 스크립트는 매우 간단하고 간단합니다. 스크립트를 실행하면 전체 프로세스가 매우 빨리 시작됩니다. 2-3 초마다 1000 개의 레코드가 파싱되지만 속도가 크게 느려지고 매우 느리게 크롤링되기 시작합니다.

나는 이것이 너무 상세하지 않고 매우 모호하다는 것을 알고 있지만, 왜 이런 일이 일어나고 있는지, 그리고 내가 이것을 빠르게 할 수있는 방법에 대한 어떤 힌트를 가지고 있습니까?

+0

익명으로 처리하는 필드에 인덱스가 있습니까? –

+1

'mongostat'의 출력물을 공유 할 수 있습니까? 쓰기 잠금과 페이지 폴트가 너무 많습니까? – DhruvPathak

+1

당신은 64 비트 컴퓨터에 있습니까? – Matt

답변

1

그것은 운전자와 Mongo와의 문제인 것으로 밝혀졌다. 몽고 껍질을 사용하여 같은 인서트를 시도했을 때, 땀을 흘리지 않고 끝나 버렸습니다.

UPDATE

그래서, 나는 두 가지 접근 방식을 시도했다. 기존 컬렉션에 삽입하고 결과를 새 컬렉션에 덤핑합니다. 첫 번째 접근 방식은 저에게 더 빠릅니다. 물론, 이것이 항상 사실이라고 가정해서는 안되며 두 번째 이상의 첫 번째 접근 방식을 선택하기 전에 벤치 마크해야합니다. 두 경우 모두, Mongo는 매우 빠르다 (의미 -이 작업을 완료하는 데 몇 시간이 걸리지 않았습니다). Mongo와 연결하기 위해 사용했던 Java 인터페이스에 문제가있었습니다. 이는 내 실수에 더 어리 석다.

+0

자세한 내용을 제공해 주실 수 있습니까? 원래/새로운 접근 방식은 무엇입니까? (원래의 콜렉션을'update'하거나 새로운 콜렉션에'insert') –

관련 문제