【问题标题】:dataflow output to neo4j using jdbcIO vs java driver使用 jdbcIO 与 java 驱动程序将数据流输出到 neo4j
【发布时间】:2017-10-10 16:20:50
【问题描述】:

我目前正在使用 Google Cloud Dataflow 转换数据并将其保存到托管在 Compute Engine VM 上的 Neo4j 数据库中。当前设置使用 JdbcIO 通过运行准备好的语句写入 Neo4j,但似乎也可以直接在 Java 中使用 Neo4j 驱动程序,这样可以更灵活地动态创建查询。

我想知道是否有人比较了这两种方法并注意到任何差异?我猜 Jdbc 方法会更有效,因为它只需要运行准备好的语句,但这只是我的猜测。

更新 当我对这两种方法进行更多实验时,我将发布我的发现

【问题讨论】:

  • 关于这个问题的任何更新?
  • 我们最终开发了一个自定义插件,可以部署到我们的 neo4j 数据库中。该插件将接收由原始 json 对象组成的字符串,并相应地创建节点和关系。为了获得更好的性能,我们在管道中使用了窗口和组合转换,将 10 秒内收到的所有查询批处理为一个大查询,并发送到 neo4j 一次。我们还在插件中使用内存缓存来提高性能。到目前为止,它能够满足我们的需求
  • 请问您使用哪个 Neo4J API 来执行写入操作?
  • 我们使用来自org.neo4j.kernel.internal.GraphDatabaseAPIGraphDatabaseAPI

标签: jdbc neo4j google-cloud-platform google-cloud-dataflow gcloud


【解决方案1】:

我发现的一个区别是,在使用 JdbcIO 时,当多个事务试图同时写入同一个节点时,我会遇到死锁。但是直接使用 Neo4j 驱动时没有出现这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-15
    • 1970-01-01
    相关资源
    最近更新 更多