数据库

首页 » 常识 » 预防 » 一文聊ldquo图rdquo,从
TUhjnbcbe - 2021/1/12 3:10:00

作者

穆琼责编

晋兆雨头图

付费下载于视觉中国

随着知识图谱的发展,图数据库一词被越来越多的提到。那么到底什么是图数据库,为什么要用图数据库,如何去建设一个图数据库应用系统,图数据库与知识图谱到底是什么关系。今天为大家揭开神秘面纱,以Neo4j为例,浅析图数据库相关技术。作者介绍:穆琼中国农业银行研发中心,致力于AIOps的落地。

图数据库简介

谈到图数据库,首先要聊聊“图”,这里的图不是计算机视觉、图像处理领域的图,而是图论中的图,它由节点和节点间的线组成,通常用来描述某些实体与它们之间的特定关系。下图就是一个典型的图示例,某企业网络设备拓扑和报警管理应用方案的示意图。

现实世界中的图无处不在,社交领域人与人的关系挖掘、零售领域商品购买的关联推荐、金融领域的反欺诈反洗钱,都是图技术的典型应用。但是图的存储在过去一直没有特别好的方案。历史的方案可以概括为两类,第一类基于传统关系型数据库,将图中的关系用外键或关联表来表示,这种方式对于某些查询场景需要好几个昂贵的表连接,增加了复杂性。在这种存储中,业务数据与外键元数据混杂起来,增加了开发和维护的成本。第二类采用键值或文档型的NoSQL数据库,键值型如Redis、DynanoDB等、文档数据库如MongoDB,这些NoSQL都难以表示关联关系,为技术人员带来了开发成本和理解上的壁垒。

因此,专门用于图的存储和查询技术是非常必要的。图技术根据应用方式的不同可以分为两个方向,第一个方向是图数据库,它用于图数据的存储和联机事务查询,具备实时性,面向OLTP,支持CRUD和事务。第二个方向是图计算引擎,它用于图数据的离线查询分析,更适合海量数据的挖掘,面向OLAP。

图领域已经有很多的技术和产品,下图截取自VLDBkeynote《GraphProcessing:APanaromicViewandSomeOpenProblems》,除了其中所列之外还有很多其他的技术。

图数据库有很多成熟的产品,根据底层存储和处理引擎是否原生,图数据库可以分为四类。为了便于后面理解图数据库处理图的优势,我们解释一下这两个分类维度的含义。

存储方式

原生图存储:数据存储模式为存储和管理图而设计,为图进行过优化。

非原生图存储:将图数据序列化,采用关系型数据库、面向对象数据库、或是其他通用数据存储。

处理方式

原生图处理:使用免索引邻接,关联节点在物理层面指向彼此,这种方式不同于传统关系型数据库的树形全局索引,为查询图的关联节点带来了巨大的性能优势。

非原生图处理:不采用免索引邻接保存关系。

根据这两个维度,图数据库产品可以分为四类:

Neo4j实践

我们以Neo4j为例,直观地感受一下图数据库的强大和便捷之处。Neo4j采用Cypher查询语言(CQL)进行数据的增删改查,下面的Cypher语句创建了三个Person节点和他们之间的

1
查看完整版本: 一文聊ldquo图rdquo,从