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

Gremlin -在单个查询中从多个顶点选择属性的最佳方法

Gremlin是一种图数据库查询语言,用于在图数据库中执行复杂的图遍历和查询操作。它是Apache TinkerPop项目的一部分,TinkerPop是一个开源的图计算框架,用于在分布式图数据库中进行数据处理和分析。

在Gremlin中,从多个顶点选择属性的最佳方法取决于具体的查询需求和数据模型。以下是几种常见的方法:

  1. 使用values()步骤:values()步骤用于从顶点或边中选择指定的属性。例如,如果要从多个顶点中选择"name"属性,可以使用以下Gremlin查询:
代码语言:txt
复制
g.V().hasLabel('person').values('name')

这将返回所有标签为"person"的顶点的"name"属性值。

  1. 使用project()步骤:project()步骤用于选择多个属性,并将它们作为结果的一部分返回。例如,如果要从多个顶点中选择"name"和"age"属性,可以使用以下Gremlin查询:
代码语言:txt
复制
g.V().hasLabel('person').project('name', 'age').by('name').by('age')

这将返回所有标签为"person"的顶点的"name"和"age"属性值。

  1. 使用valueMap()步骤:valueMap()步骤用于返回顶点或边的所有属性及其对应的值。例如,如果要从多个顶点中选择所有属性,可以使用以下Gremlin查询:
代码语言:txt
复制
g.V().hasLabel('person').valueMap()

这将返回所有标签为"person"的顶点的所有属性及其对应的值。

在腾讯云的图数据库产品中,推荐使用Tencent Cloud Neptune(腾讯云海王星)来存储和查询图数据。Neptune是一种高性能、高可靠性的托管图数据库服务,完全兼容Apache TinkerPop和Gremlin查询语言。您可以通过以下链接了解更多关于Tencent Cloud Neptune的信息: https://cloud.tencent.com/product/neptune

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

3. JanusGraph快速开始

本节将使用Gods图作为演示示例,此图JanusGraph演示中广泛使用。该图如下图所示。这个抽象数据模型对应图模型属性,这个特定实例描述了罗马万神殿中人物和地点之间关系。...JanusGraph会自动使用索引来检索满足一个或多个约束条件所有顶点(g.V)或边(g.E)。JanusGraph另外一种索引是以顶点为中心索引。以顶点为中心索引可以加快图遍历。...这也可以使用循环方式来查询,实际上Hercules是Saturnin('father') 路径上循环两次到达点。...JanusGraph非常智能,可以使用时候会使用以顶点为中心索引。GremlintoString()表达式将分解为单个步骤来展示。...每个遍历查询说明注释显示。

3.3K20

知识图谱之图数据库如何选型:知识图谱存储与图数据库总结、主流图数据库对比(JanusGraph、HugeGraph、Neo4j、Dgraph、NebulaGraph、Tugrapg)

(2) 对于一行来说,仅在极 少数列上具有值, 表存在大量空值, 空值过多会影响表存储、索引和查询性能 (3) 知识图谱,同一主语 和谓语可能具有多个不同宾语,即一对多联系或多值属性,而水平表一行一列上只能存储一个值...它是世界上能够托管具有数百亿个顶点(节点)和数万亿条边(关系)图形最佳解决方案,具有毫秒级延迟。...查询语言对比 查询语句角度出发,Gremlin 比较复杂,nGQL 和 Cypher 比较简练,可读性角度出发,nGQL 比较类 SQL 化,比较符合大家使用习惯。...可视化对比 可视化方面,所有的平台都还只处于可用状态,Nebula Graph 选择性扩展团伙挖掘是一个加分项,但是二度结果展示流畅度,展示结果自定义展示方面还有优化空间。...比较了多款业内主要使用开源数据库后,我们性能,学习成本和与业务贴合程度多个角度考虑,最终选择了性能出众,上手简单,能大幅提高业务效率 Nebula Graph 图数据库。

1.7K11

Gremlin查询概述

Gremlin:数据以属性形式存在,可以认为是上面两种混合体,属性仍然,但是联接关系是直接以链接(比如指针)形式存在。...,需要注意是,只有商业版,Cypher查询语句编译器才会生成高性能查询动作。...,返回该节点,这里可能会用到索引; out :从上一步结果集合,拉出一个,即 “vid” id,并把该点对应那行数据hbase里读取出来(即该点属性、相邻点、相邻边),返回出度节点,返回结果...返回结果 edgeList2; has:把 edgeList2 第一个节点拉出来,把该点对应属性字段 hbase 里读取出来,并进行 name 为 jack 过滤,返回结果; 迭代执行第4步,...JanusGraph 缺陷 由上面的存储和查询也可以看到,基于 Hbase属性图有下面几个明显缺陷: 顶点属性和边存储一行,当点出入度越大时,属性查询耗时将会越大; 更新边某一个属性时,需要先获取整个边数据

3.9K10

如何在Ubuntu 16.04上使用Cassandra和ElasticSearch设置Titan Graph数据库

Cassandra充当保存底层数据数据存储区,而ElasticSearch是一个自由文本搜索引擎,可用于在数据库执行一些复杂搜索操作。您还将使用Gremlin数据库创建和查询数据。...open()方法使用指定属性文件配置选项创建新Titan图,或打开现有图。配置文件包含高级配置选项,例如要使用存储后端,缓存后端和一些其他选项。您可以创建自定义配置文件并使用它。...执行命令后,图形对象将被实例化并存储graph变量。要查看图形对象所有可用属性方法,请键入graph....每个顶点都有一个顶点类型或其label关联属性,类似于SQL字段。...Titan目前为存储数据库提供三种选择:Cassandra,HBase和BerkeleyDB。本教程,我们将使用Cassandra作为存储引擎,因为它具有高可扩展性和高可用性。

2.3K20

# 知识图谱之图数据库如何选型:知识图谱存储与图数据库总结、主流图数据库对比(JanusGraph、HugeGraph、Neo4j、Dgraph、NebulaG

对于一行来说,仅在极 少数列上具有值, 表存在大量空值, 空值过多会影响表存储、索引和查询性能(3) 知识图谱,同一主语 和谓语可能具有多个不同宾语,即一对多联系或多值属性,而水平表一行一列上只能存储一个值...它是世界上能够托管具有数百亿个顶点(节点)和数万亿条边(关系)图形最佳解决方案,具有毫秒级延迟。...查询语言对比查询语句角度出发,Gremlin 比较复杂,nGQL 和 Cypher 比较简练,可读性角度出发,nGQL 比较类 SQL 化,比较符合大家使用习惯。...可视化对比可视化方面,所有的平台都还只处于可用状态,Nebula Graph 选择性扩展团伙挖掘是一个加分项,但是二度结果展示流畅度,展示结果自定义展示方面还有优化空间。...比较了多款业内主要使用开源数据库后,我们性能,学习成本和与业务贴合程度多个角度考虑,最终选择了性能出众,上手简单,能大幅提高业务效率 Nebula Graph 图数据库。

55410

图数据库调研

SPARQL查询与 RDF 是一致,RDF 是图,SPARQL 查询是子图匹配。 Gremlin:数据以属性形式存在,属性仍然,但是联接关系是直接以链接(比如指针)形式存在。...Neo4j Neo4j 是目前最流行图形数据库,支持完整事务,属性图中,图是由顶点(Vertex),边(Edge)和属性(Property)组成顶点和边都可以设置属性顶点也称作节点,边也称作关系...,每个节点和关系都可以由一个或多个属性。...AWS和微软这两个竞争对手云数据库处理方法上截然不同。...用 Gremlin 查询 Apache TinkerPop3样式属性图。Gremlin 是一种图遍历语言,其中查询是遍历节点边缘之后离散步骤构成遍历。 用 SPARQL 查询 RDF。

6.5K30

属性图数据库JanusGraph初探

一旦实现,就可在系统是有Gremlin遍历语言。然而图系统提供者还可以特定TraversalStrategy优化策略,允许系统执行Gremlin查询时对其进行优化(例如索引查询,步骤重排序)。...,可以把包含数千亿个顶点和边图存储多机集群上。...; (5)数据分布式存储,并且每一份数据都有多个副本,因此,有更好计算性能和容错性; (6)支持多个数据中心做高可用,支持热备份; (7)支持各种后端存储系统,目前标准支持以下四种,当然也可以增加第三方存储系统...Elasticsearch Apache Solr Apache Lucene 通常,应用通过两种方法与JanusGraph交互: 1.当本地或者远程检索数据, 内嵌应用JanusGraph,...为此每导入一个顶点数据都会执行如下逻辑:获取要导入顶点id值,查询图中是否有某个顶点bulkLoader.vertex.id值等于id值,如果等于,则使用要插入值,更新该图中已存在顶点属性;如果不存在

3.5K50

「数据库深度探索」图型数据库JanusGraph支持知识图谱和图型分析

JanusGraph是一个可扩展图形数据库,用于存储和查询分布多机集群包含数千亿顶点和边图形。...TinkerPop使您能够使用相同图结构和Gremlin图遍历语言,使用相同代码来生成多个图数据库。...现在,人们可以选择使用单个线程执行遍历(这非常适合实时使用情况),或者使用Spark计算集群上执行遍历(例如,用于机器学习或图形分析)。...我通常方法是决定我是否希望能够搜索具有相同属性其他顶点,在这种情况下,我将它建模为自己顶点,用边将它连接到所有具有该值顶点。否则,它通常只能是一个顶点属性。 JP:图形建模需要时间。...即使给定顶点上有合理数量边,查询将触及图元素数量也会随着几次跳跃呈指数增长。考虑将图结构反规范化,这样就可以更好地利用过滤(标签或属性上匹配)来减少查询早期元素数量。

2.4K20

百亿级图数据JanusGraph迁移之旅

其实最开始想到就是这个方案,但是这个方案对导入数据有非常严格要求,它需要每个顶点一行数据,再把这个顶点关联所有边都关联到这一行,中间用 tab 分隔,第一部分是顶点属性,第二部分是顶点入边,...我们应用场景属性都是放到顶点上,例如:如果我要查询一个用户通话关系,但是需要过滤只要相关注册用户,查询语句像下面这样 g.V().has("name","138xxxx4444").both("CALL...JanusGraph 默认做法是逐条获取这个1000 个用户所有属性,再在内存做过滤最后获得这 100 个用户,这就导致关联顶点数量比较大时候,直接不可用。...好在 JanusGraph 最新 0.4 版本中提供了一个 _multiPreFetch 优化功能,能在属性过滤时候批量并行获取所有关联顶点属性,再在内存做属性过滤,关于这个功能详细介绍可以看这里...最常用就是使用 valueMap 方式,但是这里面有两个比较大坑,第一个是返回属性值默认是list类型,第二个是如果返回结果使用多个 valueMap 导致特别消耗内存。

2.5K50

linux环境安装可操作图库语言Gremlin图框架HugeGraph

首先,在数据结构,图是一种由顶点(vertex)集合及顶点间关系集合组成一种非线性数据结构。...根据官网上介绍,HugeGraph是一款易用、高效、通用开源图数据库系统(Graph Database),实现了Apache TinkerPop3框架及完全兼容Gremlin查询语言,支持百亿以上顶点和边快速导入...属性:支持属性图、支持多值属性、支持多样化属性类型、支持顶点属性追加与合并。 元数据:支持丰富Schema校验,如属性是否可空(可选),支持Schema动态修改。...,用户根据实际情况选择一种即可; API:内置REST Server,向用户提供RESTful API,同时完全兼容Gremlin查询。...浏览器测试运行下,输入1+3,若能显示[4],即已经完整启动完成,可在以下Studio界面玩Gremlin图数据库语言了。 ?

1.9K30

伸手党福利-从零开始玩转图库

,可以看出来任意图中一个起始节点,可以先找到出度边,然后查询出度节点,这样travesal就跳到了下一个节点,反复如此即可完成对图遍历。...表达式左边(示例vertex1,marko节点)这些stepstraversal中间(示例种 out(‘knows’)以及values(‘name’)) 通过不断执行”traversal.next...持久化模型 JanusGraph内部数据布局 JanusGraph将邻接表按行row保存在后台存储。使用64位顶点Id作Key指向相应顶点邻接表row。...每个边或属性row中都是一个独立cell,并且这些cell可以高效完成插入和删除。每行(row)可以存储cell最大数hbase做存储场景下没限制,schema free随意新增列。...单条边数据布局 ? 每个边或者属性会保存在顶点邻接表rowcell。序列化之后column数据字节序也反映了原来Edge标签key序。

4.8K30

次方 - 第一部分

w=160] 各种不同变量可能会影响将数据加载到图中方法,但为决策提供最重要指导属性是大小。就本文而言,“大小”是指要加载到图中估计边数。...w=250] 维基选票网站(包含了维基百科2008年1月成立之初至今所有的维基百科投票数据,网络顶点代表了维基用户,其中由箭头线连接顶点i至j代表了用户i给用户j投票)。...fromVertex.addEdge('votesFor', toVertex) - 构造两个顶点之间边。 g.commit()- 值得注意是,这个加载是单个事务上下文中执行。...bg.setVertexIdKey("npi")- 告诉BatchGraph顶点标识符将被存储一个叫做npi顶点属性。...如果数据可以组织起来,并且条件允许的话,可以考虑一下使用gpars进行并行加载方法。 如果有倾向于非JVM语言(如Python)加载数据,可以理清本文思路并在Gremlin编写加载脚本。

1.7K50

大数据图:循环点阵

首先必须存在4个角顶点,每个角顶点度数都为2;然后每边有19个度数为三顶点,假设有4条边,则有76个这样点(19 x 4 = 76);最后,点阵内部正方形存在19行每行19列个度数为4顶点...它有6条不同路径,这可以Gremlin验证。...例如,尝试使用Gremlin遍历方法来确定1000x1000点阵所有不同路径,缺点很快就会暴露出来,Gremlin 将需要和宇宙年龄一样长时间来实现。...Gremlin发现序列称为A000984,页面上有以下注释: “(0,0)到(n,n)通过(1,0)和(0,1)点阵路径数量。...当计算顶点(0,0)到(n,n)路径数量时,只有向下和向右两个方向允许移动,因此必须有n个下移,n个右移。这意味着总共有2n个移动,因此有n个选择(因为另外n个“选择”是由前面n个选择所确定)。

3.5K60

图解图库JanusGraph系列-解惑图数据库,你知道什么是图数据库吗?

,上述过程我们需要 接口入参获取小李各种信息 通过小李各种信息去表查询出对应数据 再根据查出一度用户去表查询二度用户,那如果要查多度呢,如果想要获取用户其他信息呢,就要join,多表join...JanusGraph是一个可扩展图形数据库,专门用于存储和查询分析分布多机集群数千亿个顶点和关系边图形。 JanusGraph是一个事务数据库,可以支持数千个并发用户实时执行复杂图遍历。...,从而振兴分布式图系统开发” JanusGraphApahce TinkerPop吸收了对属性图模型(Property Graph Model)支持和对属性图模型进行遍历Gremlin遍历语言...图查询语言 \ Gremlin图服务器 \ Gremlin应用程序 Apache 2许可下开源 工具可视化存储JanusGraph图形:Cytoscape \Apache TinkerPop ...Gremlin Server是Apache Tinkerpop一个组件 JanusGraph集群包含一个、或者多个JanusGraph实例。

2.5K40

解惑图数据库!你知道什么是图数据库吗?

基于上述场景,我们首先先考虑使用关系型数据库: 一个用户表存储用户详情,上述过程我们需要 接口入参获取小李各种信息 通过小李各种信息去表查询出对应数据 再根据查出一度用户去表查询二度用户,那如果要查多度呢...JanusGraph是一个可扩展图形数据库,专门用于存储和查询分析分布多机集群数千亿个顶点和关系边图形。 JanusGraph是一个事务数据库,可以支持数千个并发用户实时执行复杂图遍历。...,从而振兴分布式图系统开发” JanusGraphApahce TinkerPop吸收了对属性图模型(Property Graph Model)支持和对属性图模型进行遍历Gremlin遍历语言...Vertex:节点/顶点,用于表示现实世界实体对象。...图查询语言 \ Gremlin图服务器 \ Gremlin应用程序 Apache 2许可下开源 工具可视化存储JanusGraph图形:Cytoscape \Apache TinkerPop

4.6K270

JanusGraph -- 简介

JanusGraph是一个可扩展图形数据库,专门用于存储和查询分析分布多机集群数千亿个顶点和关系边图形。...吸收了对属性图模型(Property Graph Model)支持和对属性图模型进行遍历Gremlin遍历语言。...图查询语言 Gremlin图服务器 Gremlin应用程序 Apache 2许可下开源 工具可视化存储JanusGraph图形: Cytoscape Apache TinkerPop Gephi...Gremlin Server是Apache Tinkerpop一个组件 JanusGraph集群包含一个、或者多个JanusGraph实例。...数据抽取是各个不同数据源抽取到ODS(Operational Data Store,操作型数据存储)——这个过程也可以做一些数据清洗和转换),抽取过程需要挑选不同抽取方法,尽可能提高

4.5K10

知识图谱-图数据库选型与评测

Neo4j Neo4j是一个嵌入式、基于磁盘、具备完全事务特性、由Java语言编写面向图数据库,它将结构化数据存储图上而不是表,重点解决了拥有大量连接传统RDBMS查询时出现性能衰退问题...,在数据规模较大时可通过部署多个Neo4jServer做数据拆分,但限制为一个图数据规模要在单个节点可承受数据范围(大概单图数据规模控制千万顶点上亿边)内。...实现了ApacheTinkerPop3框架及完全兼容Gremlin查询语言, 具备完善工具链组件,助力用户轻松构建基于图数据库之上应用和产品。...Nebula Graph 将点和边信息存储为 key,同时将点和边属性信息存储 value ,以便更高效地使用属性过滤。...数据规模较大情况下选择NebulaGraph,它采用shared-nothing 架构,可通过扩容存储节点来满足多达千亿顶点和万亿边数据规模,计算层可通过集成SparkGraphx来实现分布式查询计算能力

2.2K30

【翻译】图解Janusgraph系列-缓存(Janusgraph Caching)

2 Transaction-Level 缓存 一个打开事务,JanusGraph维护着两个缓存: Vertex 缓存:缓存访问顶点及其邻接列表(或其子集),以便后续访问同一事务明显更快。...Index 缓存:缓存索引查询结果,以便后续索引调用可以内存中提供,而不是调用索引后端,并且(通常)等待一次或多次网络往返。 这两者大小由 transaction cache size决定。...2.1 Vertex 缓存 顶点缓存包含顶点及其特定事务检索邻接列表子集。此高速缓存维护最大顶点数等于事务高速缓存大小。如果事务工作负载是迭代遍历,则顶点缓存将显着加快速度。...3 Database Level 缓存 数据库级高速缓存在多个事务并且单个事务持续时间之外保留邻接列表(或其子集)。数据库级缓存由数据库所有事务共享。...如果其他软件层同一JVM运行,那么这些软件层也可能占用大量堆空间(例如Gremlin Server,嵌入式Cassandra等)。保守堆内存估计。

83820
领券