存储技术
图数据库是数据管理系统软件。构建块是顶点和边缘。为了将其置于更熟悉的上下文中,关系数据库也是一种数据管理软件,其中构建块是表。两者都需要将数据加载到软件中并使用查询语言或API来访问数据。关系数据库在20世纪80年代蓬勃发展。许多商业公司(即Oracle,Ingres,IBM)支持数据管理的关系模型(表格组织)。在那个时代,主要的数据管理需求是生成报告。
直到最近几年,频繁的模式更改,管理爆炸物数据量,实时查询响应时间以及更智能的数据激活要求使得人们意识到图模型的优势,图形数据库并没有比关系数据库看到更大的优势。
有许多商业软件公司支持这种模式,包括TigerGraph(以前称为GraphSQL),Neo4j和DataStax。该技术正在扰乱许多领域,例如供应链管理,电子商务建议,安全性,欺诈检测,公用电网调度,AI应用知识图,区块链总分类数据的分析查询以及高级数据分析中的许多其他领域。有关详细说明,请参阅此页面 和此页面。
这意味着您编写的每个查询都有非常清晰,明确的语义。没有隐藏的假设,例如关系SQL,您必须知道FROM 子句中的表将如何 隐式形成笛卡尔积。除了易于使用之外,例如常规路径模式匹配,累加器概念允许精细控制以保持数据的中间查询状态。
它们具有优异的性能,可用于查询相关数据,无论大小。图表本质上是索引数据结构。它永远不需要加载或触摸给定查询的不相关数据。它们是实时大数据分析查询的绝佳解决方案。
图形数据库解决了对于关系查询而言既不切实际又不实用的问题。示例包括迭代算法,如PageRank,梯度下降,以及其他数据挖掘和机器学习算法。研究证明,一些图形查询语言是图灵完备的,这意味着你可以在它们上面编写任何算法。然而,市场上有许多查询语言具有有限的表达能力。确保你提出许多假设性问题,看看它是否可以在你锁定之前回答它们。
图形数据库可以在同时支持查询的同时对大数据执行实时更新。这是现有大数据管理系统(如Hadoop HDFS)的一个主要缺点,因为它是专为数据湖设计的,其中顺序扫描和附加新数据(无随机搜索)是预期工作负载的特征,它是架构设计的选择确保整个文件的快速扫描I / O. 假设任何查询都会触及文件的大部分,而图形数据库只触及相关数据,因此顺序扫描不是优化假设。
图形数据库在为您的查询提供服务时提供灵活的在线模式演变。您可以不断添加和删除新的顶点或边缘类型或其属性,以扩展或缩小数据模型。大多数现有查询仍然有效!管理爆炸性和不断变化的对象类型非常方便。关系数据库无法轻易地适应这一要求,这在现代数据管理时代是司空见惯的。
许多有用的现实查询都是在图形(或数据网络)中找到直接和间接的连接。回答这类可达性查询是图数据库的核心功能之一。例如,给予公司,找到谁直接或间接投资公司。另一个例子,给定产品,找到与产品直接或间接相关的任何子部分。
此外,我们可以使用共享一些公共顶点的多个可达性查询来扩展单对顶点可达性查询。可以将一组可达性路径查询捆绑在一起以相互约束以形成有趣的子图模式。这就是所谓的联合图查询(CQ)。CQ允许用户提出子图模式并要求数据库返回与此模式匹配的所有子图实例。例如,给予公司,找到直接或间接投资公司的投资者; 投资者与公司的创始人有直接或间接的联系。
在关系数据库中很难做到可达性查询,因为没有预定数量的JOIN。如果我们根据路径的某些测量值对连接(路径)进行排序会变得更加困难。例如,找到两个城市之间所有航班时刻表的短路径; 在社交图上找到对我来说距离最短的人可以将我连接到某个目标用户等。在图查询语言的边缘模式中使用正则表达式来表达这类递归路径查询很容易。相比之下,即使使用SQL 99 递归子句,在SQL中执行此操作也非常困难。
除了传统的分组查询之外,图形数据库可以通过在关系数据库中难以想象或不切实际的聚合查询来执行某些类别的组。由于表格模型限制,关系数据库上的聚合查询受到数据如何组合在一起的极大限制。相比之下,图模型可以更灵活地进行分组和聚合相关数据。看到这篇文章 关于使用累加器进行图遍历的聚合的最新表现力(顶点和边的运行时属性,或查询的全局状态)。我认为关系数据库不能对选择性数据点进行这种灵活的聚合。
图形数据库可以组合多个维度来管理大数据,包括时间序列,人口统计,地理维度等,以及不同维度的粒度层次结构。考虑一下我们想要根据时间和地理维度对一组人口进行分段的应用程序。通过精心设计的图表架构,数据科学家和业务分析师几乎可以对图形数据库进行任何分析查询。传统上,此功能只能由低级编程语言(如C ++和Java)访问。一系列精彩的网络研讨会使这一点更加清晰。
全部0条评论
快来发表一下你的评论吧 !