订阅
纠错
加入自媒体

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

2020-07-09 10:04
EAWorld
关注

劣势:

新图形数据库

可视化工具缺乏(可继承第三方工具Cytoscape、Gephi等)

2.关系型数据库和图数据库的区别

与传统关系型数据库相比,图数据库的优势

优秀的查询性能

相对于关系型数据库,图数据库产品在设计上避免大量的join操作,提供快速的查询。图数据库则天然把关联数据连接在一起,无需耗时耗内存的Join操作,可以保持常数级时间复杂度。

灵活的数据建模和查询语言,Schema-less

多数图数据库没有预设的schema,借助底层的存储机制,能够更加灵活的变更结构

灵活的图查询语言,轻松实现复杂关系网络的分析

灵活的数据模型可以适应不断变化的业务需求

易于理解,更加敏捷

相对于关系型数据库的二维表格,图的组织形式更接近于现实世界,易于理解

可以很自然的表达现实世界中的实体及其关联关系(对应图的顶点及边)

关系型数据库在遍历关系网络并抽取信息的能力非常弱,图数据库则为此而生

基于图算法提供强大分析能力

PageRank/社区发现算法等

图数据库的功能是传统关系型数据库的一个拓展,相比较关系型数据库仅支持表结构,图数据支持的图结构更为灵活。图数据库在基于图的数据增加、删除、查询、修改等方面做了不同于其他数据库的设计。在图数据的操作抽象上,采用基于顶点的视角,比如顶点通过其所有处、边访问其邻接顶点,这一类的操作也是图数据库系统设计的核心。

图数据库与关系型数据库优劣比对

优势

a) 用户可以面向对象的思考,用户使用的每个查询都有显式语义;

b) 用户可以实时更新和查询图数据库;

c) 图数据库可以灵活应对海量的关系变化,如增加删除关系、实体等;

d) 图数据库有利于实时的大数据挖掘结果可视化。

劣势

a) 不适合记录大量基于事件的数据(例如日志条目);

b) 二进制数据存储。

c) 并发性能要求高的项目。

d) 目前相关图查询语言比较多,尚未有很好统一。

e) 图数据库相关的一些书籍文档偏少,相关生态还在不断完善。

图数据库在处理关联关系上具有完全的优势,但是在一些场景下,图数据库并不能完全代替关系型数据库。

图数据库在处理关联数据时三个技术优势

1、性能方面:

随着数据量的增多和关联深度的增加,传统关系型数据库受制于检索时需要多个表之间连接操作,数据写入时也需考虑外键约束,从而导致较大的额外开销,产生严重的性能问题。而图模型固有的数据索引结构,使得它的数据查询与分析速度更快。在关联关系的处理上,用关系型数据库处理不可避免要用到表的JOIN操作,对性能的影响较大;而图数据库则是类指针直接跳转访问,更高效的操作关联数据,比关系型数据库有2到4个数量级的性能提升。

2、灵活度方面:

图数据库有非常灵活的数据模型,使用者可以根据业务变化随时调整数据模型,比如任意添加或删除顶点、边,扩充或者缩小图模型这些都可以轻松实现,这种频繁的 Schema 更改在关系型数据库上不能到很好的支持。现实中,项目的进程往往是不断演进的。数据的内容甚至数据格式也会不断发生变化。在关系型数据库中,这意味着表结构的变化,或者多个新表的建立,对源数据的改动非常大。而在图数据库里,仅需添加新的顶点、边、属性,设置为对应的类型即可。从本质上说,一个表代表一个类型的数据,一个顶点代表一个特定的数据,意味着关系数据库更关注数据的类型,而图数据库更关注数据的个体,识别其关联关系。

3、敏捷度方面:

图数据库的图模型非常直观,支持测试驱动开发模式,每次构建时可进行功能测试和性能测试,符合当今最流行的敏捷开发需求,对于提高生产和交付效率也有一定帮助。使用图(或者网)的方式来表达现实世界的关系更加直接、自然,在万物互联的物联网时代尤为突出。如果采用关系型数据,先将人物建表,再将关系建表,最后将数据进行映射,需要高度的抽象思维。在图数据上进行分析查询时,也可以直观地通过点边连接的拓扑,交互式找到想要的数据,不需要具备任何的专业知识。

传统关系数据库的性能问题

性能问题的本质在于数据分析面临的数据量,假如只查询几十个节点或者更少的内容,这种操作是完全不需要考虑数据库性能优化的,但当节点数据从几百个变成几百万个甚至几千万个后,数据库性能就成为了整个产品设计的过程中最需考虑的因素之一。

在数据量这么大的场景中,使用传统 SQL 会产生很大的性能问题,原因主要有两个:

1、大量 JOIN 操作带来的开销:

之前的查询语句使用了大量的 JOIN 操作来找到需要的结果。而大量的 JOIN 操作在数据量很大时会有巨大的性能损失,因为数据本身是被存放在指定的地方,查询本身只需要用到部分数据,但是 JOIN 操作本身会遍历整个数据库,这样就会导致查询效率低到让人无法接受。

2、反向查询带来的开销:

查询单个经理的下属不需要多少开销,但是如果我们要去反向查询一个员工的老板,使用表结构,开销就会变得非常大。表结构设计得不合理,会对后续的分析、推荐系统产生性能上的影响。比如,当关系从_老板 -> 员工 变成 _用户 -> 产品,如果不支持反向查询,推荐系统的实时性就会大打折扣,进而带来经济损失。

图数据库和关系型数据库性能比较

如图所见,传统关系型数据库可以非常好地处理深度为2和3的查询。join操作在关系型数据库世界中很常见,大多数数据库都是如此设计,在某些特定列上使用索引相关也能帮助最大化join操作的性能。然而,当深度达到4和5时,您会看到性能显着下降:一个涉及4个join的查询需要10秒以上才能完成,而在深度为5时更花了太长时间,超过一分半钟,虽然计数结果没有改变。这恰恰说明了在对图结构数据建模时关系型数据库的局限性:深度图遍历需要多个join操作,关系数据库通常并不擅长这种处理。

但是图数据库,可以看见,除了最简单的查询,图数据库在其他查询的性能表现上都是明显更好的那一个。只有在寻找朋友的朋友时(深度为2),关系型数据库性能可与图数据库遍历的性能相媲美。在深度为3时的遍历比关系型数据库快4倍。在深度为4,结果则要好五个数量级。深度为5时,图数据库结果的速度甚至要比关系型数据库要快1000万倍。关系型数据库查询性能下降如此之快正是由于,join操作需要对全部数据进行笛卡尔积运算,其中大部分的数据我们并不需要。

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

当前这种任务扩展方式仅仅只是给开发人员提供了便利,但是用户仍然很难扩展自己的任务,因此后续会考虑将任务扩展的能力做成平台功能的一部分提供给用户使用。

我们以Apache Atlas为例,探索图数据库在数据资产可视化方面的应用。

Apache Atlas是Hadoop的数据治理和元数据框架。是一组可扩展和可扩展的核心基础治理服务,使企业能够有效,高效地满足Hadoop中的合规性要求,并允许与整个企业数据生态系统集成。

<上一页  1  2  3  4  下一页>  余下全文
声明: 本文由入驻维科号的作者撰写,观点仅代表作者本人,不代表OFweek立场。如有侵权或其他问题,请联系举报。

发表评论

0条评论,0人参与

请输入评论内容...

请输入评论/评论长度6~500个字

您提交的评论过于频繁,请输入验证码继续

暂无评论

暂无评论

人工智能 猎头职位 更多
扫码关注公众号
OFweek人工智能网
获取更多精彩内容
文章纠错
x
*文字标题:
*纠错内容:
联系邮箱:
*验 证 码:

粤公网安备 44030502002758号