什么是图形数据库?

定义的图形数据库

图形数据库专门用于存储和导航关系。关系是图形数据库中的一等公民,图形数据库的大部分价值都源自于这些关系。图形数据库使用节点来存储数据实体,并使用边缘来存储实体之间的关系。边缘始终有一个开始节点、结束节点、类型和方向,并且边缘可以描述父子关系、操作、所有权等。一个节点可以拥有的关系的数量和类型没有限制。

图形数据库中的图形可依据具体的边缘类型进行遍历,或者也可对整个图形进行遍历。在图形数据库中,遍历联结或关系非常快,因为节点之间的关系不是在查询时计算的,而是留存在数据库中。在社交网络、推荐引擎和欺诈检测等使用案例中,您需要在数据之间创建关系并快速查询这些关系,此时,图形数据库更具优势。

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

社交网络图示例

使用案例

欺诈检测

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

推荐引擎

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

热门图形数据库

Amazon Neptune

Amazon Neptune 是一个专门打造的高性能图形数据库引擎,它经过优化,可存储数十亿种关系并以毫秒级延迟进行图形查询。Neptune 支持常见的图形模型属性图形和 W3C 资源描述框架 (RDF),它还支持各自的查询语言 Apache TinkerPop Gremlin 和 SPARQL,使您能够构建能有效地导航高度互连数据集的查询。 

Neptune 具有高可用性,并提供只读副本、时间点恢复、到 Amazon S3 的持续备份以及跨可用区的复制。Neptune 非常安全,并支持加密静态数据。Neptune 是完全托管的,因此,您再也无需担心数据库管理任务,例如,硬件预置、软件修补、设置、配置或备份。

AWS re:Invent 2017 大会上的 Amazon Neptune 公告

Neo4j

Neo4j 是一个开源、非关系型、原生图形数据库,可为应用程序提供 ACID 兼容的事务后端。Neo4j 是本机图形数据库,因为它高效地将属性图模型向下实现到存储级别。 Neo4j 还提供完整的数据库特征,包括 ACID 事务合规性、集群支持和运行时故障转移。Neo4j 支持自有的 Cypher 查询语言,同时也支持 Gremlin。

要开始使用 Neo4j,请参阅 AWS Marketplace