1

特にリレーショナルデータから集計に変換する場合に、リレーショナルデータをRavenDBに効率的に一括挿入する方法について頭を悩ませようとしています。

2つのテーブルの2つのダンプファイルがあるとしましょう:OrdersOrderItems。それらは大きすぎてメモリにロードできないため、ストリームとして読み取ります。各テーブルを読み、各行に対応するドキュメントをRavenDBに作成できます。これは、バッチリクエストを使用した一括操作として実行できます。これまでのところ簡単で効率的です。

次に、これをサーバー上で変換し、を取り除き、OrderItemsそれらを親Orderドキュメントに統合します。何千もの往復なしでこれを行うにはどうすればよいですか?

答えは、セットベースの更新ライブプロジェクション、および非正規化された更新の間のどこかにあるようですが、どこにあるのかわかりません。

4

1 に答える 1

2

非正規化された更新セットベースの更新でこれを行う必要があります。PATCH APIを見て、それが何を提供するかを確認してください。一度に複数のドキュメントを更新する場合にのみセットベースの更新が必要ですが、PATCHAPIを使用して既知のドキュメントに直接パッチを適用することができます。

ライブプロジェクションは、クエリ/インデックスの結果を取得する場合にのみ役立ちます。ドキュメント自体は変更されず、サーバーからクライアントに返されるもののみが変更されます。

ただし、可能であれば、RavenDBに送信する前に、メモリ内のOrderと対応するOrderItemを組み合わせることをお勧めします。ダンプファイルからデータをストリーミングすることもできますが、必要に応じてキャッシュを使用するだけです。これが最も簡単なオプションになります。

更新これを行う方法を示すサンプルコードを いくつか作成しました。これにより、特定のドキュメント(この場合は「Posts / 1」)Comments内の配列/リストにパッチが適用されます。Post

于 2011-05-24T16:02:07.743 に答える