首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

了解Multi-Model API

,通过profile属性关联到Profile类,该类中包含用户的基本信息,而HasFollowed作为边来表述Account之间的 “关注“ 关系。...代码中通过指定profile为OType.LINK类型,而建立了Account到Profile的1:1引用关系(这里设计成引用只是为了更多的展示API的功能,使用Edge来建立关系也是合理的)。...每次接收到sql语句后,OrientDB会parse语句,生成AST,并缓存,如果使用字符串连接的形式每次都无法命中缓存,而需要重新parse(虽然parse过程不是非常消耗资源的动作,但是零消耗总好过低消耗...))); resultSet.toJSON("fetchPlan:profile:-1 out_HasFollowed.in:1"); } 默认情况下,在remote连接模式下,query或者load...上述代码展示了加载我的关注的Match语句,其中return除了返回Account相关字段,还返回了边的@rid,方便后续取关逻辑的实现。

88920
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    OrientDB图遍历SQL之MATCH

    count(*)而不是count(1) 5.6.分组查询 5.7.分页查询 5.8.拆分SQL语句 5.9.实现LEFT JOIN的功能 5.10.实现INNER JOIN的功能 5.11.已知RID查询...orientdb3.X新增加的特性,必须和while或者maxDepth一起使用,该值用于存储遍历的深度,在return中可以通过该值获取每次遍历深度的值。...orientdb3.X新增加的特性,必须和while或者maxDepth一起使用,该值用于存储遍历的路径,在return中可以通过该值获取每次遍历路径下的点。...如果设置为true,那么即使这个节点没有匹配到,也不会影响整条路径的匹配,但这个选项只能出现在路径上最右边的节点。类似于SQL中的left join。 RETURN [ AS ] 定义返回的数据结构。...count(*)而不是count(1) 在关系型数据库中我们建议使用count(1)统计数量,但在orientdb中我们建议使用count(*)而不是count(1)。

    4.2K30

    OrientDB图遍历SQL之TRAVERSE

    分析:上图中Bio是Profiles的普通字段,而Hello不是Profiles的字段,out_HasFriend是系统自动为Profiles创建的边的record。...上图中展示一条记录也是Id为1的根记录,在TRAVERSE的查询结果中查询目标对象总会被查询出来,而且深度为0。...第一个out()的返回结果即一度返回结果是P1和P2,这个是没有问题的。但对于第二个out(),SELECT和MATCH的二度返回结果P0是查询到环了,而P1是因为一度和二度是同一个点。...当节点v的所有边都己被探寻过,搜索将回溯到发现节点v的那条边的起始节点。这一过程一直进行到已发现从源节点可达的所有节点为止。...但根据上图,即使二度朋友也可以是一度朋友,那么二度朋友的数量应该是9(Id=2的Profiles不是二度朋友),而不是45才对。问题出在哪儿了?

    1.8K30

    如何在Ubuntu 14.04上导入和导出OrientDB数据库

    在本文中,我们将使用GratefulDeadConcerts数据库来演示如何导出和导入OrientDB数据库。该数据库随每个OrientDB的安装一起提供,因此您不必创建新的数据库。...14:19 GratefulDeadConcerts.export.gz 返回带有OrientDB控制台的终端,您现在可以通过键入以下命令与当前数据库断开连接: disconnect 如果成功断开连接...第2步 - 导入数据库 在此步骤中,我们将导入在步骤1中导出的数据库。默认情况下,导入数据库会覆盖正在导入的数据库中的现有数据。因此,首先连接到目标数据库。...在此示例中,我们将连接到我们在步骤1中使用的默认数据库。...请注意,导入/导出功能在整个过程中不会锁定数据库,因此可以在进程发生时接收写入。有关此主题的更多信息,请参阅OrientDB官方导出/导入指南。 更多Ubuntu教程请前往腾讯云+社区学习更多知识。

    1.2K00

    图数据库OrientDB单实例及部署

    背景 随着社交、电商、金融、零售、物联网等行业的快速发展,现实社会织起了了一张庞大而复杂的关系网,传统数据库在处理关系运算上显得越来越力不从心。...通过将其设置为false,定义的端口将用于通信,如果端口已在使用中,则节点发现将失败。对于本文,该属性将被禁用。 multicast enabled :组播元素用于定义IP组播参数。...4.6 修改orientdb-server-config.xml文件 其中NodeName参数的值是在第3.4步中配置的节点名 . . ....默认值为多数 ,它使用(N / 2)+ 1计算 ,其中N是集群中可用主节点的数量。在计算大多数时,不考虑复制节点。...servers :用于指定集群中节点的角色(主节点或副本节点)。默认情况下,使用星号*表示服务器中的所有节点都是主节点。

    2K41

    OrientDB数据库的三种性能调整方式

    服务器和嵌入式设置 通过直接使用plocal,这些设置对于Java应用程序在嵌入模式下使用OrientDB运行的服务器组件和JVM都有效。 调整最重要的是确保内存设置是正确的。...可以根据您的使用情况和硬件/软件设置更改它们以调整JVM。 在server.bat文件中添加以下行。...例如,如果查询返回100个元素,但是如果您从客户端跨越这些元素,则OrientDB客户端会延迟地将这些元素加载到服务器的每个丢失记录的网络调用中。...使用数据库属性进行配置的示例命令。...如果您有5个节点,则majority为3,使用4个节点时,它仍然为3。将writeQuorum设置为3而不是4或5可以降低延迟成本并保持一致性。

    1.1K20

    干货|在选择数据库的路上,我们遇到过哪些坑?

    虽然在各个机构和行业之间进行大范围的数据分享时非常方便,但这并不是我们使用数据库的主要目的。 资源描述框架非常冗长,它是一种基于非属性的图形。...由于所有内容都表现为节点,要想进行复杂的关系查询,必须先到达目的地然后再一同返回,这给我们带来了一些性能问题。虽然资源描述框架没有成为我们的最终选择,但它确实帮我们看清了专注于数据关系的希望。...但我们知道,要描述两个人之间的关系,用资源描述框架太复杂了。我们希望能有一个非常非常简单的工具,让我们能够给节点分配属性,然后我们在一个属性图形模型里找到了以下内容: ?...于是我们又明白了,我们不能使用关系数据库,因为它们在关系上的表现不够出色。JOIN 连接、外键和索引既不真实,也不具体;它们只是我们画在纸上用来方便理解的图案。...Neo4j 可高度扩展,对节点、关系或索引的数量没有限制。同时 Neo4j 入门也相当简单,这对我们是很大的诱惑;在使用第三个数据库时,必须得迅速投入运行。

    1.3K70

    【详解】图数据库 | 灵活存储复杂关联关系

    >>>> 他是谁 图数据库并不是存储图片的数据库,参照维基百科的定义,他是“以图数据结构来实现语义查询,并以节点(node)、边(edge)、属性(properties)来表示并存储数据”。...属性(properties):类似KV数据库中的键值对,节点和边都可以有属性。 图数据库将数据以属性方式存储在节点或边中,以边来表示节点之间的关系,并用特定查询语言,进行数据检索。 ?...>>>> 他牛在哪儿 在传统关系型数据库RDBMS中,并没有明确的关系概念,或许叫表格数据库更贴切,而图数据库,恰恰是表现实体之间关系的利器。...所以我们建议在实际生产环境中,混合使用传统RDBMS和图数据库。...它并不是原生的图数据库引擎,而是底层使用ES、HBase等传统结构存储,并在上面封装图查询API。

    4.1K20

    MyBatis 从浅入深 随笔整理

    通过SqlSession实例来直接执行已映射的SQL语句 (1) 添加xx.xml 文件 SQL映射节点 (2) 根据需求利用SqlSession实例直接点出需要使用的方法,(方法传参SQL映射节点的id... 配置节点完成后,在本xml文件中可直接使用${key值}来获取对应的value值 3. ... 配置节点完成后,在本xml文件中可直接使用${key值}来获取对应的value值 如果外部配置和内部配置 配置了相同的key  那么:resource属性值的优先级高于property...其实呢,普通入参方式也不是一无是处,下面我们来谈论一下《在MyBatis中参数入参,何时需要封装成对象入参,何时又需要使用多参数入参???》...和使用association元素一样,我们使用嵌套查询,或者从连接中嵌套结果集 rid" column

    1.8K30

    MyBatis进阶 -【多表查询】的正确打开方式

    结果出来了,但是 user 表中的 id 属性由于和 account 表中的 id 属性名称是一致的,所以自动起了别名,更好的做法是,我们自己设置其对应的别名 SELECT u....,所以我们可以使用MyBatis 提供的 resultMap 进行接收结果数据,它会在列名和 Java 包装类属性名之间创建映射关系,这篇文章的重心还是放在表的操作上,关于这个问题,以后可以专门写篇文章进行说明...,这种,情况会麻烦一些,例如我们举个例子:用户以及职位之间的关系 一个用户可以有多个职位,而一个职位也可以属于多个用户 但是如何将两个表连接起来呢?...:column中的值是数据库中字段名,而property中的值是JavaBean中的对应成员变量,由于两者的名字并不是相同的,所以请注意区分 (4) 测试代码 @Test public void testFindAll...中间表通过UID RID两个字段分别连接起了 user 和 role 两张表 先通过 role 表中的 id 找到 中间表的 rid 然后通过 rid 对应的 uid值 找到 user 表中的 id 值

    1.3K20

    2018-11-23 graph图数据库概览,经过一个星期的Demo终于看懂了这篇文章20180818图数据库概览

    据neo4j的中国合作方的社区中描述,主要区别如下: 1、容量:社区版最多支持 320 亿个节点、320 亿个关系和 640 亿个属性,而企业版没有这个限制; 2、并发:社区版只能部署成单实例,不能做集群...【2】OrientDB OrientDB据描述性能可以达到Neo4j的数倍,但也有测试表明在遍历时磁盘空间增加,以空间换时间,遍历性能不高,但计算最短路径等性能高。...Neo4J和OrientDB在插入数据时候都会默认建立索引,索引的不同也造成了其不同操作的性能差异; Neo4J:擅长遍历图及不存在大量关系的节点的图计算 OrientDB:侧重文档数据库,主要还是...SB树索引导致,空间浪费比较大;插入节点与neo4j差不多,但是在插入节点关系即边时无优化;在图论算法上性能高,但遍历性能低。...(例如:ShortestPath、k-out、k-neighbor等)做了特定性能优化,并且为用户提供更为高效的使用体验 我的感觉是跟titan/JanusGraph蛮像的 看其致谢果不其然,不过里面还是蛮多创新及扩展的

    3.6K30

    如何在Ubuntu 14.04上安装和配置OrientDB

    准备 要学习本教程,您需要具备以下条件: Ubuntu 14.04 腾讯云CVM 具有sudo权限的非root用户(你需要一台已经设置好可以使用sudo命令的非root账号的Ubuntu服务器,并且已开启防火墙...[OServer] 由于OrientDB现在在终端窗口中运行,在同一Droplet的第二个终端窗口中,确认服务器正在侦听端口2424(用于二进制连接)和2480(用于HTTP连接)。...所需的密码是您在先前启动服务器时指定的密码: connect remote:127.0.0.1 root root-password 如果已连接,则输出应为: Connecting to remote...但是,它还意味着您可以在重新启动服务器时手动启动它。这不好。在接下来的步骤中,我们将配置和设置OrientDB,以便像服务器上的任何其他守护程序一样运行。...orientdb status 您还可以使用netstat步骤3中的命令来验证服务器是否正在侦听端口。

    99600

    图数据库调研

    Neo4j Neo4j 是目前最流行的图形数据库,支持完整的事务,在属性图中,图是由顶点(Vertex),边(Edge)和属性(Property)组成的,顶点和边都可以设置属性,顶点也称作节点,边也称作关系...优点: 它很容易表示连接的数据; 检索/遍历/导航更多的连接数据是非常容易和快速的; 它非常容易地表示半结构化数据; Neo4j CQL查询语言命令是人性化的可读格式,非常容易学习; 它使用简单而强大的数据模型...; 它不需要复杂的连接来检索连接的/相关的数据,因为它很容易检索它的相邻节点或关系细节没有连接或索引。...正如InfoWorld的SerdarYegulalp所写的:“在拥有Cosmos DB的情况下,微软在同一个数据库中提供了多重持久化模型,因此模型的选择可以是工作负载的功能而不是产品的功能”。...在OrientDB中,任何类型的数据都是可搜索的,用户域的建模支持面向对象的概念,可以很容易地扩展。每个模型不只是一个层,而是共存于一个引擎中。可选无模式、全模式或混合模式。

    6.6K30

    如何在Ubuntu 16.04上安装和配置OrientDB

    第1步 - 下载和安装OrientDB 在此步骤中,我们将下载最新的OrientDB社区版,并将其安装到/opt目录中,该目录是在Linux中安装第三方应用程序的传统位置。...在下一步中,您将启动OrientDB。 第3步 - 启动服务器 现在二进制文件准备好了,您可以选择将服务器配置为使用更少的RAM,现在可以启动服务器并连接到控制台。 导航到安装目录。...$ ssh sammy@your_server_ip 然后,在该第二个终端中,使用以下命令确认服务器正在侦听端口2424(用于二进制连接)和2480(用于HTTP连接)。...这意味着OrientDB正在运行,但这也意味着您需要在重新启动服务器时手动启动它。在接下来的几个步骤中,我们将配置和设置OrientDB,就像服务器上的任何其他后台程序一样运行。...如果服务器未启动,请在输出中查找线索。在下一步中,您将学习如何连接到应用程序的Web用户界面OrientDB Studio。

    1.2K40

    如何在Ubuntu 14.04上备份OrientDB数据库

    要完成本教程,你需要具备以下内容: 一台已经设置好可以使用sudo命令的非root账号的Ubuntu服务器,并且已开启防火墙。...先决条件 Ubuntu 14.04服务器 在Ubuntu 14.04安装和配置OrientDB 步骤1 - 使用备份脚本备份OrientDB OrientDB附带一个备份脚本,位于安装目录的bin文件夹中...在本教程中,在安装目录下创建一个文件夹backup以保存备份。您也可以选择将备份保存在databases文件夹中,该文件夹是应用程序的数据目录。...在本教程中,我们将使用backup文件夹,因此创建backup目录: sudo mkdir -p /opt/orientdb/backup 新创建的文件夹由root拥有,因此我们更改所有权,以便它由orientdb...这里我们使用数据库的默认用户 admin和密码 admin进行连接。

    1K00

    探索图数据库在数据资产可视化中的应用

    而当我们需要新的节点和关系时,只需进行几次更新就好,而不用去改变表的结构或者去迁移数据。...DGraph的存储结构与cayley同样借鉴了google的论文,将每个节点的属性也作为一个节点与主节点产生联系,这样更有益于基于batch来设计运算方法。...Neo4j Neo4j图数据库,它是一个高性能的NOSQL图形数据库,它将结构化数据存储在网络上而不是表中。...它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎,但是它将结构化数据存储在网络(从数学角度叫做图)上而不是表中。...函数接口也不方便 劣势: 插入性能稍低 索引: 自动索引_key属性,_from和_to属性;保证V和E的查找速度 OrientDB OrientDB是指兼具文档数据库的灵活性和图形数据库管理链接能力的可深层次扩展的文档

    1.9K20

    OrientDB备份数据库

    像RDBMS一样,OrientDB也支持备份和恢复操作。 在执行备份操作时,它将使用ZIP算法将当前数据库的所有文件转换为压缩zip格式。 通过启用自动备份服务器插件,可以自动使用此功能(备份)。...在此操作中,它将创建一个只读备份文件。 如果在进行备份时需要并发读取和写入操作,则必须选择导出数据库,而不是备份数据库。 导出不锁定数据库,在导出过程中允许并发写入。...例 将位于本地文件系统/ opt / orientdb / databases / demo中的数据库演示的备份放到名为sample-demo.zip的文件中,并位于当前目录中。.../backup-demo.zip 使用控制台 同样的,你可以做使用OrientDB控制台。服用特定数据库的备份之前,你必须先连接到数据库。您可以使用下面的命令连接到演示命名的数据库。...orientdb> CONNECT PLOCAL:/opt/orientdb/databases/demo admin admin 连接后,可以使用下面的命令来使数据库备份到当前目录中名为“backup-demo.zip

    34940
    领券