《图数据库(第2版)》——1.3 图数据库的威力

简介:

本节书摘来自异步社区出版社《图数据库(第2版)》一书中的第1章,第1.3节,作者:【美】Ian Robinson(伊恩•罗宾逊) , Jim Webber(吉姆•韦伯) , Emil Eifrem(埃米尔•艾弗雷姆),更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.3 图数据库的威力

虽然事实上我们可以将任何东西都建模成图,但我们生活在一个很现实的世界里,它充满了预算限制、项目限期、企业标准,还有商业化的技术选型。图数据库提供了强大而新颖的数据建模方法,但仅凭它自己,是不足以成为替换那些已经享有盛誉并被用户充分认识的数据平台的理由的。必须要有一个直接而明显的好处,人们才会使用它。对于图数据库来说,这个动机可以用一系列用例和数据模式来说明:采用图的方案,性能可以提升一个甚至几个数量级,而且比起聚合的批处理,其延迟也小很多。除了性能的优势之外,图数据库还提供极其灵活的数据模型,这也和当今敏捷软件交付实践推崇的交付模式相一致。

1.3.1 性能

其中一个充分的理由就是,与关系型数据库和NoSQL存储处理关联数据相比,选择图数据库会有绝对的性能提升。随着数据集的不断增大,关系型数据库处理密集join(join-intensive)查询的性能也会随之变差,而图数据库则不然。在数据集增大时,它的性能趋向于保持不变,这是因为查询总是只与图的一部分相关。因此,每个查询的执行时间只和满足查询条件的那部分遍历的图的大小(而不是整个图的大小)成正比。

1.3.2 灵活性

作为开发者和数据架构师,我们希望根据问题域来决定如何连接数据。这样我们就不需要在对数据的真实模样和复杂度了解最少的时候,被迫预先做出决定。随着我们对问题域了解的加深,结构和模式(schema)会自己浮现出来。图数据库正中我们下怀。正如在第3章中将要展示的,图数据模型表示和适应业务需求的方式,使得IT部门终于可以跟得上业务的变化速度。

图天生就是可扩展的,这意味着我们可以对已经存在的结构添加不同种类的新联系、新节点、新标签和新子图,而不用担心破坏已有的查询或应用程序的功能。这些特点对于开发者的生产力和项目风险一般都有积极的意义。同时由于图模型的灵活性,我们不必在项目最初就穷思竭虑地把领域中的每一个细枝末节都考虑到模型中——这种做法在不断变化的业务需求面前,简直就是蛮干。图的天然可扩展性也意味着我们会做更少的数据迁移,从而降低维护开销和风险。

1.3.3 敏捷性

通过使用与当今增量和迭代的软件交付实践相吻合的技术,我们希望能够就像改进应用程序的其他部分一样改进我们的数据模型。现代图数据库可以让我们使用平滑的开发方式,配以优雅的系统维护。尤其是图数据库天生不需要模式,再加上其API和查询语言的可测性,使我们可以用一个可控的方式来开发应用程序。

同时,正是因为图数据库不需要模式,所以它缺少以模式为导向的数据管理机制,即在关系世界中我们已经熟知的机制。但这并不是一个风险,相反,它促使我们采用了一种更可见的、可操作的管理方式。正如第4章中会讲到的,图数据库的管理通常作用于编程方式,利用测试来驱动数据模型和查询,以及依靠图来断言业务规则。这不再是一个有争议的做法,事实上这已经比关系型开发应用更广了。图数据库开发方式非常符合当今的敏捷软件开发和测试驱动软件开发实践,这使得以图数据库为后端的应用程序可以跟上不断变化的业务环境。

相关实践学习
阿里云图数据库GDB入门与应用
图数据库(Graph Database,简称GDB)是一种支持Property Graph图模型、用于处理高度连接数据查询与存储的实时、可靠的在线数据库服务。它支持Apache TinkerPop Gremlin查询语言,可以帮您快速构建基于高度连接的数据集的应用程序。GDB非常适合社交网络、欺诈检测、推荐引擎、实时图谱、网络/IT运营这类高度互连数据集的场景。 GDB由阿里云自主研发,具备如下优势: 标准图查询语言:支持属性图,高度兼容Gremlin图查询语言。 高度优化的自研引擎:高度优化的自研图计算层和存储层,云盘多副本保障数据超高可靠,支持ACID事务。 服务高可用:支持高可用实例,节点故障迅速转移,保障业务连续性。 易运维:提供备份恢复、自动升级、监控告警、故障切换等丰富的运维功能,大幅降低运维成本。 产品主页:https://www.aliyun.com/product/gdb
相关文章
|
1月前
|
NoSQL Linux 开发工具
【深入解析git和gdb:版本控制与调试利器的终极指南】(下)
【深入解析git和gdb:版本控制与调试利器的终极指南】
|
1月前
|
NoSQL 小程序 C语言
GDB调试学习(四):段错误
GDB调试学习(四):段错误
21 0
|
1月前
|
NoSQL
GDB调试学习(三):观察点
GDB调试学习(三):观察点
22 0
|
1月前
|
NoSQL
GDB调试学习(二):断点
GDB调试学习(二):断点
16 0
|
2月前
|
NoSQL Linux 程序员
Linux | 调试器GDB的详细教程【纯命令行调试】-1
Linux | 调试器GDB的详细教程【纯命令行调试】
162 0
|
1月前
|
NoSQL Unix 开发工具
【深入解析git和gdb:版本控制与调试利器的终极指南】(上)
【深入解析git和gdb:版本控制与调试利器的终极指南】
|
1月前
|
NoSQL Linux
Linux系统中调试GDB调试方法入门分享
Linux系统中调试GDB调试方法入门分享
69 0
|
1月前
|
NoSQL Unix 编译器
GDB调试无行号,报dwarf error问题解决
GDB调试无行号,报dwarf error问题解决
15 0
|
1月前
|
机器学习/深度学习 NoSQL
gdb调试
gdb调试
13 0

热门文章

最新文章

相关产品

  • 云迁移中心