问题标签 [orientdb2.2]

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 投票
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 行/秒。事实证明,这甚至比一次运行整个操作还要低。配置文件附在下面:

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

0 投票
1 回答
36 浏览

orientdb - 打印在 oetl.sh 期间创建的顶点 RId

我想知道是否可以打印在 oetl.sh 脚本期间创建的顶点的消除,我觉得它可能有助于更快地从 Java 代码创建边缘。

0 投票
0 回答
47 浏览

orientdb - 只有来自节点 1 的数据在 2 节点 OrientDB 集群中可见

我按照以下步骤创建了一个 2 节点 OrientDB 集群。但是在分发它时,只有一个节点中存在的数据是可访问的。请你帮我调试这个问题。OrientDB 版本为 2.2.6

涉及的步骤:

  • 在 ETL 工具中利用 plocal 模式,将部分数据存储在节点 1 中,另一部分存储在节点 2 中。存储的数据实际上只属于一类顶点。(从控制台检查数据时,数据已正确注入)。

  • 然后以分布式模式执行两个节点,只能访问来自一台机器的数据。

default-distributed-db-config.json 文件指定如下:

为名为 address 的顶点创建了两个簇,即 address 和 address_1。机器orientslave1中的数据使用ETL工具存储到集群地址_1中,同样机器orientmaster中的数据存储到集群地址中。(我已确保这两个集群 ID 在创建时都不同)

但是当这两台机器以分布式方式连接在一起时,集群地址_1中的数据只可见

ETL json 附在下面:

请让我知道,如果我做错了什么

0 投票
1 回答
145 浏览

orientdb - How to get last N connected edges

I'm writing a large scale chat application and here is my db schema:

i'm using lightweight edges and i have 200,000 edges connected to #12:0 like this:

i want to get last 5 messages that connected to the #12:0. i tried these queries:

Query 1:

it took ~2s

"explain" result:

Query 2:

it took ~6s

"explain" result:

is there any faster way to do this?

please don't refer to the chat use case...

i'm using orientdb 2.2.7

0 投票
1 回答
214 浏览

orientdb - 使用 ETL 将 CSV 数据加载到包含 SPATIAL 索引的 OrientDB

我有兴趣从一些包含 WGS84 Lat/Long 空间坐标的 CSV 文件中将一些数据加载到 OrientDB 中。

我正在使用 OrientDB 2.2.8 并将lucene 空间模块添加到我的 $ORIENTDB_HOME/lib 目录中。

我正在使用 ETL 将数据加载到数据库中,并且想添加空间索引,但我不确定如何执行此操作。

假设我的 CSV 文件具有以下列:

  • 标签(字符串)
  • 纬度(浮点数)
  • 经度(浮点数)

我在我的 ETL 中试过这个:

但它不起作用。我收到以下错误消息:

有没有人研究过通过 ETL 创建空间索引?我在这方面看到的大部分内容都是使用 Java 或通过直接查询

提前感谢您的任何建议。

0 投票
1 回答
156 浏览

orientdb - 带有 fetchplan 的 OrientDB toJSON 从 JSON 中删除了元标记信息

运行此查询时,我是 OrientDb 的新手

然后我将使用 toJSON() 方法。它将返回带有元标记信息的完整 json,也就是

但是当我将 toJSON() 与 fetchplan 即 toJSON("fetchPlan:*:-1") 一起使用时,它将返回内部边缘信息但删除了元标记信息,即删除了这个

任何人都可以帮助我如何使用 toJSON 方法获取带有元标记的关系边缘数据。

0 投票
1 回答
74 浏览

orientdb - 使用 Traverse from 投影 OrientDB 中的记录

我正在使用带有OrientDb Studio 2.2.8的 Vehicle History 数据库,并且我想投影automobileKia.

数据库的架构如下所示:

(Automobile) --isModel--> (Model) --isMake--> (Make)

其中AutomobileModelMake是顶点isModel, 和isMake是边类型。

我想使用traverse 语句返回一个等效的结果集,因为我从这个命令得到:

Select expand(in('isMake').in('isModel')) from Make where name = "Kia"

谁的结果是……

我试着运行这个:

我只收到了一条记录,它不像我预期的那样属于汽车类。它来自 Make。

基本上,我想使用 Traverse 开始Make在数据库中投影三辆起亚汽车。

0 投票
0 回答
89 浏览

reflection - 是否可以在不使用反射的情况下启动 OrientDb 服务器?

我在嵌入式模式下运行 OrientDb 2.2.6。我必须为我的代码授予安全权限,以便 SecurityManager 允许它运行。我特别不想授予的一项权限是(“java.lang.reflect.ReflectPermission”“suppressAccessChecks”)。而不是授予权限,我宁愿在不需要反射的情况下启动服务器。有没有办法在没有反射的情况下以嵌入式模式启动 OrientDb 服务器?

这是我的配置:

我使用的代码取自 OrientDb 文档。它只有三行:

相关的堆栈跟踪如下:

0 投票
0 回答
76 浏览

java - OrientDB 在列表数据库命令上抛出 OStorageException

这是我正在使用的命令:

orientdb> CONNECT remote:192.168.0.12 root 密码

使用用户“root”连接到远程服务器实例 [remote:192.168.0.12]...OK

orientdb {server=remote:192.168.0.12/}> 列出数据库

控制台输出:

错误:com.orienttechnologies.orient.core.exception.OStorageException:无法检索配置列表

错误:java.net.SocketTimeoutException:读取超时

这是什么意思,如何解决?

谢谢。

0 投票
0 回答
52 浏览

indexing - 东方数据库。使用索引正确查询

我对在 OrientDB 的查询中使用索引有疑问。

例如,我的 X 类只有一个属性 x。X 类有很多记录,例如 200 000。

查询:select * from X where x=y 执行很长时间。

我在 x 属性上创建了索引。

查询:select * from X where x=y 执行很长时间。

查询:select expand(z) from index X.x where x=y 执行快

哪个查询是正确的(使用索引时):

(1)select * from X where x=y

(2)select expand(z) from index X.x where x=y