2012-04-03 17 views
5

大規模なデータテストやテストのために、RavenDBに大量のデータ(約20-25のつぶやきでツイッターストリーム)をインポートしようとしています。私は非常によくデータを書き込んでいるいくつかのコードを持っているが、私はエラーを取得しばらく:データのバルク挿入に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

これは本当にちょうどsession.store(item)です...コードは手元にはありませんが、奇妙なことはしないでください...私が言及したように、カウンタが25の倍数に達すると、私はsavechanges()を行います。 – TiernanO

答えて

5

二つのオプション:制限に達するberefore

  • は新しいセッションを作成します(セッションあたり25件のリクエストが良い値である)
  • 増加DocumentSession.Advanced.MaxNumberOfRequests適切な値に

どちらの方法でも動作しますが、2番目の方法は少し速いです。

編集:以下のOrensのコメントによれば、実際にはより高速な最初のアプローチです。

+0

答えをありがとう。私の周りで遊んで、どちらが一番うまくいくかを見てみましょう... – TiernanO

+1

MaxNumberOfRequestsを増やすと、多くのエンティティを持つセッションになります。これはうまく動作しません。新しいセッションが良いです。 –

+0

先端@Ayendeをありがとう。どのくらいの頻度でセッションを終了し、再作成する必要がありますか? 100? 200?もっと?もっと少なく?ありがとう! – TiernanO

関連する問題