4

我有 3 张表,一张用于顶点 A,一张用于顶点 B,第三张用于从 B 到 A 的边。如何将此图导入 OrientDB?

目前,教程只是说如何导入两个csv文件,一个用于顶点A,另一个用于顶点B和从A连接的顶点。加载顶点A,然后加载顶点B并创建从A到B的边与此同时。

这适用于简单的图表。但是对于复杂的图,例如我有三种类型的顶点,A,B,C,三种类型的边,A -> B,B -> C,C -> A,我该如何导入这个图?

我想使用 etl 来加载图形,尽管 JAVA API 应该是一个解决方案。


更新:
最后,我弄清楚了 Stack Overflow 是如何工作的。我不应该尝试在评论中插入数据,而是更新问题。
这是我的问题的一个具体示例:
两种类型的顶点:
主人(约翰,乔伊,迈克尔,罗伯特,艾伦),
宠物(史努比,白色,蓝色)。

两种类型的关系:
like(John 喜欢 Snoopy,Michael Linkes White,Michael 喜欢 Blue,Allen 喜欢 Snoopy,Michael 喜欢 White),
属于(Snoopy 属于 Joey,White 属于 Robert,Blue 属于 John)。

如何使用 OETL 将这个小网络导入 OrientDB?

4

1 回答 1

2

OrientDB ETL工具允许您从外部源加载图形。如果您阅读 OrientDB-ETL 介绍,读取由记录集合组成的源,对每一行应用转换以生成文档记录(或顶点和可选的 egdes,请记住 OrientDB 是引擎盖下的文档数据库,也支持图形),然后在 OrientDB 中加载生成的文档(或顶点/边)。

您应该使用多个 JSON ETL 文件来加载多个源,但在每个源中,您可以加载多个顶点类和边,具体取决于应用的转换(您可以应用多个)。输入源可以是 SQL 数据库、CSV 和 JSON 格式的文件。有关从 CSV 源构建的多个顶点类型和边的示例,请参阅“导入啤酒数据库”

使用数据库 (SQL) 表作为数据源时,请查看Import from DBMS

对于表,通常A -edge-> B映射到关系表(例如,对于多对多或当边缘本身具有属性时),而对于更简单的边缘类型(一对一,一对多......)一个简单的外键是习惯性的。ETL 配置以 JSON 格式给出,对于 SQL 数据库,您可以配置 SQL 查询(给出“结果表”)以及如何将结果字段映射到顶点和相关边。

当您有多个源时,您可以添加多个 JSON ETL 命令,但是在处理每个源时,您可以使用转换器(请参阅转换器文档中的 VERTEX、EDGE 和 MERGE)来创建顶点和相关边。CSV 转换器甚至可以直接从每个 CSV 行创建一个 ODocument。

注意:作为 ETL 工具(相对较新)的替代方案,您可以使用 Java API 以编程方式将数据导入 OrientDB 数据库。如果您需要加载巨大的图表,这是推荐的方式,因为您可以完全控制如何将数据加载到 OrientDB。

于 2015-09-26T10:23:17.947 回答