etl - 使用 etl 将边导入 OrientDB

标签 etl orientdb orientdb-etl

我有 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?

最佳答案

东方数据库 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/

相关文章:

OrientDB ETL 加载 CSV,其中顶点在一个文件中,边在另一个文件中

sql-server - 带有 Oracle 11g 的 SSIS CDC

ssis - 使用 DOB 列计算年龄

java - 如何通过 HTTPS 使用 OrientDB?

date - 在orientDB中,如何搜索给定年份中的日期的条目?

orientdb - `DELETE VERTEX v;`之后如何重置RecordId?

东方数据库ETL : how to skip a duplicate vertex but create the edge

python - Dagster 无法本地连接到 mongodb

sql - 派生列转换中的 DT_DBDATE 日期到 YYYYMMDD