

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

# 頂点とエッジをバッチで一括追加
<a name="best-practices-gremlin-java-batch-add"></a>

Neptune DB へのクエリはすべて、単一のトランザクションの範囲内で実行されます。ただし、セッションを使用する場合は除きます。つまり、gremlin クエリを使用して大量のデータを挿入する必要がある場合は、それらを50〜100 のバッチサイズでまとめてバッチ処理すると、ロード用に作成されるトランザクションの数が減り、パフォーマンスが向上します。

例として、データベースに 5 つの頂点を追加すると、次のようになります。

```
// Create a GraphTraversalSource for the remote connection
final GraphTraversalSource g = traversal().withRemote(DriverRemoteConnection.using(cluster));
// Add 5 vertices in a single query
g.addV("Person").property(T.id, "P1")
 .addV("Person").property(T.id, "P2")
 .addV("Person").property(T.id, "P3")
 .addV("Person").property(T.id, "P4")
 .addV("Person").property(T.id, "P5").iterate();
```

同様に、 を使用してエッジをバッチ追加できます`addE`。を使用して`V()`、既存の頂点を各エッジのソースとターゲットとして参照します。

```
// Add edges in a single batched query
g.V("P1").addE("knows").to(V("P2"))
 .V("P2").addE("knows").to(V("P3"))
 .V("P3").addE("knows").to(V("P4"))
 .V("P4").addE("knows").to(V("P5")).iterate();
```

頂点とエッジの作成を 1 つのバッチにまとめることもできます。を使用して新しく作成された頂点`as()`にラベルを付けて、同じトラバーサルにエッジを追加するときに参照できるようにします。

```
// Add vertices and edges together in a single query
g.addV("Person").property(T.id, "P1").as("p1")
 .addV("Person").property(T.id, "P2").as("p2")
 .addV("Person").property(T.id, "P3").as("p3")
 .addE("knows").from("p1").to("p2")
 .addE("knows").from("p2").to("p3").iterate();
```