数据库 频道

什么情况下使用图数据库更有优势?

关系型数据库是如此根深蒂固且无处不在,以至于我们在遇到新的应用需求时会条件反射地想使用关系型数据库。然而,对于具有特定处理要求和数据结构的应用来说,图数据库更胜一筹。

关系型数据库在处理某些应用程序处理和数据结构时,可能面临以下问题:

  • 在线查询性能差。

  • 批处理任务耗时长。

  • 无法执行某些查询,即永远不会返回结果。

  • 当新的业务需求触发模式变更时,实施模式和应用程序变更的成本很高。

  • 为确保可接受的性能而设置数据量上限。

  • 因为实施模式和应用程序变更而造成应用程序中断。

关系型数据库和图数据库有许多不同之处。最显著的区别是关系型数据库通过基于主键和外键值的连接处理来确定关系。而图数据库在处理关系时采用的方法大不相同,它们将关系作为物理指针存储在数据库中。

在以下数据结构中,图数据库会是更好的选择。

复杂数据关系

以下数据结构表达了复杂的数据关系:

  • 实体间的多对多关系。

  • 涉及多个实体的一对多关系。

  • 包含许多实体和关系的复杂模式。

  • 实体间的间接关系。

处理复杂数据关系的应用包括

  • 供应链。复杂性源于多个可供选择的供应商、部件和产品中的许多零件、可供选择的零件以及各种运输方法和路线。

  • 推荐引擎。消费者推荐基于消费者资料、购买、搜索、查看和评论历史,以及类似或互补的产品关系。

  • 金融欺诈。欺诈依赖于故意复杂的关系来掩盖犯罪或所有权。

  • 语义搜索。这些搜索超出了文本字符串匹配的范围,考虑了同义词、搜索上下文、地理位置和查询意图等其他属性。

数据层次结构

数据层次结构包括以下数据结构:

  • 多层次的树形结构或父子关系。

  • 多层次的层次结构。

  • 需要自连接的递归。

处理数据层次结构的应用包括:

  • 决策支持。

  • 卡车和飞机的网络路由选择。

  • 电信、电网和配水等基础设施的网络管理。

  • 制造业的材料清单。

  • 用于存储数据的文件夹结构和文件系统。例如,微软的文件管理器、SharePoint 和 OneDrive 或谷歌的同类产品。

  • 具有层次结构的性能报告应用程序,如公司销售数据可按地区细分为销售额,然后再细分为单个商店的销售额。另外,销售数据也可按产品类别进行细分,然后按店铺细分单个交易数据。

高度关联数据

高度连接数据包括实体值通过一个或多个交叉表连接到多个相关实体值的数据结构。

处理高度关联数据的应用包括:

  • 数字资产管理 (DAM)。例如,内容流媒体公司跟踪每个观众已经观看过哪些电影,以及他们可以观看哪些电影。

  • 社交媒体营销,用于衡量广告反应、识别朋友关系和影响者的有效性。

实时洞察力

有些应用程序必须提供实时洞察,以鼓励采取行动或防止出现某些结果。例如:

  • 产品推荐。

  • 批准或拒绝金融交易,以避免欺诈。

  • 汇款监控,以防止欺诈和洗钱。

  • 改变交通信号灯以管理交通,避免或减少交通堵塞。

  • 工业流程控制,以提高产品质量、保持一致性或避免灾难性的设施破坏。

在这些应用中,如果洞察力不是实时的,企业就无法抓住机遇,或者会产生不良后果。图数据库可以实现所需的快速响应。涉及关系型数据库和 ETL 的解决方案不够快。

不断演变的数据模式

我们的系统开发和增强工作经常会遇到不断变化的业务需求。这些变化通常会引发数据库模式的变化。

关系型数据库需要一个定义明确的、最好是静态的模式。要进行更改,就必须对模式和应用程序迁移进行周密计划。通常情况下,实施更改需要中断应用程序。不需要新数据的应用程序仍会受到影响。

相反的极端情况是没有模式。数据推断模式。模式的执行由应用程序处理。只需加载新数据,无需规划或应用程序中断,即可实现更改。但是,依赖于已定义模式的其他应用程序则无法访问数据库。

图数据库在这两个极端之间运行。有一个规定的模式。约束强制执行。当数据库和应用程序处于活动状态时,通过更改模式来实现更改。只有编码为访问新数据的应用程序才能看到新数据。旧版应用程序看不到新数据,也不会受到新数据的影响。

图数据库如何提供快速性能

在所有这些数据情况下,与关系型数据库交互的应用程序都要处理主键值、外键值和多索引。但是,与图数据库交互的应用程序只处理物理指针。这种差异为使用图数据库带来了显著的性能优势。这种差异通常是一个数量级,在特别复杂的情况下可能是多个数量级。

您可能会问,实现如此快速的性能是否会产生成本。是有的。与关系型数据库相比,图数据库的插入性能更慢,更耗费资源。不过,在大多数应用中,读取记录的次数要比插入或更新记录的次数多得多。这一现实抵消了插入性能的较高成本。

实施图数据库的障碍

既然图数据库如此令人印象深刻,为什么不是每个人都在使用呢?以下是一些原因:

  • 简单事务。关系型数据库在许多需要相对简单的事务处理且数据量不大的情况下表现出色。

  • 关系型数据库是如此根深蒂固且无处不在,以至于我们会条件反射地使用它们来满足所有应用需求。

  • 专业知识。大多数组织在设计、构建和运行关系型数据库方面积累了深厚的专业知识,而图数据库则是新生事物。

  • 缺乏认识。尽管供应商努力推广图数据库的使用,但许多组织仍然不太了解图数据库。

  • 产品成熟度。图数据库近几年才发展成为成熟产品。

尽管存在这些原因,但当数据具有上述特征,或数据量(无论数据结构如何)达到数十亿行时,企业还是会使用图数据库。

作者:Yogi Schulz

0
相关文章