问题标签 [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.
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 行/秒。事实证明,这甚至比一次运行整个操作还要低。配置文件附在下面:
如果我在这里做错了什么,请告诉我,还请提出更好的性能改进方法
orientdb - 打印在 oetl.sh 期间创建的顶点 RId
我想知道是否可以打印在 oetl.sh 脚本期间创建的顶点的消除,我觉得它可能有助于更快地从 Java 代码创建边缘。
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 附在下面:
请让我知道,如果我做错了什么
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
orientdb - 使用 ETL 将 CSV 数据加载到包含 SPATIAL 索引的 OrientDB
我有兴趣从一些包含 WGS84 Lat/Long 空间坐标的 CSV 文件中将一些数据加载到 OrientDB 中。
我正在使用 OrientDB 2.2.8 并将lucene 空间模块添加到我的 $ORIENTDB_HOME/lib 目录中。
我正在使用 ETL 将数据加载到数据库中,并且想添加空间索引,但我不确定如何执行此操作。
假设我的 CSV 文件具有以下列:
- 标签(字符串)
- 纬度(浮点数)
- 经度(浮点数)
我在我的 ETL 中试过这个:
但它不起作用。我收到以下错误消息:
有没有人研究过通过 ETL 创建空间索引?我在这方面看到的大部分内容都是使用 Java 或通过直接查询。
提前感谢您的任何建议。
orientdb - 带有 fetchplan 的 OrientDB toJSON 从 JSON 中删除了元标记信息
运行此查询时,我是 OrientDb 的新手
然后我将使用 toJSON() 方法。它将返回带有元标记信息的完整 json,也就是
但是当我将 toJSON() 与 fetchplan 即 toJSON("fetchPlan:*:-1") 一起使用时,它将返回内部边缘信息但删除了元标记信息,即删除了这个
任何人都可以帮助我如何使用 toJSON 方法获取带有元标记的关系边缘数据。
orientdb - 使用 Traverse from 投影 OrientDB 中的记录
我正在使用带有OrientDb Studio 2.2.8的 Vehicle History 数据库,并且我想投影automobile
由Kia
.
数据库的架构如下所示:
(Automobile) --isModel--> (Model) --isMake--> (Make)
其中Automobile
、Model
和Make
是顶点isModel
, 和isMake
是边类型。
我想使用traverse 语句返回一个等效的结果集,因为我从这个命令得到:
Select expand(in('isMake').in('isModel')) from Make where name = "Kia"
谁的结果是……
我试着运行这个:
我只收到了一条记录,它不像我预期的那样属于汽车类。它来自 Make。
基本上,我想使用 Traverse 开始Make
在数据库中投影三辆起亚汽车。
reflection - 是否可以在不使用反射的情况下启动 OrientDb 服务器?
我在嵌入式模式下运行 OrientDb 2.2.6。我必须为我的代码授予安全权限,以便 SecurityManager 允许它运行。我特别不想授予的一项权限是(“java.lang.reflect.ReflectPermission”“suppressAccessChecks”)。而不是授予权限,我宁愿在不需要反射的情况下启动服务器。有没有办法在没有反射的情况下以嵌入式模式启动 OrientDb 服务器?
这是我的配置:
我使用的代码取自 OrientDb 文档。它只有三行:
相关的堆栈跟踪如下:
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:读取超时
这是什么意思,如何解决?
谢谢。
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