图存储模式

图存储模式

1、图存储模式的概念

图存储模式来源于图论中的拓扑学。图存储模式是一种专门存储节点的边以及节点之间的连线关系的拓扑存储方法。一个图是一个数学概念,用来表示一个对象集合,包括顶点以及连接顶点的边。节点和边都存在描述参数,边是矢量,即有方向的,可能是单向或双向的。

图数据库使用图作为数据模型来存储数据,完全不同于键值、列族和文档数据模型,可以高效地存储不同顶点间的关系。图数据库专门用于处理具有高度关联关系的数据,可以高效的处理实体之间的关系,比较适用于社交网络、模式识别、依赖分析、推荐系统以及路径寻找等问题。

2、图数据库的特征

(原文链接:https://blog.csdn.net/heyc861221/article/details/80128421)

1、包含节点和边;

2、节点上有属性(键值对);

3、边有名字和方向,并总是有一个开始节点和一个结束节点;

4、边也可以有属性。

通常,在图计算中,基本的数据结构表达就是:

G=(V, E) 

V=vertex(节点) 

E=edge(边) 

如图2所示。

图2 简单的图数据库模型

当然,图模型也可以更复杂,例如图模型可以是一个被标记和标向的属性多重图(multigraph)。被标记的图每条边都有一个标签,它被用来作为那条边的类型。有向图允许边有一个固定的方向,从末或源节点到首或目标节点。

3、属性图

属性图允许每个节点和边有一组可变的属性列表,其中的属性是关联某个名字的值,简化了图形结构。多重图允许两个节点之间存在多条边,这意味着两个节点可以由不同边连接多次,即使两条边有相同的尾、头和标记。如图3所示。

图3 较为复杂的图模型

图数据库存储一些顶点和边与表中的数据。他们用最有效的方法来寻找数据项之间、模式之间的关系,或多个数据项之间的相互作用。一张图里数据记录在节点,或包括的属性里面,最简单的图是单节点的,一个记录,记录了一些属性。一个节点可以从单属性开始,成长为成千上亿,虽然会有一点麻烦。从某种意义上讲,将数据用关系连接起来分布到不同节点上才是有意义的。

在处理图数据时,其内部存储结构往往采用邻接矩阵或邻接表的方式,图4就是这两种存储方式的简单例子。在大规模并行图数据库场景下,邻接表的方式更加常用,大部分图数据库和处理框架都采用了这一存储结构。

图4 大规模并行图数据库场景下的图数据库存储结构

4、图数据库架构

4.1、图数据库的两特性

       底层存储 

 一些图数据库使用原生图存储,这类存储是优化过的, 并且是专门为了存储和管理图而设计的。不过并不是所有图  数据库使用的都是原生图存储,也有一些会将图数据序列化,然后保存到关系型数据库或面向对象数据库,或是 其他通用数据存储中。

原生图存储的好处是,它是专门为性能和扩展性设计 建造的。但相对的,原生图处理虽然在遍历查询时性能 优势很大,但代价是一些非遍历类查询会比较困难,而且 还要占用巨大的内存。

处理引擎

图计算引擎技术使我们可以在大数据集上使用全局图算法。图计算引擎主要用于识别数据中的集群,或是回答类似于“在一个社交网络中,平均每个人有多少联系?”这样的问题。

一个成熟的图数据库架构应该至少具备图的存储引擎和图的处理引擎,同时应该有查询语言和运维模块,一个典型的图数据库架构如图5所示。

图5 一个成熟的图数据库设计架构

各模块功能说明如下:

       1、查询和计算:最终用户用于在此语言基础之上进行图的遍历和查询,最终返回运行结果。

       2、操作和运维:用于系统实时监控,例如系统配置、安装、升级、运行时监控,甚至包括可视化界面等。

3、数据加载:包括离线数据加载和在线数据加载,既可以是批量的数据加载,也可以是流数据加载方式。

4、图数据库核心:主要包括图存储和图处理引擎这两个核心。图处理引擎负责实时数

图数据库不仅可以导入传统关系型数据库中的结构化数据,也可以是文本数据、社交数据、机器日志数据、实时流数据等。同时,计算结果可以通过标准的可视化界面展现出来,商业化的图数据库产品还应该能将图数据库中的数据进一步导出至第三方数据分析平台做进一步的数据分析。

5、图数据库的应用

1、用于联机事务图的持久化技术(通常直接实时地从应用程 序中访问)。

2、这类技术被称为图数据库,它们和“通常的”关系型数据 库世界中的联机事务处理(Online Transactional Processing,OLTP)数据库是一样的。

3、用于离线图分析的技术(通常都是按照一系列步骤执行)。

这类技术被称为图计算引擎。它们可以和其他大数据分析 技术看做一类,如数据挖掘和联机分析处理(Online Analytical Processing,OLAP)。

图数据库一般用于事务(OLTP)系统中。图数据库支持对图数据模型的增、删、改、查(CRUD)方法。相应地,它们也对事务性能进行了优化,在设计时通常需要考虑事务完整性和操作可用性。

目前,业内已经有了相对比较成熟的基于图数据库的解决方案,大致可以分为以下几类。

金融行业应用

反欺诈多维关联分析场景

通过图分析可以清楚地知道洗钱网络及相关嫌疑,例如对用户所使用的帐号、发生交易时的IP地址、MAC地址、手机IMEI号等进行关联分析。

图6 在图数据库中一个典型的反洗钱模型

反欺诈已经是金融行业一个核心应用,通过图数据库可以对不同的个体、团体做关联分析,从人物在指定时间内的行为,例如去过地方的IP地址、曾经使用过的MAC地址(包括手机端、PC端、WIFI等)、社交网络的关联度分析,同一时间点是否曾经在同一地理位置附近出现过,银行账号之间是否有历史交易信息等。

社交网络图谱

在社交网络中,公司、员工、技能的信息,这些都是节点,它们之间的关系和朋友之间的关系都是边,在这里面图数据库可以做一些非常复杂的公司之间关系的查询。比如说公司到员工、员工到其他公司,从中找类似的公司、相似的公司,都可以在这个系统内完成。

图7 在图数据库中典型的社交关系网络模型

企业关系图谱

图数据库可以对各种企业进行信息图谱的建立,包括最基本的工商信息,包括何时注册、谁注册、注册资本、在何处办公、经营范围、高管架构。围绕企业的经营范围,继续细化去查询企业究竟有哪些产品或服务,例如通过企业名称查询到企业的自媒体,从而给予其更多关注和了解。另外也包括对企业的产品和服务的数据关联,查看该企业有没有令人信服的自主知识产权和相关资质来支撑业务的开展。

企业在日常经营中,与客户、合作伙伴、渠道方、投资者都会打交道,这也决定了企业对社会各个领域都广有涉猎,呈现面错综复杂,因此可以通过企业数据图谱来查询,层层挖掘信息。基于图数据的企业信息查询可以真正了解企业的方方面面,而不再是传统单一的工商信息查询。

6、图数据库的优缺点

图数据库天生的特点决定了其在关联关系上具有完全的优势,特别是在我们这个社交网络得到极大发展的互联网时代。例如我们希望知道谁是谁的COLLEAGUE_OF(同事),谁是所有人的BOSS_OF(老板)。我们想知道谁没有市场了,因为他们和别人是MARRIED_TO(结婚)联系。我们甚至可以通过数据库在其他社交网络中发现不善交际的元素,用DISLIKES(不喜欢)联系来表示即可。

虽然关系型数据库对于保存结构化数据来说依然是最佳的选择,但图数据库更适合于管理半结构化数据、非结构化数据以及图形数据。如果数据模型中包含大量的关联数据,并且希望使用一种直观、有趣并且快速的数据库进行开发,那么可以考虑尝试图数据库。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值