我的编程空间,编程开发者的网络收藏夹
学习永远不晚

是什么阻碍了图形数据库的扩展

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

是什么阻碍了图形数据库的扩展

本篇内容介绍了“是什么阻碍了图形数据库的扩展”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

什么是"图形数据库的可扩展性"?

“扩展”,不只是指将更多的数据存入一台计算机或随便存进多台计算机。对于大型数据集或不断增长的数据集,良好的查询性能十分必要。

所以,其中真正的问题在于,当单台计算机上的数据集增长到会影响其他功能时,图形数据库的表现能否令人满意呢?如果你还不能理解为什么这是首要问题,请和我一起快速回顾以下图形数据库。

简单来说,图形数据库用于存储无架构对象(顶点或节点)以及任意数据(属性)和对象(边缘)的关联数据。边通常能够指出对象之间的着力点,顶点和边共同构成图形网络数据集。

离散数学将图形定义为一组顶点和边;而计算机科学则将其定义为一种抽象的数据类型,它能够表示连接或关系。它不同于关系数据库系统中的表格数据结构,后者表达数据关系的能力十分有限。

如上所述,图形由节点(又名顶点[V]) 组成,这些节点由关系(即边[E])连接。

是什么阻碍了图形数据库的扩展

顶点具有任意数量的边和任意深度(路径的长度)的窗体路径。

是什么阻碍了图形数据库的扩展

它也可以针对跨行金融交易进行图形建模,如下图所示。此例中,我们可以将银行帐户定义为节点,银行交易记录与其他关系定义为边缘。

是什么阻碍了图形数据库的扩展

以这种方式存储帐户和交易信息,以遍历创建图形未知或变化的数据深度。在关系数据库中编写和运行此类查询功能往往是一项复杂的工作(使用多模型数据库能够以银行与其分支机构之间的关系来建模)。

图形数据库提供各种算法,以便用户查询所存储的数据及分析其间关系。包括遍历、模式匹配、最短路径或分布式图形处理,如分析社区侦测、连接组件或中心性。大多数算法都有一个共同点,这也是解决超节点和网络跃点问题的本质——算法通过边从一个节点遍历到另一个节点。

快速回顾之后,挑战就要开始啦!

“名人效应”

上文已提到顶点或节点可以具有任意数量的边。超级点的一个经典例子便是网红——超节点是图形数据集中传入或传出边条数过多的节点。帕特里克·斯图尔特爵士的Twitter账户目前就拥有340多万粉丝。

是什么阻碍了图形数据库的扩展

如果现在将帐户和推文数据进行图形建模,遍历其数据即Patrick  Stewart的帐户信息,那么算法必须定向分析Steward帐户所有的340万条边。这就会延长查询执行时间,甚至可能突破被授权的权限。类似的问题存在于欺诈检测(帐户进行大量交易、网络管理-大型  IP hub)等案例中。

超级节点是图形的固有问题,也是所有图形数据库面临的问题,以下两种方法能尽量减少超节点的影响。

是什么阻碍了图形数据库的扩展

图源:unsplash

方法一:拆分超节点

更准确来说,可以复制节点"Patrick  Stewart",并按某个属性(如粉丝的国家/地区或其他特定分组)拆分数据边缘。这样就会将超节点遍历数据对性能的影响降至最低,以便查询分类时所用。

方法二:中心节点索引

以顶点为中心的索引同时存储边缘信息和有关节点的信息。还是以帕特里克·斯图尔特的 Twitter  帐户为例,可以这样分组:粉丝的起始关注日期/时间信息、粉丝的国家/地区、粉丝的粉丝数等等,以上所有属性都可以为更高效地使用()提供选择性。

查询引擎可使用索引来减少执行遍历功能所需的线性查找次数,诈骗检测也可采用此方法。上文中金融交易便是边缘,交易日期或交易金额等属性可以增加选择效率。

某些情况下,以上两种方法都不适用;遍历超节点时,性能一定程度上会下降。多数情况下,还是有办法优化性能,但另一个问题是大多数图形数据库尚未解决的。

网络跃点问题

假如需要遍历一个高度连接的数据集,查询所需的所有数据的记忆都负荷在同一台计算机上,查询单个主要记忆大约需要100ns。

假设数据集已经远远满足单个实例所需,或者操作者想要提高群集或是全包的可用性和处理能力。在图形案例中,分片的意思就是拆除之前所建立的连接,因为图形遍历所需的数据当前可能留在不同计算机上。这会导致的查询信息时网络延迟,网络可能不是开发人员的问题,但查询性能就是了。

即使现代Gbit 网络和服务器位于同一机架,网络查找的成本也比内存中在查找贵5000倍左右。若在连接群集服务器的网络上添加一点负载,后果不可预想。

是什么阻碍了图形数据库的扩展

这种情况下,遍历可能从数据库服务器1开始,点击具有指向存储在 DB Server  2上的顶点边缘的节点,从而通过网络进行查找网络跃点。考虑到更多实际中的情况,在单个遍历查询中,实际上是存在多个跃点的。

是什么阻碍了图形数据库的扩展

在诈骗检测、IT网络管理,甚至现代企业识别和访问管理案例中,可能会涉及到分配图形数据,同时还需要以低于秒的性能执行查询功能。而查询执行期间产生的大量网络跃点可能会使之失败,付出高昂的缩放代价。

更智能的解决方法

大多数情况下,如果对数据有一些了解,你就可以更智能地来分片图形(客户  ID、区域等)。其他时候,也可以使用分布式图形分析,通过使用社区检测算法(例如ArangoDB的Pregel 套件)生成此域知识,从而进行计算。

例如,诈骗检测就需要分析财务交易以确定诈骗套路。在过去,骗子利用某些国家或地区的银行来洗钱。我们可以使用此领域知识作为图形数据集的分片密钥,并在 DB  服务器1上分配在此区域执行的所有财务事务,并在其他服务器上分配处理其他事务。

是什么阻碍了图形数据库的扩展

而现在,使用ArangoDB的SmartGraph功能,本地就能阻止洗钱或查询其他图形的请求,避免或至少大幅度降低了查询期间所产生的网络跃点。这究竟是如何做到的?

ArangoDB中的查询引擎能够记忆遍历所需的数据存储位置,并向每个数据库服务器的查询引擎发送请求,然后在本地处理请求。之后,每个数据库服务器上结果的差异会被合并到协调器并发送到客户端。对于层次分明的图形,还可以利用不相交的智能图来优化查询。

对于解决数据缩放问题的呼声越来越高,而图形技术对于回答此类复杂的问题也愈发重要。

笔者可以肯定地说,图形数据库在垂直方向上扩展是可行的,在ArangoDB中,水平扩展也能实现。当然,在有些极端不常见的情况下,中心节点索引和SmartGraphs也都无能为力。

“是什么阻碍了图形数据库的扩展”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

是什么阻碍了图形数据库的扩展

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

图形数据库是什么

本篇内容主要讲解“图形数据库是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“图形数据库是什么”吧!企业架构师应该知道什么您在Google上获得的图表数据库的描述主要是学术性的。我看到很多关于
2023-06-06

SAP CRM扩展字段的元数据仓库是什么

这篇文章跟大家分析一下“SAP CRM扩展字段的元数据仓库是什么”。内容详细易懂,对“SAP CRM扩展字段的元数据仓库是什么”感兴趣的朋友可以跟着小编的思路慢慢深入来阅读一下,希望阅读后能够对大家有所帮助。下面跟着小编一起深入学习“SAP
2023-06-03

虚拟主机扩展数据库的方法是什么

虚拟主机扩展数据库的方法有以下几种:1. 使用数据库分片(sharding):将数据库分成多个较小的逻辑分片,并将分片存储在不同的物理服务器上。这种方法可以通过增加更多的服务器来扩展数据库的容量和性能。2. 数据库复制(replicatio
2023-08-17

PHP 函数库的扩展机制是什么?

php 函数库扩展机制允许开发人员创建自定义函数,并将其添加到 php 内核,从而提供灵活性,适应广泛的用例。需要创建共享对象(.so 文件),编写 c 代码并编译为共享对象,注册扩展,并加载扩展。实际应用包括:创建特定于领域的函数、提高性
PHP 函数库的扩展机制是什么?
2024-04-10

AmazonAurora与传统关系型数据库在扩展性方面的差异是什么

Amazon Aurora与传统关系型数据库在扩展性方面的主要差异在于Amazon Aurora是一个云原生的关系型数据库服务,具有更高的可伸缩性和性能。传统关系型数据库在处理大规模数据和高并发负载时通常会遇到性能瓶颈,难以实现有效的水平扩
AmazonAurora与传统关系型数据库在扩展性方面的差异是什么
2024-04-09

Oracle数据库中的视图是什么

在Oracle数据库中,视图是一种虚拟的表,它是通过一个查询语句来定义的。视图本身并不包含任何数据,而是基于查询语句的结果集。用户可以像访问表一样使用视图,从而简化复杂查询和保护数据安全性。视图可以帮助用户隐藏底层表的细节,提供更简单和直观
Oracle数据库中的视图是什么
2024-04-09

oracle数据库表空间扩容的方法是什么

Oracle数据库表空间扩容的方法有以下几种:增加数据文件:可以通过增加数据文件的方式扩大表空间的容量。可以使用ALTER TABLESPACE语句来添加数据文件,例如:ALTER TABLESPACE tablespace_name A
oracle数据库表空间扩容的方法是什么
2024-04-09

关系数据库是以什么的形式组织和存放数据的

这篇文章主要介绍了关系数据库是以什么的形式组织和存放数据的,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。关系数据库是以“二维表”的形式组织和存放数据的。关系数据库的表采用二维
2023-06-14

了解localstorage:它的数据库特点是什么?

探究localstorage:它是一种什么样的数据库?概述:在现代的Web开发中,数据的存储和管理是非常重要的一部分。随着技术的不断进步,新的数据库技术也不断涌现。其中之一就是localstorage。本文将介绍localstorage的
了解localstorage:它的数据库特点是什么?
2024-01-15

数据库文件逻辑结构形式指的是什么

本篇内容主要讲解“数据库文件逻辑结构形式指的是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“数据库文件逻辑结构形式指的是什么”吧!数据库文件的逻辑结构形式是记录式文件。文件的逻辑结构可分为两
2023-07-02

FMDB使用的数据库的三种形式分别是什么

今天就跟大家聊聊有关FMDB使用的数据库的三种形式分别是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。FMDB是iOS平台下一款优秀的第三方SQLite数据库框架。它以Objec
2023-06-04

MySQL数据库创建视图的方法是什么

在MySQL数据库中,可以使用以下语法来创建视图:CREATE VIEW view_name ASSELECT column1, column2, ...FROM table_nameWHERE condition;其中,view_
MySQL数据库创建视图的方法是什么
2024-03-12

sql数据库视图创建的方法是什么

在 SQL 中,创建视图的语法如下:CREATE VIEW view_name ASSELECT column1, column2, ...FROM table_nameWHERE condition;其中,view_name 是视
sql数据库视图创建的方法是什么
2024-04-09

java图片保存到数据库的方法是什么

Java中将图片保存到数据库的方法有多种,以下是一种常见的方法:1. 将图片转换为字节数组:```javaFile imageFile = new File("path/to/image.jpg");byte[] imageData = F
2023-09-27

编程热搜

目录