首页 > 编程知识 正文

社交网络数据分层(数据为王的时代)

时间:2023-05-03 21:27:51 阅读:85622 作者:3250

该账户是华为云开发者社区的官方运营账户,提供全面深入的云计算前景分析、丰富的技术干货、流程样本,共享华为云前端信息动态

本文分享自华为云社区《图数据库到底是个啥》,原文作者:你好_TT。

近年来,在大数据处理的过程中被广泛提及,有被使用的数据库。 那就是图表数据库。 那么,什么是图数据库呢?

图数据库如果是刚接触的人,就有可能被其字面理解。 其实,图数据库不是存储图像或图片的数据库,而是存储如图所示数据结构的数据库。 那么图是什么呢?

什么是图

通过以下示例进行识别。

东汉末年,善于撒娇的手机、刘备联军曾用在赤壁一带火攻敌船的计策大败曹军。

将各阵营间的关系抽象化后,如果以阵营为点、以阵营间的关系为边,则可以用如下图来想象上述关系。

以上就是这里所说的图(的可视化展示)。

记忆这种实体和实体之间关系的数据结构称为图、Graph。 图由点和边构成,一个点是一个实体。 例如,如上述例子的阵营所示,两个实体的关系用有方向性或无方向性的边来表示。 例如刘备和撒娇的手机的同盟关系等。 这种共同的结构可以建模现实的各种场景,从交通运输系统到组织架构管理,从过程设计到社交网络。

如果知道

什么是图数据库

图的概念,就能理解图数据库是什么。 简单地说,图数据库是处理如图所示的数据结构的工具。

与传统的使用二维表存储数据的关系数据库不同,图数据库在传统意义上被归类为NoSQL(Not Only SQL )数据库的一种。 也就是说,图数据库属于非关系数据库。

典型的图数据库至少包含图存储、图查询和图分析三个功能。

为什么要用图数据库

中,为什么要使用图数据库呢? 用东汉末年的例子说明图数据库相对于关系数据库的优越性。

假设在某个关系型数据库中,有东汉末的人物表、东汉末的战役表、东汉末的人物参战表三个表。

如果想知道“樊城之战的防守者是谁”,查询一般很快,可以从表2直接得到,但是如果想知道“刘备集团发生了什么样的战争”,也可以从表2中找到答案,但是需要遍历整个表2,并且可以从表2中找到。 然后,在调查“关羽参加过刘备集团发起的什么样的战争”等时,我们来看看执行这个咨询时的关系型数据库是怎么样的。

a .首先通过东汉末年的人物表找到与关羽对应的人物IDB。 接下来使用东汉末的人物参战表找出参战的战斗c .最后通过东汉末的战斗表找出参战的哪个战斗的进攻方是刘备集团

我知道这个咨询真的很麻烦。

将这些表转换为以下关系图后,就可以一目了然地知道谁和谁是什么关系。

虽然你可能还没有感受到图数据库的巨大威力,但是让我们来看看最典型的社交网络中查询性能的比较数据。

在《Neo4j in Action》这本书中,作者在包括100万人在内、人均约有50个朋友的社交网络中寻找了最大深度为5的朋友,得到的实验结果如下。

测试结果表明,如果深度为2,则两种数据库的性能差异不大,如果深度均为3,则关系数据库需要30分钟来完成查询,但图数据库仍将在1秒内处理完毕,如果深度为4, 关系数据库返回结果需要近30分钟,图数据库不到2秒。深度达到5后,关系数据库将延迟无法响应,但图数据库仍然可以“秒杀”,显示出非常好的性能

这样可以从以下几个方面理解为什么要使用图数据库。

关系数据库不善于处理数据之间的关系,而图表数据库在处理数据之间的关系方面灵活且高性能。 不可否认,关系数据库是20世纪80年代以来数据库领域发展的主力。 目前,随着社交、物联网、金融、电子商务等领域的快速发展,由此生成的数据呈指数级增长,传统的关系数据库处理着复杂的关系

系的数据上表现很差,这是因为关系型数据库是通过外键的约束来实现多表之间的关系引用的。查询实体之间的关系需要JOIN操作,而JOIN操作通常非常耗时。

而图数据库的原始设计动机就是更好地描述实体之间的关系。图数据库与关系型数据库最大的不同就是免索引邻接。图数据模型中的每个节点都会维护与它相邻的节点关系,这就意味着查询时间与图的整体规模无关,只与每个节点的邻点数量有关,这使得图数据库在处理大量复杂关系时也能保持良好的性能。

另外,图的结构决定了其易于扩展的特性。我们不必在模型设计之初就把所有的细节都考虑到,因为在后续增加新的节点、新的关系、新的属性甚至新的标签都很容易,也不会破坏已有的查询和应用功能。

数据之间的关系越来越重要

当我们在问图数据库为什么如此重要时,其实就是在问,数据之间的关系为何如此重要?正如大家都知道人际关系的价值,其实数据的价值也在于它们之间的关联关系上。

举个例子。最近直播带货非常火,假如某个主播在微博上有几百万的粉丝,这个数据如果不利用起来,价值并不大,但如果他直播带货,把关注他的粉丝和可能来他直播间购物的顾客联系起来时,这些数据立马展现出巨大的商业价值。

使用图的方式表达现实世界中的很多事物更直接,更直观,也更易于理解

自然界中有各种各样的关系,而关系型数据库只能把这些拍扁成表格形态的行列数据,而图数据基于图模型以一种直观的方式去模拟这些关系,因而更形象。

另外,现在大部分的图数据库都提供了可视化的图展示,使得查询和分析变得很直观。

专业的图分析算法为实际场景提供解决方案

图数据库起源于图理论,借助于专业的图分析算法,能够为实际场景提供合适的解决方案。

图数据库如何存储、查询、分析

图存储

图数据库如何存储图,对查询和分析效率至关重要。图数据库使用图模型来操作图数据。所谓的图模型是指图数据库描述和组织图数据的方式。

目前主流的图数据库选择的图模型是属性图。属性图由点、边、标签和属性组成,我们结合一个具体的属性图实例来看一下。

​以上属性图可以帮助我们理解一些相关概念:

1) 可以为点设置标签,比如 person, war等,拥有相同标签的点我们认为它们属于一个分组,是一个集合,这样刘备和细心的菠萝属于一个分组;

2) 同样可以为边设置标签,标签可以为 relation等;

3) 节点可以拥有很多属性,比如 style name、year等,这些属性值以键值对的形式表示,例如:刘备的style name是鲜艳的香氛;

4) 边也可以拥有属性,比如army等;

5) 边允许有方向,例如刘备和汉中之战之间的边的方向是由刘备指向汉中之战的;

6) 元数据是用来描述点和边的属性信息的,元数据由若干标签组成,每个标签由若干属性组成。

图查询

如果我们想知道刘备的籍贯在哪,刘备和细心的菠萝是什么关系,汉中之战的发动方是谁等等,这些都属于图查询的范畴。

我们知道,SQL是关系型数据库的查询语言,但是图数据库的查询语言并没有复用SQL。这是因为本质上图数据库处理的是高维数据,而SQL所适用的是二维的数据结构,其并不擅长关系的查询和操作。使用专门的图查询语言比SQL更加高效。

目前主流的图查询语言包括Gremlin和Cypher等。

图分析

图分析是指通过各种图算法来挖掘图信息的一门技术。

核心的图算法可以分成三类:路径搜索类、中心性分析类和社区发现类。

路径搜索是探索图中节点通过边建立的直接或间接的联系。例如在下图中,通过路径搜索,我们发现了这样一条路径:孙策-[夫妻]-大乔-[姐妹]-小乔-[夫妻]-周瑜,据此得知孙策和周瑜是hsdhmg的关系。路径搜索类算法广泛用于物流配送、社交关系分析等场景。

​中心性分析是指分析特定节点在图中的重要程度及其影响力。例如在上图中,直观来看,会撒娇的手机是一个重要的人物,因为与他直接相连的边的数量最多。中心性分析类算法一般用于网页排序、意见领袖挖掘、流感传播等场景。

社区发现意在发现图中联系更紧密的群体结构。如果把更多的三国人物和关系加到上图中,利用Louvain等社团挖掘类算法,我们很容易发现这些人物分属三个阵营,如下图所示。

​社区发现类算法可用于犯罪团伙挖掘等场景。

图数据库有什么用

介绍完图数据库的主要功能,我们再来看看图数据库都有哪些应用场景。图数据库擅长的应用领域包括:

社交领域:Facebook, Twitter用它来进行社交关系管理、好友推荐

我们熟悉的好友推荐。就可以采用推荐好友的好友的方法。

机智的鸡翅和友好的信封向刘备推荐zjdsj可以通过下图形象地展示

电商领域:华为商城用它来实现商品实时推荐

通过分析目标用户和其他用户的喜好商品,找到相似的其他用户,把这些用户购买过的商品推荐给目标用户。

金融领域:中国工商银行、摩根大通用它来做风控管理

目前来看,金融领域对图数据库的需求很迫切,以贷款为例,在整个贷款周期中,图数据库都能发挥巨大的作用。

安平领域:公安用它来进行嫌疑关系审查、犯罪团伙挖掘

东汉末年,细心的菠萝刺杀幸福的溪流,貂蝉挑拨幸福的溪流父子关系,吕布斩杀幸福的溪流,但是幸福的溪流却不知道,这些事件幕后主凶之一都有gxdmp,如下图所示。现实中也可能是这样,幕后多情的世界可能与目标案件没有直接关系,只有间接的关系。

什么样的场景适合用图数据库

你可以根据以下几点来判断你的问题是否需要图数据库:

如果你的问题中频繁出现多对多的关系,建议首选图数据库;如果你的问题中数据之间的关系非常重要,建议首选图数据库;如果你需要处理大规模数据集之间的关系,建议首选图数据库。

图数据库产品

现在图数据库产品已经出现百家争鸣的局面,Neo4j作为老牌图数据的代表,尽管依然拥趸众多,但是由于其自身的缺陷,挑战者正在增多,而华为云图引擎图数据库GES作为国产图数据库之光,正在成为其中的佼佼者。

GES 使用界面

​点击关注,第一时间了解华为云新鲜技术~

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。