2012-04-03 3 views
5

테스트 및 대규모 데이터 테스트를 위해 다량의 데이터 (약 20-25 개의 트윗을 초당 약 2 분의 1 트윗)를 RavenDB로 가져 오려고합니다. 나는 아주 잘 데이터를 쓰는 몇 가지 코드를 가지고 있지만, 잠시 후 나는 오류 얻을 :대량 데이터 삽입을 위해 RavenDB 사용

:

Error while trying to add lots of data to RavenDB

내가 여기에 모든 코드를 입력하지만,하지 않습니다 그것의 요점입니다

Open RavenDB Session 
Start reading data from Twitter Stream 
For each line, parse JSON into known C# object 
add item to RavenDB 
increment counter 
if counter % 25 = 0, save changes to RavenDB. 

나는이 작업을 수행하는 여러 가지 방법을 살펴보기 위해 제안 된 것을 시도하지 않았습니다. 200 회 정도 삽입 할 때마다 내 세션을 종료해야합니까? Raven DB에 객체 배열을 삽입하는 방법이 있습니까? 이 일을 완전히 잘못하고 있습니까?

+0

"RavenDB에 항목을 추가 할 위치"에 코드를 표시 할 수 있습니까? –

+0

정말 세션입니다. 저장소 (항목) ... 가까운 코드를 사용하지 마십시오. 별다른 일을하지 마십시오 ... 내가 언급 한 것처럼, 카운터가 25의 배수에 도달하면 savechanges()를 수행합니다. – TiernanO

답변

5

두 옵션 :

  • 적절한 값
에 새로운 한계 (좋은 값을 세션 당 25 개 요청입니다)에 도달 berefore 세션
  • 증가 DocumentSession.Advanced.MaxNumberOfRequests를 만들

    두 번째 방법은 약간이 더 빠르지 만 어느 쪽이든 작동합니다.

    편집 : 아래의 Orens 코멘트에 따르면 실제로 더 빠른 첫 번째 방법입니다.

  • +0

    답변 해 주셔서 감사합니다. 주위에 놀고 나를 위해 가장 잘 작동하는 볼 수 있습니다 ... – TiernanO

    +1

    MaxNumberOfRequests를 늘리면 많은 실적이있는 엔티티가있는 세션이됩니다. 새로운 세션이 더 좋습니다. –

    +0

    팁 @Ayende에 감사드립니다. 얼마나 자주 세션을 종료하고 다시 만들어야합니까? 100? 200? 더? 적게? 감사! – TiernanO

    관련 문제