@[TOC](图数据库ONgDB Release v-1.0.0) Here's the table of contents:
•一、ONgDB•二、Geequel•三、APOC•四、ONgDB Browser•五、Geequel Shell
图数据库ONgDB Release v-1.0.0
对于很多中小公司其实使用社区版的Neo4j(Neo4j社区版支持数据规模百亿级别)就可以满足大部分的业务场景了,但是对于
可用性
和性能
要求较高的场景必须使用集群方式来系统化建设图平台能力
。由于Neo4j企业版售价过于昂贵,因此开源社区基于Neo4j开源版本源代码共同建设了ONgDB这个图数据库。 ONgDB经历了版本号从3.x到1.0的变换,由于商标版权原因在正式发布的1.0版本中彻底重新设计了商标。v-1.0版本中图数据库名称依旧使用ONgDB
,查询语言使用Geequel
支持openCypher
大部分功能,扩展包名称APOC
,浏览器名称ONgDB Browser
,命令行接口工具名称Geequel Shell
。关于ONgDB开源协议的介绍[1]
一、ONgDB
一个
开源的
、高性能
的本机图形存储
,包含您期望从企业级
数据库中获得的一切,包括高可用性集群
、ACID事务
和Geequel
(一种直观的、以模式为中心的图形查询语言)。开发人员使用基于图论的结构,我们称之为节点和关系,而不是行和列。对于很多用例来说,与非本机图数据库、关系数据库和NoSQL数据库相比,ONgDB将提供数量级的性能优势
。
•后台启动界面
二、Geequel
Geequel是ONgDB强大的图形查询语言。它是一种为查询图网络而优化的声明性、模式匹配语言。Geequel是openCypher®的一个实现,openCypher®是最广泛采用的、完全指定的、开放的属性图形数据库查询语言。Geequel提供了一种直观的方式来处理ONgDB,支持属性图,并且在跟进ISO正在开发的图形查询语言(GQL)标准。Geequel易于学习和人类阅读,这使得Geequel易于使用,对业务分析人员、数据科学家、软件开发人员和操作人员都是统一的标准。GQL Standard:GQL was just inaugurated as an official ISO project[2]
Geequel是一种最强大的方法来有效地表达图数据库遍历,以便在ONgDB中读写数据。Geequel可以引导ONgDB做一些类似这样的事情:“马上把我朋友的朋友查找出来”或“从这个员工开始,返回他们的完整的报告链条”,以几行代码的形式就可以完成。因此,Geequel跨所有语言的查询和操作以及与ONgDB的集成能够以一致的方式进行查询。Geequel看起来很像ASCII艺术,因为它使用文本模式表示来表示节点和关系。节点被圆括号包围,圆括号看起来像圆圈,关系由带方括号的破折号组成。这里有一个例子:
(graphs)-[:ARE]-(everywhere)
。编写和表示基于深度的查询是Geequel的亮点之一。我朋友的朋友的朋友就像“(我)-[:friend *3]->(fofof)
”一样简单。创建查询实际上很有趣,因为Geequel的声明性本质遵循直接的模式和关系,而不必考虑需要结合什么来聚合所需的数据。在使用SQL的RDBMS实现中,上面提到的查询需要编写大量代码,而且由于连接的数量太多,执行效果很差。但是在
ONgDB
上使用Geequel
,可以同时用最少的代码和优化的遍历性能来表示复杂的思想。
Geequel
的目的是实现所有的GQL
和openCypher®
的大部分功能,(openCypher®
是Neo4j, Inc.
的一个商标。Disclaimers[3]
三、APOC
APOC是一个与ONgDB一起工作的库。ONgDB 1.0通过APOC引入了用户自定义过程和函数的概念。这些是某些功能的自定义实现,不能(轻松)用Geequel本身表达。它们是用Java实现的,可以很容易地部署到你的ONgDB实例中,可以
直接从Geequel调用它们
。APOC库由许多(大约450个)过程和函数组成,以帮助完成不同领域的许多不同任务。一些已经存在APOC存储过程的领域的例子包括数据集成、图算法和数据转换。这些程序是由社区发起、创建和支持的。APOC过程被广泛使用,并且很容易通过Geequel查询进行内联访问。APOC很容易作为插件添加到任何ONgDB实例中。
将APOC与ONgDB一起使用的一个好处是,它允许
跨平台和行业
的开发人员对通用过程使用标准库
,而只针对业务逻辑
和特定用例
需求编写自己的功能
。APOC过程通过一个输入/输出接口工作,该接口允许将Geequel运行时中的中间结果行交给APOC过程执行某些操作,然后接收结果。返回给Geequel查询的结果,可以在最终返回查询结果之前进一步用于Geequel内部的其他处理。APOC过程可以出现在Geequel查询的开头、结尾或中间的某个地方,也可以是整个Geequel。在一个Geequel查询中可以访问多个APOC过程,这是非常有用的,并允许创造性地通过将各种APOC过程排序在一起来批量处理节点和边。例如,在数据工程师和数据分析师
对接工作时就像开发一个方法函数一样,可以使用标准的存储过程定义业务相关查询隐藏复杂查询的细节,方便快速对接和沟通推进项目发展。
四、ONgDB Browser
ONgDB Browser是ONgDB的通用用户界面,可以使用现代易用的工具对数据库进行查询、可视化、管理和监控。ONgDB浏览器接口支持几个主要概念: •编写和执行Geequel查询•保存Geequel查询方便快速找回•显示多个结果视图,包括图形,表格,文本,代码和计划
ONgDB浏览器中的
图形视图
将Geequel结果作为交互式图形可视化显示,用户可以使用该图形可视化查看与当前可视化节点相邻的其他节点。
ONgDB Browser中的
表视图
显示Geequel查询结果的基于列的视图,每个列对应一个结果变量,每个列对应一个结果变量。
ONgDB浏览器中的
文本视图
以命令行界面的方式显示Geequel结果。
ONgDB浏览器中的
代码视图
显示了Geequel查询结果,附加了关于ONgDB服务器版本和主机地址的元数据。
ONgDB浏览器中的
计划视图
显示了PROFILE和EXPLAIN Geequel查询的执行细节,以便深入了解Geequel查询引擎是如何处理Geequel查询的。这在试图诊断和分类查询性能问题时非常有用。
Geequel
查询编辑器
提供了对Geequel语法的代码高亮显示,并基于在您的图形数据中使用的标签和边缘类型自动完成建议。每个Geequel查询都是单独执行的,并以堆叠的顺序显示结果,在之前的结果之上显示新的结果视图,所以在ONgDB浏览器中,你总是可以看到最近的Geequel查询结果。这些ONgDB浏览器在每个结果视图中一次显示一个Geequel查询结果,每个查询结果视图可以从ONgDB浏览器中退出。这使它成为快速查询开发、实践和实验的想法,将数据作为图表。
•初次登录默认用户名:ongdb
,密码:ongdb
五、Geequel Shell
Geequel Shell是ONgDB的命令行界面,默认情况下与ONgDB一起打包。
Geequel Shell
是交互式的,也可以用来编写脚本。使用Geequel Shell编写脚本是通过命令行启动Geequel Shell并直接在命令行中输入Geequel来完成的。通过Geequel Shell与ONgDB交互的另一种方法是在一个文件中包含Geequel语句,该文件中的每条语句
都作为一个单独的事务
在ONgDB上执行。需要注意的是,在Windows上,这些交互确实需要PowerShell。所有Geequel Shell与ONgDB的通信都是通过Bolt协议
进行的。 使用Geequel Shell可以将那些你经常使用的Geequel查询通过Geequel脚本文件来执行。通过使用Geequel Shell,您将能在后台执行查询而不是在ONgDB浏览器等待Geequel查询完成。其他一些可以从使用Geequel Shell中获益的例子包括: •从多个csv加载数据•将节点/边缘迁移到新的标签/类型•何顺序执行的重复Geequel查询这些只是一些场景的例子,在这些场景中,Geequel Shell可以帮助您消除每次需要运行一个查询的限制。最初,单行命令就能满足需求,但是用不了多久就会超过单行命令。通过这种方式,Geequel Shell为你提供了一个很好的转接点,让你把Geequel查询变成一个更可重复的过程,为部署基于ONgDB的其它数据产品服务做准备。ONgDB集群搭建测试[4]
References
[1]
关于ONgDB开源协议的介绍: https://blog.csdn.net/superman_xxx/article/details/117396928
[2]
GQL Standard:GQL was just inaugurated as an official ISO project: https://www.gqlstandards.org/
[3]
Disclaimers: https://www.graphfoundation.org/disclaimers/
[4]
ONgDB集群搭建测试: https://blog.csdn.net/superman_xxx/article/details/105342579