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

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

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

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

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

两种类型的关系:
喜欢(约翰喜欢史努比,迈克尔喜欢怀特,迈克尔喜欢布鲁,艾伦喜欢史努比,迈克尔喜欢怀特),
属于(史努比属于乔伊,怀特属于罗伯特,蓝属于约翰)。

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

最佳答案

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

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

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

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

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

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

关于etl - 使用 etl 将边导入 OrientDB,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32778905/

10-10 10:18