0

현재 Google Cloud Dataflow를 사용하여 데이터를 변환하고 Compute Engine VM에서 호스팅되는 Neo4j 데이터베이스에 저장하는 설정을하고 있습니다. 현재 설정에서는 준비된 명령문을 실행하여 JdbcIO를 사용하여 Neo4j에 기록하지만 Java에서 직접 Neo4j 드라이버를 사용하여 쿼리를 동적으로 생성 할 수 있습니다.jdbcIO 대 java 드라이버를 사용하여 neo4j에 dataflow 출력

누군가 2 가지 방법을 비교하여 차이점을 확인했는지 궁금합니다. 나는 Jdbc 접근법이 준비된 문장을 실행할 필요가 있기 때문에보다 효율적이라고 추측 할 수있다.하지만 그건 내 추측이다.

업데이트 나는 두 가지 방법으로 더 많은 내가 JdbcIO를 사용할 때 여러 트랜잭션이 작성하려고 할 때, 나는 교착 상태에 실행하는 것이 알게되었다

+0

이 문제에 관한 모든 업데이트는 있습니까? – harveyxia

+0

우리는 neo4j 데이터베이스에 배포하는 사용자 정의 된 플러그인 개발을 마무리합니다. 플러그인은 원시 json 객체로 구성된 문자열을 취해 그에 따라 노드와 관계를 만듭니다. 더 나은 성능을 얻기 위해 우리는 파이프 라인에서 윈도우 화 및 결합 변환을 사용하여 10 초 내에 수신 된 모든 쿼리를 하나의 큰 쿼리로 배치하고 neo4j에 한 번만 보냅니다. 성능을 향상시키기 위해 플러그인의 메모리 캐시도 사용했습니다. 지금까지 우리의 요구에 부합 할 수있었습니다. –

+0

쓰기를 수행하는 데 사용한 Neo4J API를 물어 볼 수 있습니까? – harveyxia

답변

0

한 차이를 실험으로 내 결과를 게시 할거야 같은 노드에 동시에 전송할 수 있습니다. 그러나 Neo4j 드라이버를 직접 사용하면이 문제가 발생하지 않습니다.