问题标签 [orientdb-etl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1361 浏览

etl - 使用 etl 将边导入 OrientDB

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

0 投票
1 回答
323 浏览

etl - OrientDB 仅使用 ETL 工具导入边

我已经使用 OETL 将我的所有顶点插入到图表中。

现在我有一个文件,它以下列方式勾勒出边缘:

node_1,rel_type,node_2
11000001,relation_A,10208879
11000001,relation_A,10198662
11000001,relation_B,10159927
11000001,relation_C,10165779

如何使用 OrientDB OETL 工具导入它?

我尝试了以下方法:

但这无法正常工作,因为它无法解析 csv 中的值。

0 投票
1 回答
102 浏览

graph - 用于保存 javascript 函数查询等的东方数据库位置

嗨,我有 orient DB 其非常酷的数据库,但我需要通过 http rest 进行一些操作,例如外部客户端将调用 orientDB 函数让我获得最后 100 个客户......但后面的查询将通过大量的关系遍历等等。我想将函数保存在 orient DB 上,但是如何使用 git 管理函数或版本需要一些工具,我可能会有 50 个不同的函数,每个函数后面都会有很长的查询,我需要维护,请给我建议谢谢

0 投票
2 回答
370 浏览

orientdb - 使用 OrientDB ETL 加载 Edges 文件

我正在从 AWS Marketplace AMI 运行 OrientDB 2.1.2。我已经使用 ETL 加载了两组顶点。现在我正在尝试使用 ETL 将 Edges 文件加载到 OrientDB 并得到:IllegalArgumentException:目标顶点为空。我查看了网上的文档和其他一些示例,我的 ETL 配置对我来说是正确的。我希望有人可能有一个想法。

我的两个 V 子类是:

作者(authorId、authGivenName、authSurname)和 authorId 上的索引

抽象 (abstractId) 与 abstractId 上的索引

我的 E 子类

已创作 - 没有在其上定义属性或索引

我的边缘文件

(authorId, abstractId) - \t 分隔字段,其中一个标题行带有这些名称

我的 ETL 配置:

当我使用此配置和文件运行 ETL 时,我得到:

当我查看调试时,似乎 MERGE 成功找到了 Author 顶点,而 EDGE 成功找到了 Abstract Vertex(基于看到输出中的 RID)。我很困惑为什么我会得到例外。在此先感谢您的任何指点。

0 投票
1 回答
567 浏览

orientdb - OrientDB ETL:如何跳过重复的顶点但创建边

我正在创建一个通信图。
每条消息都有一个 msgid,每个人都有一个用户 ID。
我已经创建了消息顶点,现在我想创建用户顶点和将消息顶点连接到用户顶点的边。
一个用户可以收到多条消息(显然)。
我的文件包含:
msgid、用户 ID(以及我将分配给边缘的一些其他信息)

我遇到的问题是在我的文件中我有重复的用户 ID(因为用户可以获得多条消息),我不想使用用户 ID 创建另一个顶点,所以我跳过重复。但是,如果我确实跳过重复项,则也不会创建边缘。我确实想要同一个用户顶点的多条边,因为每条边代表一条消息。

我如何保持用户顶点唯一但创建边缘?

我当前的 ETL .json 文件可以正常工作,除了我上面详述的内容。

0 投票
1 回答
164 浏览

java - ETL 加载程序抛出 FileNotFoundException:加载 json 文件时出错

我正在尝试让 ETL 加载程序在 OSX 机器(10.11.6)上的 OrientDB 2.2.5 上工作,但我一直在输入 JSON 文件上收到 FileNotFoundException ......

我将不再使用 post.csv 和 post.json 文件的教程中的示例我修改了它们以删除路径,因为它们与我自己的路径结构不太一致。

这是我的 post.csv:

post.json 文件:

我将环境变量 ORIENTDB_HOME 设置为 orientdb-community-2.2.4 所在的位置,并且 $ORIENTDB_HOME/bin 在我的路径中。

如果我输入以下内容:

输出是这样的:

我不确定正确的解决方法是什么...我的问题似乎与另一个先前提出的问题相似,但是由于我在任何路径中都没有空格,因此该解决方法对我不起作用。我尝试在配置文件中设置绝对路径,但这并没有改变任何东西。

我正在从我的posts.json 和posts.csv 文件所在的目录运行oetl.sh,但它似乎仍然无法找到posts.json。

更新:两个文件(posts.json、posts.csv)位于同一目录中。我曾尝试运行 oetl.sh 以及 oetl.sh posts.json,但异常不断发生。我也尝试过编辑 posts.json 以便它也有完整的绝对路径并且不会改变结果。

任何帮助将不胜感激......我认为这可能是某种Java配置问题,但我对Java比较陌生,所以我可能错过了一些环境变量或什么?

0 投票
1 回答
877 浏览

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

我有一些数据在 2 个 CSV 文件中,一个包含顶点,另一个文件包含边在另一个文件中。我正在研究如何使用 ETL 进行设置,并且很接近但还没有完全实现——它大部分都可以工作,但我的边缘有属性,我不确定它们是否加载正确。 这个问题很有帮助,但我仍然缺少一些东西......

这是我的数据:

顶点.csv

边缘.csv

我使用这个导入我的顶点:

commonVertices.json

顶点.json

commonEdges.json

边缘.json

我像这样使用 oetl.sh 运行它:

一切都在运行,但是当我查询边缘时......我是 OrientDB 的新手,所以它可能正在获取边缘中的属性,但是当我查询边缘时,我看不到权重和日期字段:

顶点表包含我的 edges.csv 中的 [weight] 字段,并且 [date] 字段以一种奇怪的方式被破坏。月份中的日期被 edge.csv 文件中的日期覆盖,这是不可取的,但对我来说奇怪的是月份本身也没有发生变化:

我敢肯定这可能是一个简单的调整,任何帮助都会很棒!

0 投票
0 回答
231 浏览

orientdb - 边缘属性从 ETL 中破坏 OrientDB 中的顶点属性

这是我发布的另一个问题的后续内容,该问题是关于使用 ETL 将一个简单的数据库导入 OrientDB,该 ETL 具有边和顶点属性,两者都有日期。

这是我的数据:

顶点.csv

边缘.csv

为简洁起见,我将使用其他问题的编辑内容仅添加更新后的 commonEdges.json 文件。其他 JSON 文件保持不变。

commonEdges.json

加载图表后,日期字段仍然被破坏。

如果我不加载边,这是顶点表:

一切看起来都不错,日期是 1/1/15 - 1/3/15。

在我加载边缘之后,日期字段是错误的:

边缘的日期也不正确:

看起来 OrientDB 正在用已经加载的日期破坏月份中的某一天......但是边缘的月份字段以某种方式被放入分钟字段中。对于顶点和边,它也以这种方式显示。

这只是 OrientDB 的一个错误,还是我的 ETL 文件中缺少某些内容?

提前感谢您的任何帮助或建议。

0 投票
1 回答
116 浏览

orientdb - CSV 的 OrientDB 2.2.7 ETL 未加载 DateTime 字段?

我正在尝试使用 ETL 加载程序加载一个简单的示例,但我必须遗漏一些东西。我已经关注了 Stack Overflow 上的各种线程,并且一直在阅读有关 extractors 的文档,但我的尝试失败了。

这是我的数据:vertices.csv

我正在设置两个 JSON 文件以尝试将其加载到 PLOCAL 数据库中:

顶点.json

commonVertices.json

我正在使用 oetl.sh 使用以下命令加载它:

带有调试信息的输出在这里:

它加载...日期字段未填充任何数据,如此查询所示:

到目前为止,在修补中,如果您将“dateFormat”和“columns”字段留在 commonVertices.json 文件之外,ETL 似乎会导入日期,但这样做可能会导入DATE,但不会导入时间。

我有点卡在这个问题上,对我来说它看起来像是一个错误,但我是 OrientDB 的新手,所以希望只是一个有简单解决方案的用户错误。

一如既往,非常感谢任何帮助!

0 投票
0 回答
164 浏览

performance - 在 OrientDB 中加载千兆字节数据的性能调整

我目前使用 ETL 工具将一堆 CSV 数据插入 OrientDB。我用于试用的系统配置是 EC2 M3 large(7.5 GiB 内存、2 个 vCPU、32 GB 基于 SSD 的本地实例存储、64 位平台)。

我尝试上传的数据(屏蔽)格式如下:

该模式包含 2 个节点类和一个边缘类。当我尝试使用 plocal 选项中的 ETL 工具加载数据时,速度仅为大约 2300 行/秒。ETL 配置如下所述:

然后我将顶点分成文件并仅针对顶点运行 ETL 作业,这次速度接近 12500 行/秒。这相当快,这对我有用。(当我删除索引时,速度几乎翻了一番)我使用的配置是:

然而,当我尝试单独插入边缘时,速度变得非常慢,为 2200 行/秒。事实证明,这甚至比一次运行整个操作还要低。配置文件附在下面:

如果我在这里做错了什么,请告诉我,还请提出更好的性能改进方法