個々のステートメントUNWINDの代わりに を使用するバッチ入力 - Amazon Neptune

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

個々のステートメントUNWINDの代わりに を使用するバッチ入力

異なる入力に対して同じクエリを実行する必要がある場合は、入力ごとに 1 つのクエリを実行する代わりに、入力のバッチに対してクエリを実行する方がはるかにパフォーマンスが高くなります。

ノードのセットでマージする場合は、入力ごとにマージクエリを実行するオプションが 1 つあります。

MERGE (n:Person {`~id`: $id}) SET n.name = $name, n.age = $age, n.employer = $employer

パラメータ:

params = {id: '1', name: 'john', age: 25, employer: 'Amazon'}

上記のクエリは、入力ごとに実行する必要があります。このアプローチは機能しますが、大量の入力セットに対して多くのクエリを実行する必要がある場合があります。このシナリオでは、バッチ処理はサーバーで実行されるクエリの数を減らし、全体的なスループットを向上させるのに役立ちます。

次のパターンを使用します。

UNWIND $persons as person MERGE (n:Person {`~id`: person.id}) SET n += person

パラメータ:

params = {persons: [{id: '1', name: 'john', age: 25, employer: 'Amazon'}, {id: '2', name: 'jack', age: 28, employer: 'Amazon'}, {id: '3', name: 'alice', age: 24, employer: 'Amazon'}...]}

ワークロードに最適なものを判断するには、さまざまなバッチサイズの実験が推奨されます。