【发布时间】:2015-08-27 02:46:49
【问题描述】:
我在一个包含大约 300 万个顶点的 MySQL 表(id、parentId)中有一个简单的树结构,我想将它导入到 OrientDB Graph 数据库中。 ETL 导入器顺利导入顶点,但无法创建边(NullPointerException)。 ETL 甚至不适用于具有文档中给定示例的普通数据库(http://orientdb.com/docs/last/Import-a-tree-structure.html 引发相同的异常),所以我只是导入了顶点并想手动创建边。
我有一个带有两个属性(id、parentId)的顶点类(地址),我想在这些顶点之间创建边(parentId -> id)。有没有一种简单的方法可以做到这一点,而不是在循环中插入边缘?类似于 SQL 的东西
INSERT INTO E (out, in) VALUES (SELECT parentId, id FROM Address)
由于只能使用 CREATE EDGE 创建边,我猜 OrientDB 默认不支持这样的操作。但也许有一种解决方法来创建这 300 万条边?
我发现在两条记录之间创建链接很容易:
CREATE LINK parentLink TYPE LINK FROM Address.parentId TO Address.Id
但是,我无法以这种方式创建边缘。我尝试使用变量
CREATE EDGE isParentOf FROM (SELECT FROM Address) TO (SELECT FROM Address WHERE id = $current.parentId)
但这不起作用。
【问题讨论】:
-
您是否已经在 ETL 项目中创建了问题?您使用的是什么版本?
-
不,我将在下周在 ETL 项目上创建问题。我正在使用 orient db community edition 2.1
标签: orientdb