

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 배치에서 버텍스 및 엣지 일괄 추가
<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();
```

버텍스와 엣지 생성을 단일 배치로 결합할 수도 있습니다. `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();
```