1

您能否分享任何链接/示例源代码,以使用 Oracle 数据库表数据中的 Neo4j 生成图形。

我的用例是 oracle 模式表名称,因为节点和列是属性。并且还需要在树结构中生成图。

4

3 回答 3

3

确保在使用 tx.success()、tx.finish() 创建节点后提交事务。

如果您仍然看不到节点,请发布您的代码和/或任何异常。

于 2013-10-04T12:56:01.330 回答
1

使用 JDBC 提取您的 oracle 数据库数据。然后使用 Java API 构建相应的节点:

GraphDatabaseService db;

try(Transaction tx = db.beginTx()){
    Node datanode = db.createNode(Labels.TABLENAME);
    datanode.setProperty("column name", "column value"); //do this for each column.
    tx.success();
}

还记得扩展您的交易。我倾向于在每笔交易中使用大约 1500 次创建,这对我来说效果很好,但您可能需要稍微尝试一下。

只需执行 SELECT * FROM table LIMIT 1000 OFFSET X*1000 ,其中 X 是您之前运行查询的次数的值。然后将这 1000 条记录保存在集合或其他东西的某个位置,以便您可以使用它们构建节点。重复此操作,直到您处理完数据库中的每条记录。

不确定“并且还需要在树结构中生成图”是什么意思,如果您的意思是要将外键转换为关系,请记住只索引键而不是将 FK 添加为属性,而是创建与原始节点的关系。您可以通过索引查找找到它。或者您可以使用 HashMap 创建自己的小型内存索引。但是由于您已经在内存中存储了 1000 条 sql 记录,而且您正在构建事务......您需要根据 JVM 设置对内存小心一点。

于 2013-10-04T13:58:04.143 回答
0

您需要自己编写此 ETL 过程。按照下面的

  1. 按照这篇文章编写您的第一个 Neo4j 示例。
  2. 了解如何使用图形建模
  3. 有多种使用 Java 与 Neo4j 对话的方式。选择适合您需求的那一款。
于 2013-10-04T12:48:26.843 回答