![](https://img-blog.csdnimg.cn/20190918135101160.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
图数据库相关
图数据库学习
taotaobujuerulv
这个作者很懒,什么都没留下…
展开
-
图数据库HugeGraph-6:循环操作
循环操作是指多次执行某一部分语句,用于语句需要重复运行的场景。原创 2024-05-13 20:47:32 · 128 阅读 · 0 评论 -
图数据库HugeGraph学习-18:随机过滤与注入
gremlin支持在遍历器上结果进行采样或者是做随机过滤。sample: 接受一个整数值,从前一步的遍历器中采样(随机)出最多指定数目的结果;coin: 字面意思是抛硬币过滤,接受一个浮点值,该浮点值表示硬币出现正面的概率。coin Step 对前一步的遍历器中的每个元素都抛一次硬币,出现正面则可以通过,反面则被拦截。注入说明Gremlin允许在遍历器中注入一些默认值或自定义值,比如在分支 Step 中给 else 路径的元素一个默认值,又或者在遍历器过程中人为地加上一些额外的元素。原创 2024-05-15 10:35:13 · 292 阅读 · 0 评论 -
图数据库HugeGraph学习-14:分支
在对图进行遍历分析时,有时需要根据某些条件对当前的对象集合进行不同的操作,也就是if-then-else语法结构。Gremlin中有一类step可以满足这种分支需求,这组step叫做branch step。branch()是这类step的基础,比较抽象,而choose()是典型的branch step。原创 2024-05-14 20:46:33 · 846 阅读 · 0 评论 -
图数据库HugeGraph学习-8:数据分组去重
数据分组对应SQL数据中常见的group by的操作,从某个维度上对拥有相同的 点进行分组,比如根据年龄分组,根据出生省份分组等。数据去重则是为了去除结果集中的相关的元素,去除在某个维度上相同的数据。原创 2024-05-14 11:09:25 · 247 阅读 · 0 评论 -
图数据库HugeGraph学习-19:结果存取口袋sack
此外在放入数据到口袋的时候,还可以做一些灵活的操作比如:分裂(split)、合并(merge)等。sack相关step属于Gremlin语言里面的高级操作,在处理较为复杂的任务时可以灵活的实现一些特殊功能。withSack(): 创建一个口袋,并给定一个初始结构,比如可以是一个返回Map或者随机数的lambda函数,也可以是一个对象或常数;另外还可以提供lambda分裂函数,以指定当traverser分裂时的行为,比如进行clone操作。当传入lambda合并函数作为参数时,可指定放入口袋的行为如何执行;原创 2024-05-15 10:44:18 · 162 阅读 · 0 评论 -
图数据库学习HugeGraph-24:附加操作sideEffect
group(string)、groupCount(string)、subgraph(string)、aggregate(string)、inject(string)、profile(string)等。在进行图遍历时,可以在路径中做一些额外的附加操作,这个附加操作不会改变上一步的结果,会原封不动的传递到下一步去。附加操作看起来就像透明的,但实际上可以将附加操作的处理结果存储到外部变量中去。sideEffect(): 在某个位置插入一个附加操作,以执行额外的操作,通常可与store、sack等配合使用。原创 2024-05-15 11:11:04 · 147 阅读 · 0 评论 -
图数据库HugeGraph学习-20:遍历栅栏barrier
Gremlin在路径遍历的时候,可以将栅栏barrier插入到懒加载的遍历流水线中,以使得barrier之前的步骤都执行完成之后再继续往下执行。barrier(): 在某个位置插入一个栅栏,以强制该位置之前的步骤必须都执行完成才可以继续往后执行,比如g.V().both().barrier().both()只有在第一个both()全部完成之后才会执行第二个both()。参考:https://blog.csdn.net/javeme/article/details/89182912。原创 2024-05-15 10:48:36 · 149 阅读 · 0 评论 -
图数据库学习HugeGraph-21:局部操作local
另外,有一些step默认的操作是针对对象流中的全部对象,但也可以通过参数来改变默认操作,允许针对对象流中的单个对象进行操作,包括count(),max(),mean(),min(),sum(),order(),tail(),limit(),range(),sample(),skip()和dedup()等。很多操作是针对传递过来的对象流中的全部对象进行操作,但也有很多时候需要针对对象流中的单个对象而非对象流中的全部对象进行一些操作。这种对单个对象的局部操作,可以使用local()语句实现。原创 2024-05-15 10:55:40 · 121 阅读 · 0 评论 -
图数据库HugeGraph学习-11:统计运算
Gremlin可以在Number类型的流(遍历器)上做简单的统计运算,包括计算总和、最大值、最小值、均值。原创 2024-05-14 20:23:36 · 150 阅读 · 0 评论 -
图数据库学习HugeGraph-25:执行统计与分析
TraversalStrategy是“遍历策略”,可以在编译期分析遍历(Traversal)的组成,并在遍历满足TraversalStrategy的条件时对遍历进行修改。explain(),详细描述原始的Gremlin语句在编译期是如何转变为最终要执行的step集合的。profile(),统计Gremlin语句执行过程中的每个step消耗的时间和通过的对象等统计信息。Provider optimization,图数据库实现级别的策略。Finalization,遍历执行前的调整和清理策略。原创 2024-05-15 11:14:41 · 121 阅读 · 0 评论 -
图数据库HugeGraph学习-15:合并
optional: 只能接受一个遍历器(traversal),如果该遍历器能产生一个结果,则返回该结果,否则返回调用optionalStep的元素本身。原文链接:https://blog.csdn.net/u010260089/article/details/82837664。coalesce: 可以接受任意数量的遍历器(traversal),按顺序执行,并返回第一个能产生输出的遍历器的结果;union: 可以接受任意数量的遍历器(traversal),并能够将各个遍历器的输出合并到一起;原创 2024-05-15 09:56:55 · 164 阅读 · 0 评论 -
图数据库HugeGraph学习-17:模式匹配
match()语句为图查询提供了一种基于“模式匹配”的方式,以便用更具描述性的方式进行图查询。match()语句通过多个模式片段traversal fragments来进行模式匹配。这些traversal fragments中会定义一些变量,只有满足所有用变量表示的约束的对象才能够通过,并被放到一个Map<String, Object>中,其中map的key为变量名(label),value为顶点、边、路径或者属性。match()语句的格式为:match(Traversal…)。原创 2024-05-15 10:26:06 · 423 阅读 · 0 评论 -
图数据库HugeGraph学习-7 查询结果排序
与sql数据库中最后我们在输出展示结果时,常常会限制输出的条数,或者是限制输出展示的顺序等操作,同样的Gremlin也是允许对图查询结果进行排序输出的,可以指定某个属性的升序、降序或者是随机序的方式输出。原创 2024-05-14 10:38:45 · 99 阅读 · 0 评论 -
图数据库HugeGraph学习9:条件过滤
通常我们都是基于筛选来选取我们需要的数据,在对图进行遍历分析的时候,经常需要满足一定条件进行对象过滤。where() 就是用来过滤遍历过程中当前阶段的对象。另一方面,predicate就是过滤使用的判断条件,包含关系运算和区间判断等,只有满足判断条件的对象才能通过进入下一轮或者作为结果。原创 2024-05-14 20:10:14 · 127 阅读 · 0 评论 -
图数据库学习HugeGraph-22:遍历终止terminal
Gremlin 中有一类特殊的操作,它能够终止遍历器的“遍历”行为,使其执行并返回结果。在这里要强调的一点:原生的 Gremlin 语句通常都是用遍历器连接起来的,但其实这些连接的过程并不会执行 Gremlin 语句,只有走到了terminalStep 时才会执行。这是 Tinkerpop 的 Gremlin 解析引擎对遍历器对象调用了一个IteratorUtils.asList()方法,又调用了它内部的fill()方法(注意:不是上面讲到的fill()Step)。原创 2024-05-15 11:00:43 · 240 阅读 · 0 评论 -
图数据库学习HugeGraph-23:转换操作map/flatMap
map 操作是是在遍历器中将元素映射(转化)成另一个类型的某个对象(1对1),进行后续处理。flatMap 则是 1对多。原创 2024-05-15 11:08:25 · 291 阅读 · 0 评论 -
图数据库HugeGraph学习9:逻辑运算
在遍历器上加上逻辑运算进行过滤,只有满足该逻辑条件的元素才会进入下一个遍历器中。原创 2024-05-14 20:18:03 · 165 阅读 · 0 评论 -
图数据库HugeGraph学习-13:路径选取与过滤
Gremlin支持从走过的路径里选取部分数据作为结果,并且可以在选取时进行条件过滤。原创 2024-05-14 20:35:01 · 207 阅读 · 0 评论 -
图数据库HugeGraph学习-12:数学计算
exp: euler’s number raised to the power (e^x),以e为底的指数。log: logarithmus naturalis (base e),以e为底的对数。log10: logarithm (base 10),以10为底的对数。log2: logarithm (base 2),以2为底的对数。cosh: hyperbolic cosine,双曲余弦。sinh: hyperbolic sine,双曲正弦。asin: arc sine,反正弦。原创 2024-05-14 20:26:33 · 122 阅读 · 0 评论 -
图数据库HugeGraph学习-16:结果聚集与展开
将在图中进行查询时,将某一步的结果都收集到一个集合中,以备在后续步骤中使用,此外还可能在后续需要的时候将聚集的结果进行展开。原创 2024-05-15 10:17:49 · 179 阅读 · 0 评论 -
图数据库HugeGraph学习-3:has条件过滤
hugeGraph学习原创 2024-05-13 16:50:03 · 258 阅读 · 0 评论 -
图数据库基本介绍
图数据库原创 2024-05-13 11:33:48 · 102 阅读 · 0 评论 -
图数据库学习HugeGraph5:查询路径
在使用Gremlin对图进行分析时,关注点又是并不仅仅在最终到达的顶点、边或者属性上,通过怎样的路径到达最终的顶点、边和属性同样重要。此时查询路径就极为重要。path()返回当前遍历过的所有路径。有时需要对路径进行过滤,只选择没有环路的路径或者选择包含环路的路径,Gremlin针对这种需求提供了两种过滤路径的step:simplePath()和cyclicPath()。原创 2024-05-13 20:28:49 · 187 阅读 · 0 评论 -
图数据库HugeGraph学习-1:基本概念
图数据库HugeGraph学习原创 2024-05-13 15:14:19 · 144 阅读 · 1 评论 -
图数据库HugeGraph学习-4:查询结果命令
图数据库学习原创 2024-05-13 17:10:21 · 215 阅读 · 0 评论 -
图数据库HugeGraph学习-2:边的遍历操作
图数据库学习原创 2024-05-13 16:19:45 · 255 阅读 · 0 评论