图形数据库是系统的数据集合,强调不同数据实体之间的关系。NoSQL 数据库使用数学图论来显示数据连接。与以严格的表结构存储数据的关系数据库不同,图形数据库将数据存储为实体和关系的网络。因此,这些数据库通常可以提供更好的性能和灵活性,因为它们更适合对真实场景建模。

什么是图形

“图形”一词来自数学领域。图形包含节点和边的集合。

节点

节点是存储数据对象的顶点。每个节点可以有无限数量和类型的关系。

边代表节点之间的关系。例如,它可以描述父子关系、操作和所有权。它们可以代表一对多和多对多的关系。边总是有起始节点、终止节点、类型和方向。

属性

每个节点都有描述它的属性或特性。在某些情况下,边也具有属性。具有属性的图形也称为属性图。

图形示例

下面的属性图显示了一个社交网络图示例。考虑到人员(节点)及其关系(边),您可以找到一个特定人员的“朋友的朋友”,例如,Howard 的朋友的朋友。

社交网络图示例

图形数据库的使用案例

在社交网络、推荐引擎和欺诈检测等使用案例中,需要在数据之间创建关系并快速查询这些关系,此时,图形数据库更具优势。

欺诈检测

图形数据库能够预防复杂的欺诈行为。例如,您可以使用图形数据库中的关系以近乎实时的方式处理财务交易。通过快速图形查询,您能够检测到潜在购买者是否在使用已知欺诈案例中包含的相同电子邮件地址和信用卡。此外,图形数据库可以帮助您通过关系模式检测欺诈,例如多个人与个人电子邮件地址相关联,或者多个人共享同一个 IP 地址但居住在不同的物理位置。

推荐引擎

对于提供建议的应用程序来说,图形模型是一个不错的选择。您可以存储诸如客户兴趣、朋友和购买历史记录等信息类别之间的图形关系。您可以使用高度可用的图形数据库,并根据关注相同运动内容且具有类似兴趣和购买历史记录的其他人购买的产品,向用户提供产品推荐。您也可以识别有共同好友但彼此还不认识的人员,然后提供好友推荐。

路线优化

路线优化问题涉及分析数据集并查找最适合特定案例的值。例如,您可以使用图形数据库来查找以下内容:

  • 通过考虑各种路径,确定从地图上的 A 点到 B 点的最短路线。
  • 通过分析不同的可用性、位置和技能,为特定班次找到合适的员工。
  • 通过考虑设备的成本和寿命等参数,选择最适合操作的机械。

图查询可以更快地分析这些情况,因为它们可以计算和比较两个节点之间的链接数量。

模式发现

图形数据库非常适合用于发现数据中的复杂关系和隐藏模式。例如,一家社交媒体公司使用图形数据库来区分机器人账户和真实账户。它会分析账户活动,以发现账户互动与机器人活动之间的联系。

知识管理

图形数据库提供了用于数据集成、关联数据和信息共享的技术。它们以标准化格式表示复杂的元数据或域概念,并为自然语言处理提供丰富的语义。您也可以将这些数据库用于知识图和主数据管理。例如,机器学习算法使用图形模型来区分亚马逊雨林和 Amazon 品牌。

图形数据库的优点

图形数据库是定制的,用于管理高度互联的数据。随着现代数据的连通性和数量不断增加,图形数据库为经济高效地利用和分析数据提供了机会。以下是图形分析的三个主要优点。

灵活性

图形模型的架构和结构可能会随您的应用程序而变化。数据分析师可以在不影响现有功能的情况下添加或修改现有图形结构。无需事先对域进行建模。

性能

随着关系的数量和深度不断增加,关系数据库模型不再是理想选择。这会导致数据重复和冗余,需要处理多个表才能发现查询结果。相比之下,在查询关系时,图形数据库的性能提高了几个数量级。即使图形数据量增加,也能保持稳定的性能。

效率

与关系数据库相比,图形查询耗时更短,生成相同报告的效率更高。图形技术利用链接节点。遍历联结或关系的过程非常快,因为节点之间的关系不是在查询时计算的,而是留存在数据库中。

图形分析和图形数据库的工作原理

图形数据库使用标准化的查询语言和图形算法工作。

图形查询语言

图形查询语言用于与图形数据库进行交互。与 SQL 类似,该语言也具有添加、编辑和查询数据的功能。但是,这些语言利用底层的图形结构来高效处理复杂的查询。它们提供了一个界面,因此您可以提出以下问题:

  • 节点之间的跳数
  • 最长路径/最短路径/最佳路径
  • 节点的值

Apache TinkerPop Gremlin、SPARQL 和 openCypher 是热门的图形查询语言。

图形算法

图形算法是分析互联数据中的关系和行为的操作。例如,该算法会探索节点之间的距离和路径,或者分析传入的边和相邻节点以生成报告。这些算法可以识别连接数据元素的常见模式、异常、社区和路径。图形算法的一些示例包括:

聚类

图像处理、统计和数据挖掘等应用程序使用聚类,根据共同特征对节点进行分组。可以对集群间差异和集群内的相似性进行聚类。

分区

可以在边数最少的节点处分割或剪切图形。网络测试等应用程序使用分区来查找网络中的薄弱环节。

图形搜索或遍历可以是两种类型之一:广度优先或深度优先。广度优先搜索在图形中从一个节点移动到另一个节点。它在发现最佳路径方面很有用。深度优先搜索沿着单个分支移动,以查找特定节点的所有关系。

不适用图形数据库的情形

专用的图形数据库最适用于高度连接的数据集以及任何需要搜索隐藏和明显关系的分析。如果这不符合您的使用案例,那么其他数据库类型可能更适用。

例如,假设您需要按物品记录产品库存。您只需要存储物品名称、可用数量等的详细信息。您无需保留其他信息,因此表格中的列不会更改。这一表格性质使得关系数据库更适用于此类不相关的数据。

同样重要的是,不要将图形数据库简单地用作键值存储。来自已知键的查找结果并不能最大限度地发挥图形数据库的目标功能。

AWS 如何满足您的图形数据库需求

Amazon Neptune 是一个专门打造的高性能图形数据库引擎,它经过优化,可存储数十亿种关系并以毫秒级延迟进行图形查询。Neptune 支持流行的图形模型 — 属性图形和 W3C 的资源描述框架(RDF)。Neptune 还支持相应的查询语言 Apache TinkerPop Gremlin 和 SPARQL,可让您构建查询,高效地浏览高度互连数据集。 Neptune 的主要特征包括:

  • 无服务器 — 使您能够以细粒度增量即时扩展图形工作负载,与峰值容量预置相比,可节省高达 90% 的数据库成本。
  • 高度可用 — 包括 Amazon Neptune 全球数据库,该数据库适用于支持快速本地读取性能的全球分布式应用程序。
  • 将存储和计算分离,因此您可以通过多达 15 个共享相同底层存储的只读副本来提高读取性能,而不必在副本节点上执行写入。
  • 高度可靠和耐用,具有容错和自我修复能力的存储、时间点故障恢复、连续备份等功能。Amazon Neptune 通过六种方式复制新写入,使您的数据在一个区域内的三个可用区中持久保存,而您只需支付一份副本的费用。
  • 高度安全,具有默认静态加密、网络隔离和高级审核功能,同时还能够通过细粒度访问控制资源级权限。
  • 广泛的合规覆盖范围,包括 FedRAMP(中等和高)到 SOC(1、2 和 3),并且符合 HIPAA 要求。
  • 完全托管,让您再也不必为硬件预置、软件修补、设置、配置或备份等数据库管理任务而担心。

立即创建免费账户,开始在 AWS 上使用图形数据库。

Amazon Neptune 简介
Amazon Neptune Serverless 入门