기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
배치에서 버텍스 및 엣지 일괄 추가
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();