我一直在尝试使用Blueprint.NET,它应该是Tinkerpop的C#实现,以访问OrientDB.我一直在搜索网站并通过电子邮件向开发人员发送电子邮件,但无论如何都无法找到它们.我已经使用了一些REST代码来连接到OrientDB,但它似乎并没有每个人都应该说的速度.我想尝试Blueprint.NET来看看它是否会更快.任何帮助,将不胜感激.
选择查询不适用于OrientDB中的JSON.有人可以提供展示两件事的工作示例:
正确插入JSON数据
查询JSON数据
谢谢!
我想分割OrientDB以在多个服务器上运行,但我找不到真正的方法来实现它.
我该怎么做?
我们想在Azure环境中使用OrientDB Graph.有没有人有使用它的经验?我们还想知道Azure云下是否需要OrientDB的高可用性?Azure已经为Azure存储,Azure驱动器和SQL提供了高可用性.我知道它们内置了复制和负载平衡.
这非常重要,因为我们不希望进入复制和基础架构管理业务.
谢谢
我目前正在进入OrientDB进行研究,以评估图数据库的版本控制功能.
OrientDB中的每条记录都有一个@version属性,每次更新记录时都会增加.这为版本控制支持提供了指示.我已经设置了一个简单的例子(使用OrientDB SQL)来测试它:
create class Product
create property Product.name string
create property Product.price integer
insert into Product (name, price) values ('Fridge', 449)
update Product set price = 479 where name = 'Fridge'
select from Product
Run Code Online (Sandbox Code Playgroud)
执行上面的语句后,我得到以下查询结果:
{
"result": [
{
"@type": "d",
"@rid": "#14:0",
"@version": 2,
"@class": "Product",
"name": "Fridge",
"price": 479
}
],
"notification": "Query executed in 0.031 sec. Returned 1 record(s)"
}
Run Code Online (Sandbox Code Playgroud)
在此数据库状态中 - 如何检索记录的先前版本(在这个简单的情况下为版本1)?这是通过OrientDB SQL语句和/或通过OrientDB Java API实现的吗?如果不是 - 那么@version属性的目的是什么?
感谢您的帮助!
注意:我使用的是图形数据库(OrientDB是特定的).这使我可以自由地在javascript或groovy中编写服务器端函数,而不是将自己限制为SQL以解决此问题.*
注2:由于这是一个图形数据库,下面的箭头只是描述数据流.我不需要在查询中返回箭头.箭头代表关系.*
我有以时间流方式表示的数据; 即EventC发生在EventA之后的EventB之后,等等.这些数据来自多个来源,所以它不是完全线性的.它需要聚集在一起,这就是我遇到问题的地方.
目前数据看起来像这样:
# | event | next
--------------------------
12:0 | EventA | 12:1
12:1 | EventB | 12:2
12:2 | EventC |
12:3 | EventA | 12:4
12:4 | EventD |
Run Code Online (Sandbox Code Playgroud)
其中"next"是时间流中下一个事件的out()边缘.在图表上,这看起来像:
EventA-->EventB-->EventC
EventA-->EventD
Run Code Online (Sandbox Code Playgroud)
由于这些数据需要聚集在一起,我需要合并重复事件但保留它们的边缘.换句话说,我需要一个选择查询,结果将导致:
-->EventB-->EventC
EventA--|
-->EventD
Run Code Online (Sandbox Code Playgroud)
在此示例中,由于EventB和EventD都发生在EventA之后(仅在不同时间),因此select查询将显示EventA的两个分支,而不是两个单独的时间流.
编辑#2
如果要将一组额外的数据添加到上面的数据中,使用EventB-> EventE,结果数据/图形将如下所示:
# | event | next
--------------------------
12:0 | EventA | 12:1
12:1 | EventB | 12:2
12:2 | EventC |
12:3 | EventA | 12:4
12:4 | EventD |
12:5 | EventB | …Run Code Online (Sandbox Code Playgroud) 使用a linklist,a linkmap或者edge存储我的顶点之间关系的利弊是什么?
我有图遍历的问题.使用典型的图遍历算法(DFS,BFS)无法解决我的用例.我想要从特定节点(N)开始的遍历节点,其中edge是ET类型.我想检索所有节点及其路径从N到节点.这可以使用Orient的策略之一,但我希望拥有所有可能的路径 - 不仅仅是一条路径.
样品:
对于上图,从R到C有两条路径:
我的图表可能有点复杂,但想法是一样的.
在OrientDB文档中,我发现有一个方法Graph可以返回所有的边(getEdgesofClass(String class)).我认为我可以解决我的问题如果我可以以某种方式指定图形(主图的子图 - 只有与根节点连接的节点),我想在其上调用此方法.
感谢所有的投入.
我正在使用OrientDB 2.0.0来测试其对批量数据加载的处理.对于样本数据,我使用的是谷歌GDELT项目的GDELT数据集(免费下载).我正在使用Java API将总共~80M的顶点(每个具有8个属性)加载到空白图数据库的V类中.
数据在一个制表符分隔的文本文件(US-ASCII)中,所以我只是从上到下阅读文本文件.我使用配置数据库OIntentMassiveInsert(),并将事务大小设置为每次提交25,000条记录.
我使用的是带有32G RAM和SSD的8核机器,所以硬件不应该是一个因素.我正在使用Java 8r31运行Windows 7 Pro.
前20M(左右)记录很快进入,每批25,000个记录不到2秒.我很受鼓舞.
然而,随着该过程继续运行,插入速率显着减慢.减速似乎非常线性.以下是输出日志中的一些示例行:
Committed 25000 GDELT Event records to OrientDB in 4.09989189 seconds at a rate of 6097 records per second. Total = 31350000
Committed 25000 GDELT Event records to OrientDB in 9.42005182 seconds at a rate of 2653 records per second. Total = 40000000
Committed 25000 GDELT Event records to OrientDB in 15.883908716 seconds at a rate of 1573 records per second. Total = 45000000
Committed 25000 …Run Code Online (Sandbox Code Playgroud) 我打算在社交网站上工作,我想利用文档和图形数据库来获得所有需要的功能.有没有办法让Meteor.js或Sail.js(或更好)与ArangoDB或OrientDB一起工作?或者我应该坚持使用捆绑的MongoDB并集成像allegrograph DB这样的东西?
orientdb ×10
allegrograph ×1
arangodb ×1
bulkinsert ×1
c# ×1
gdelt ×1
graph ×1
meteor ×1
sails.js ×1
scale ×1
sharding ×1
sql ×1
versioning ×1