为什么需要图数据库?这篇文章为你介绍图数据库原理
互联网快速发展的今天,日新月异的新技术已经不再稀奇,从20世纪90年代以来,互联网开始在全球快速发展,数据的支撑成为互联网发展的基础之一,关系型数据库成为近三十年的主要数据环境。随着互联网的进一步发展,各行各业的数据量都变的庞大且复杂,传统关系型数据库已经不能完全适应如今的行业需求,图数据库应运而生。数易轩致力于图数据库标注技术服务,为您介绍图数据库成为未来首选数据库的必然理由。
有充分的证据表明图数据库将成为2020年代的首选数据库,图数据库从上世纪初就以各种各样的形式出现了,但与关系型数据库相比,图数据库的速度普遍较慢,工作比较复杂,适用性也比较有限。它们也主要被视为学术数据库,因为此类数据库的最早使用案例之一是构建逻辑分析系统,并且由于其学术联系,该数据库在相当长的时间内没有应用于商业中。
然而,到2014年年中,几个关键性的进展都聚集在一起,使图数据库技术得到了第一次的提升。Neo4J是一个早期且仍被广泛使用的图数据库,已经开始获得足够的成熟度和渗透性,开始被用于某些类别的数学图形处理。硬件(通过云计算)的速度也已经足够快,可以克服许多关键的早期性能挑战。图查询语言(SPARQL)第二版的发布,解决了早期版本带来的许多问题,包括引入了更新功能,这意味着可以出现一种用于动态添加内容的一致机制。MongoDB和CouchDB等JSON数据存储的出现,让人们更加关注非传统数据库索引的挑战,而这也使得在处理连接方面有了很大的优化,这是任何数据库的核心需求之一,而对于图数据库来说尤为重要。
重要的是,一些公司开始尝试使用图数据库来解决他们比较棘手的问题-企业元数据的管理,主数据管理,自然语言处理,知识导航和其他相关问题。然而具有讽刺意味的是,机器学习通常使用数据聚类方法进行文本分析,作为蛮力替代方案,近来,它已逐渐成为帮助构建图数据库的另一种机制,其程度是,最新的图数据库现在已纳入了机器学习算法和工具作为其核心套件的一部分。具有讽刺意味的是,通常使用作为蛮力替代方案的数据聚类方法来进行文本分析的机器学习,最近渐渐成为另一种帮助构建图数据库的机制,以至于最新的图数据库现在都将机器学习算法和工具作为其核心套件的一部分。
了解图
最终,图数据库越来越多地利用完全出乎意料的发展优势-图形处理单元或GPU(那些专门用于创建复杂的三维图形的专用多核计算机)的强大功能和先进性。这些GPU的工作方式是创建分解为三角形的网格--数百万甚至数十亿个三角形。GPU通过将属性分配给组成这些网格的点(节点)和线(边),计算颜色、亮度、边缘的硬度和柔软度、位移以及许多其他属性,并且可以非常非常快地执行此操作,因为他们采用的流水线架构。
事实证明,图数据库实际上与图形处理中使用的网格并没有太大的区别(实际上它们几乎相同),特别是从将属性分配给节点和边的角度来看。每个节点代表一个概念,每个边代表一个关系。这意味着,尤其是在21世纪10年代末,图数据库供应商越来越多地利用GPU遍历和比较这些图上的节点值,从而有效地利用了GPU提供的强大并行功能来增强图数据库。虽然更多的传统CPU可能也会继续使用,但GPU上的图数据库很可能是2020年代真正的典范。
当前,图数据库分为两大类:属性图和语义图。它们在一个关键方面有所不同:语义图将边视为标识关系的全局命名对象,而属性图将边视为基于周围节点的唯一事物。这意味着可以将文字属性(例如日期或字符串)分配给属性图中的关系。语义图形中存在一个类似的属性,称为“ reification”(reification),在该属性中,节点+边在一起被赋予了一个标识符,但是目前SPARQL尚未从根本上支持此功能。
这种情况很有可能会随着SPARQL下一个版本的出现而改变,下一个版本可能会在2020年初正式出现,同时还会有一些关于变量谓词路径的变化。实际上,这意味着属性和语义图数据库将在未来几年内合并为一个类别。除此之外,还能看到图数据库与NoSQL数据库的合并(采用JSON或XML风格,或者在某些情况下都采用)。
图数据库在本质上比传统的关系数据库系统更灵活,因为可以将有关数据库的元数据视为数据本身,可以以完全相同的方式进行访问。实际上,您可以使用图轻松表示关系数据库,因为关系表/列/行/键结构本身就是图的一种形式。直到最近,这种灵活性是以牺牲性能为代价的--但随着向GPU的转变,这种性能优势已经基本消失了。
越来越多的系统也启用关系填充,以隐藏表格数据库和图数据库之间差异的详细信息,以便它们可以与现有工具集(例如用于数据分析或可视化的工具集)一起使用,但是随着完整图形功能的标准化,新工具将会利用该标准化来利用灵活性和性能,这意味着图数据库有潜力在 2030年之前取代 现有的关系市场。
市场状况
在大约十年前的某个时刻,可能有四个商用数据库和几个开源图数据库,它们共同服务于一个市场,而这个市场与关系型市场相比是微不足道的。作者记得当时在几个语义会议上的贸易展览会上走的时候,有希望的供应商的数量超过了参加者的数量。现在的情况已经不是这样了,在过去的几年里,无论是厂商的数量还是图数据库专家的数量都在激增,以至于人们可以讨论不同的厂商群体。The Stalwarts
这个群体包括那些从2008年至2012年在语义学核冬天中幸存下来的供应商。他们往往拥有最长的跟踪记录,但也倾向于专注推理和SPIN之类的功能,这些功能在大多数情况下都早于SPARQL的第二个版本,尽管它们完全支持该版本。这些产品包括Top Quadrant的Top Braid、Cambridge Semantic的Anzo、OntoText的GraphDB和Franz的Allegrograph等。这些都是不错的产品,尤其是Top Braid在SHACL(一种数据模式语言)方面的工作,也一直在这个领域保持创新。它们也往往具有更广泛的数据治理策略,使其成为在企业级实施传统语义的好产品。
该群体包含那些将三重存储(图数据库)与其他集成数据库系统(例如JSON或XML存储)或搜索引擎结合在一起的供应商。在很多方面,这些都是对现有索引技术进行再利用(或建立在现有索引技术之上)的过渡性系统,在2012年到2017年左右的时间里,大部分都进入了图空间。其中包括MarkLogic,它提供对JSON和XML文档和语义的支持,以及Stardog,它建立在JSON的基础上,但结合了复杂的索引技术。当你处于混合数据体系中时,混合系统很好用,不过它们的价格往往也比其他图数据库高。
总体而言,该团队只是几年前才出现的力量,包括Pool Party,BlazeGraph(及其最新的化身为Amazon Neptune),Tiger Graph和Data.World等参与者。尽管Neo4j已经存在了一段时间,但作者也将其归入此类。在大多数情况下,这些产品都把图数据库作为属性图数据库来关注,在某些情况下,还抛弃了推理等功能,而随着SPARQL实现更广泛的应用,这些功能已经变得越来越无关紧要。
这些是诸如SmartLogic(或最近收购的Capsenta)之类的公司,这些公司通常建立在多个三重存储的基础上(并与之合作)。它们通常为数据建模、文档实体丰富、高速提取和集成可视化提供支持。有明显的迹象表明,随着市场变得越来越拥挤,支持者很可能会与某一厂商建立战略合作关系,或者直接合并(作者怀疑MarkLogic和SmartLogic尤其有这个趋势)。
知识库是最大的增长领域
有很多因素都表明,图数据库在未来十年将获得相当大的发展。首先是知识库的兴起,可以将其视为数据百科全书。例如,考虑一个幻想棒球联盟。他们通常会尝试跟踪许多不同类别的事情:球员,位置,球队,赛季。随着类的数量增加,创建接口来查看每个类中的各种项目的能力下降,这些应用程序的复杂性也在增加。传统的数据库应用在这一点上就会显得力不从心,因为它们一般只试图提供所涉及的数据空间的一部分的特定视图。
知识库采用另一种方法,通常被称为无上下文设计,其中系统中的每个对象都被视为图中的一个节点。在知识库中,每个节点都有一组最少的属性,使其可以显示在图中。例如在棒球卡片中,其中涉及的卡片可能是投手,接球手,球队,击球手等等,但是所有这些都需要有标题,图片和其他一些基本属性,以便可以打印出卡片。对于熟悉该术语的人来说,上下文无关的方法在概念上类似于Web使用REST的方法,因为请求或发布的数据的角色通常无关紧要,只是这个数据和过程遵循一定的基本协议。但是,细节确实很重要,并且通常会以纯层次结构难以管理的方式重叠。例如,对于棒球联盟来说,信息往往是分层组织的,在某一赛季中,一支球队有一个球员名单,每个球员都拥有一个角色(投手、捕手、游击手等)。
当你开始考虑赛季间的交易和类似的行动时,这就变得更加复杂了,也变得更加复杂了,因为与投手相关的属性(每场比赛的投球数、三振次数等)与作为击球手的位置球员的属性(赚取的分数、保送次数等)是不同的--但只有在国家联盟中,因为美国联盟允许投手击球,但国家联盟不允许。对这种逻辑进行建模,会对典型的数据库造成很大的限制,但实际上是知识库的优势所在,因为属性本身就是可以作为数据访问的资源,而且属性本身可以有元数据。此功能使您可以通过导航有效地构建查询,而不是熟悉查询语言。此外,您可以创建其他过滤器(通常在语义上称为约束),使您可以查找2018赛季西雅图水手队的投手所有球员,按每场比赛的平均投球次数排序,而无需了解数据库表或数据结构,甚至不需要编写一行代码。
这种灵活性还扩展到创建数据服务的能力。例如,借助知识库,可以将上述查询直接转换为URL,该URL将以机器可读(JSON或XML)格式返回一个数据源,给出其他应用程序可以使用的当前数据,而不必让程序员编写一个新的数据API。
知识库在整合企业数据方面可能有很长的路要走,同时让组织继续构建内部和面向公众的应用程序。 此外,较新的技术也使得提供属性级别的安全性成为可能,即只有拥有相关访问级别的用户才能看到或浏览特定的属性。机器学习系统也使对知识库提取的自动分类变得更加容易,并且随着时间的流逝,随着ML +语义学的好处得到更好的证明,这种情况只会越来越普遍。其他的应用,包括推理分析系统、风险检测和缓解、最小路径分析等,所有这些带有语义成分的应用,都可能会在知识库的成功基础上发展起来。它们需要对数据进行某种不同的组织,但随着数据联合也变得越来越普遍,这是一种进化性的变化,而不是革命性的变化。
最后要注意的一点-最近的语义学最激动人心的领域之一是与属性图技术实现统一的潜力,其中断言(事实陈述)本身被视为资源。早期使用RDF的工作支持此功能,但是由于性能原因,(最现有的)知识图所使用的SPARQL查询语言规范既未实现它,也未实现变量属性路径。
作者预计W3C(拥有语义技术的大多数核心专利)提出的SPARQL 2.0建议可能即将出现,但最早可能要到2022年才能成为现实。如果是这样,结果可能是SPARQL和Gremlin和/或Tinker Pop的某种合成形式。
总结
考虑到所有这些,采用语义的路线图变得越来越清晰。至少在初期,语义数据系统将更多地围绕知识库而不是推理分析,同时将机器学习和自动分类的最新进展纳入其中。数据领域的大佬们现在都在密切关注这个领域,随着战略合作关系导致彻底合并,A级企业开始抢购可行的技术而不是在内部建立技术,未来两年内出现这种情况的可能性很大(尤其是在经济下滑时有可能出现不良销售的情况下)。同时,随着标准的制定,人们期望看到语义数据库和属性数据库的重新合并,更有可能的是W3C为实现这种统一采取一些正式行动。