我有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的工作原理.我不应该尝试在评论中插入数据,而是更新问题.
这是我的问题的一个具体例子:
两种类型的顶点:
大师(John,Joey,Michael,Robert,Allen),
宠物(史努比,白色,蓝色).
两种关系:
喜欢(John喜欢Snoopy,Michael喜欢White,Michael喜欢Blue,Allen喜欢Snoopy,Michael喜欢White),
属于(史努比属于乔伊,白属于罗伯特,蓝属于约翰).
如何使用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中.