前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >图数据库从二维世界,走到三维宇宙

图数据库从二维世界,走到三维宇宙

作者头像
AustinDatabases
发布2020-05-11 16:57:22
5030
发布2020-05-11 16:57:22
举报
文章被收录于专栏:AustinDatabases

图数据库,估计第一个看到的就的问,有必要?,SQL ,NO SQL, NEW SQL ,这个图数据库属于哪个阵营,三体里面有一个名词叫,降维打击,如果说SQL , NO SQL, NEW SQL 解决的是二维世界的问题,图数据库就属于升为维,并且他要处理的问题,就如同虫洞一样,在二维世界的人们,怎样都要从者一端走到另一端, 而将一张纸折叠起来,你和另一端的距离可能就是0。

图数据库或许就是这个非二维世界的使者,让你千万次的问,变成1次。

故事的开始首先就的从笛卡尔积开始,因为这是传统数据库的二维起源。 例如我们有两个集合 A 和 B

A = {0,1} B = {2,3,4}

代码语言:javascript
复制
集合 A×B 和 B×A的结果集就可以分别表示为以下这种形式:
代码语言:javascript
复制
A×B = {(0,2),(1,2),(0,3),(1,3),(0,4),(1,4)};
B×A = {(2,0),(2,1),(3,0),(3,1),(4,0),(4,1)};
以上A×B和B×A的结果就可以叫做两个集合相乘的笛卡尔积。

基本上传统数据库之间的数据之间的关系都是(表和表之间的关系),是要通过笛卡尔积的方式来进行处理的。

NO SQL 的mongodb ,redis, 对于数据库的关系,key value ,以及 JSON 数据库的嵌套和数组。这些数据库基本上都是在 二维上玩耍的。

图数据库,就类似于下面这张图上的,点和点之间的关系,求某点和某点最近的距离的问题,这对上面的数据库,来说是很难通过简单的方式来做的,本着一贯的使用数据库来降低开发成本的思路,使用对应的数据库必然是要走的路径。

个人理解,图数据库主要的战线就是未知关系的查询和体现,例如某人生长在中国,但皮肤较白,一直被认为是外国人的基因,通过将他的个人数据,以及其他人(这里假设其他人,可能是所有人的,或去世的人)信息输入到图数据库,通过图数据库将点和点之间的关系进行计算,可能会发现这个人的第28代祖宗,是一个英国殖民者。当上面的话是说笑。

图数据库应用场景,大多在,保险机构,金融机构,银行,电商,反欺诈等多方面的应用。这里可能大家比较有印象的应用场景,天眼查。

各种数据库在处理关系方面的特点

图数据库适合来处理密集型,强相关性的事务来处理

传统数据库中如果我们想知道螺丝在那些地方使用,可能要经过多个表的查询, 才能确定螺丝和那些东西有相关的关系

图数据库在处理关系方面,属于点到点的关系,而不需要借助于类似传统数据库中的中间表的问题。在处理中会遍历螺丝的与其他节点的关系,通过扫描关系来建立螺丝点,与其他节点有。

废话这么多,到底现在那个是图数据库的NO1,NEO4J,以后的图数据库内容基本都会围绕NEO4J.

首先要提到的,这个NEO4J 是对硬件的需求

图计算大部分也是要依赖内存中的数据进行快速的运算,所以大内存自然是对数据处理有很高的支持度,但提取数据速度也决定了整体的速度,所以如果数据量比较大配上 SSD 自然是更好的。

比较其他数据库,NEO4J 的搭建是比较简单,NEO4J 是基于JAVA开发的一套图数据库,在使用当前最新的NEO4J的数据库。

当前4.03是可以下载到最新的community 的免费的数据库。

只要当前neo4j可以找到对应的 OPEN SDK 11 就可以直接运行,当然关键还需要稍微调整一下配置文件,neo4j.conf (具体看你怎么安装,如果是RPM则会直接安装到预定位置,如果是tar包,则根据自己的指定或默认的位置)

下面是一些基本配置

dbms.directories.data=/data/data

dbms.memory.heap.initial_size=1024m dbms.memory.heap.max_size=12288m dbms.default_listen_address=0.0.0.0

dbms.connector.bolt.enabled=true

dbms.connector.https.listen_address=:7473

dbms.connector.http.enabled=true dbms.connector.http.listen_address=:7474

dbms.connector.bolt.listen_address=:7687

dbms.ssl.policy.bolt.enabled=false

dbms.ssl.policy.https.enabled=false

另外还有一些JAVA 虚拟机的配置,这里就不进行调整了,优化性能的时候是需要。

然后直接在linux下运行neo4j start (需要提前设置变量环境)

然后直接通过IP地址:7474 就可以开始访问neo4j的服务器了

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-05-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AustinDatabases 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档