「一起学图数据库」系列之图数据库概述

举报
且听风吟 发表于 2019/11/07 17:48:07 2019/11/07
【摘要】 本系列文章是《图数据库(第二版)》的读书笔记,内容大多为笔者消化原书内容之后的总结。本文主要介绍图与图数据库的概念,图数据库的发展趋势,图领域主要技术分类,图数据库技术优势以及在国内的主要应用领域。

图是什么

形式上,图是点和边的组合;术语上,图是「一些节点」和「关联这些节点的联系」的组合


图广泛存在于世界之中,从人与人之间的联系、工厂与消费者之间的联系到电话与数据中心网络节点之间的关系、基因和蛋白质之间的关联,都会涉及大量的高度关联数据。这些数据构成了庞大的图,图数据库就是呈现和查询这些关联的做好的方式。

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1

图1:一个简单的社交网络图


如图中的小型社交网络图,「点」被标记为用户,每个用户有一个名字(微博名字不允许重复);用户之间的关注关系就是他们之间的联系,也就是「边」。


实际场景中的图要比上图复杂的多的多,"一个节点只有一个属性(名字)","一个边仅有一个标签描述信息(关注)"或"两个节点之间只能拥有一条边"是不可能满足实际需求的,所以带标签的属性图(labeled property graph)是目前最流行的图模型。带标签的属性图有如下几个特点:


- 它包含节点和联系

- 节点上有属性,如年龄、性别、学历、情感状态等

- 节点上有一个多个标签,比如动漫、科技、美食等

- 联系有名称和方向信息,每一个联系关联一个开始节点和结束节点

- 联系也有属性,比如关注、夫妻、跑男团等


图数据库发展趋势


下图是DB-Engines中关于各个分类数据库的趋势信息:


640?wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1

图2:DB-Engines 图数据库的发展趋势


从DB-Engines的数据库趋势信息来看,从2013年至今,Graph DBMS是增长最快速的一类数据库。


下图是Google Trends中关于neo4j的搜索热度随着时间的变化曲线图:

640?wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1

图3:Google Trends中neo4j一词的搜索热度曲线信息


从该曲线图也可以看出来,图数据库的热度呈现逐年递增的趋势,可以预见,图数据库的未来前景将非常可观。而相对来说,国内图数据库领域刚刚开始起步,而且不管是应用还是技术都在摸索阶段。这正是一个非常合适的学习图数据库,迎合技术发展趋势的时机。



图领域技术概览

按照「应用场景」,图领域技术主要包括两个主要部分:图数据库图计算引擎。这章节大部分内容直接引用书中原文。


图数据库

图数据库,是图数据库管理系统的简称,它是一种在线的图数据库管理系统,支持对图数据模型的增、删、改、查(CRUD)方法。图数据库一般应用于联机事务型系统(OLTP)中,所以在研究图数据库技术时需要多加考虑2个关键架构要素:


1. 底层存储

底层存储分为原生和非原生。某些系统是(如Neo4j、OrientDB)为了存储和管理图数据而专门设计,它们自己构建了底层的存储系统,但也有一些图数据库(如 Titan、InfiniteGraph)是将图数据序列化后存储到其它类型的数据库中。


2. 处理引擎

一些定义要求图数据库使用「免索引邻接」,这意味着,关联节点在数据库里是物理意义上的“指向”彼此。

相比于传统的关系型数据库和其他NoSQL数据库,「免索引邻接」带来了非常明显的性能优势,而且我们得到的模型更简单,更具表现力。


图数据库主要用于联机事务图的持久化技术,通常直接实时地被应用程序访问,和常见的联机事务处理(Online Transactional Processing, OLTP)数据库是一样的。


图计算引擎

图计算引擎技术,偏重于全局查询,通常都针对大规模数据处理做过优化。只有一部分图计算引擎有自己的存储层,其它的则聚焦于图算法与图计算框架。图计算引擎以Pregel、Powergraph、GraphX为典型代表


图计算引擎主要用于离线图分析技术,通常按照一系列步骤执行,它们可以和其它大数据分析技术看作一类,如数据挖掘和联机事务分析(Online Analytical Processing,OLAP)。



图数据库的技术优势

事实上,图可以用来建模各种类型的数据,但是现实世界中进行技术选型时涉及诸多考量因素,如预算、排期、技术难度、企业标准、商业化等等。图数据库天然适用于社交、推荐、网络和数据中心等应用场景,它具备两大显著的技术优势:强大的性能以及灵活的数据模型。


性能

随着数据集不断增大,关系型数据库的查询性能会随之变差,尤其是Join查询。而图数据的性能趋向于不变,因为查询总和图的一部分相关。因此每次查询的执行时间只和满足条件的那部分图的大小相关。


灵活性

图天生就是易扩展的,这意味着我们可以对已经存在的结构添加不同的新联系、新节点、新标签、新子图,而不用担心破坏已有的查询或应用程序的功能。


现实世界中的图

这部分是原书第五章的内容,涉及到模型以及查询语法等细节内容,这里仅简单罗列一下几大应用场景:


社交和推荐

推测社交关系(相似用户推荐)、寻找有特定爱好的人、加入校友/同事联系


授权和访问控制

寻找管理员可以访问的全部资源、判断管理员是否可以访问某一资源、找到一个账号的管理员


地理空间和物流

路由计算、最短路径


国内主要应用领域

目前在国内,图数据库的主要应用领域是知识图谱欺诈检测


知识图谱本质上是语义网络,是一种基于图的数据结构,由节点(Point)和边(Edge)组成。在知识图谱里,每个节点表示现实世界中存在的“实体”,每条边为实体与实体之间的“关系”。知识图谱是关系的最有效的表示方式。通俗地讲,知识图谱就是把所有不同种类的信息(Heterogeneous Information)连接在一起而得到一个关系网络,知识图谱提供了从“关系”的角度去分析问题的能力。比如百度搜索“邓超的老婆”,百度的知识图谱技术可以快速告诉你答案“孙俪”。


反欺诈是风控中非常重要的一道环节。基于大数据的反欺诈的难点在于如何把不同来源的数据(结构化,非结构化数据)整合在一起,并构建反欺诈引擎,从而有效地识别出欺诈案件(比如身份造假,团体欺诈,代办包装等)。欺诈案件通常会涉及到复杂的关系网络,这也给欺诈审核带来了新的挑战。图数据库,作为关系的直接表示方式,可以很好地解决这两个问题。


本文内容首发于公众号图数据库杂谈

微信号graphdbs


精彩文章推荐

图数据库相关文章:

从扩线查询能力分析图数据库Titan的设计改进点

《一条数据的HBase之旅》系列连载文章:

简明HBase入门教程-开篇

简明HBase入门教程-Write全流程

简明HBase入门教程-Flush与Compaction

《OpenTSDB技术原理》系列连载文章:

OpenTSDB原理系列-元数据模型

OpenTSDB原理系列-TSDB数据表设计

OpenTSDB原理系列-线程模型

OpenTSDB原理系列-读取流程

其它精彩文章:

跨AZ数据复制方案中的EC与XOR技术

从HBase中移除WAL?3D XPoint技术带来的变革

号称十倍性能于Cassandra的ScyllaDB,究竟祭出了哪些技术"利器"?

NewSQL是否是NoSQL的取代者?

阅读开源项目源码的建议姿势


本文转载自微信公众号【Nosql漫谈】。

原文链接:https://mp.weixin.qq.com/s/xcIvrT3d1J1wL2lEgwtogQ

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

举报
请填写举报理由
0/200