关系数据库具有分类帐样式的构造。可以通过SQL查询它,这是大多数人所熟习的。每个条款由表中的一行组成。表格是通过外键约束来关联的,外键约束是您可以将一个表的信息连接到另一个表(例如主键)的办法。查询关系数据库时,常日会涉及缓慢的多级联接。
对付图形(特殊是散点图),请将元素视为节点或点。折线图的元素类似地由顶点表示。每个节点都有键值对和标签。节点通过关系或边连接。关系具有类型和方向,并且可以具有属性。图形数据库仅由点和线组成。当含义在数据之间的关系中时,这种类型的数据库更大略,功能更强大。关系数据库可以轻松处理直接关系,但是间接关系在关系数据库中更难处理。
在建立关系数据库时,要牢记问题。我们想回答什么样的问题?例如,您想知道有多少人购买了烤面包机,住在堪萨斯州,有犯罪记录并利用优惠券购买了该烤面包机。如果数据库管理员或创建数据库的职员没有预见到这样的问题,则可能很难从关系数据库中检索该信息。对付图形数据库,可以回答意外的问题。利用图形,您可以回答任何问题,只要该数据存在并且它们之间存在路径即可。图被设计为遍历间接关系。利用图数据库,您乃至可以添加更多关系,并且仍旧保持性能。图形数据库超越了存储数据点的位置,而是存储了数据关系。图形数据库存储关系信息。
> https://www.nextplatform.com/2018/09/19/the-graph-database-poised-to-pounce-on-the-mainstream/
我将简要描述一些最盛行的图形数据库实现的优点和缺陷:
· TigerGraph
· Neo4j
· Amazon Neptune
这是个中的示例。 在这里查看更多选项:https://db-engines.com/en/ranking/graph+dbms
TigerGraph —"一个完全的,分布式,并行图形打算平台,支持实时的网络规模数据剖析"https://www.tigergraph.com/
TigerGraph™通过其本机Parallel Graph™技能成为天下上最快,可扩展性最大的图形平台。
"一个完全的,分布式,并行图形打算平台,支持实时的Web规模数据剖析。"
这是2017年发布的图形数据库的商业选项。它的实现措辞是C ++,但它也支持Java。它的操作系统是Linux,查询通过类似于SQL的查询措辞(称为GSQL)进行。
TigerGraph的加载韶光比其紧张竞争对手Neo4j更长。 考虑到预处理韶光,TigerGraph实际上比Neo4j快。 TigerGraph是高效的,由于它须要的存储空间比Neo4j少19.3倍。 在单跳路径查询中,TigerGraph比Neo4j快24.8倍。 在三跳路径查询中,TigerGraph比Neo4j快1,808.43倍。 TigerGraph还能够完成六跳路径查询。 由于Neo4j内存不敷,这种处理会在2小时后将其杀去世。
TigerGraph缺少履历,彷佛可以填补资源不敷。 TigerGraph彷佛在性能方面击败了竞争对手,但要付出代价。 TigerGraph的本钱不取决于性能或内核或套接字的数量,而是取决于放入图形数据库的数据大小。 对付50–100GB的图表,年度订阅的价格为数万美元,而对付达到1 TB的图表,每年的订阅价格靠近100万美元。
在2019年9月推出的TigerGraph Cloud上有免费套餐选项,还有按需付费的按小时收费模式,起价为每小时几美元。它是根据性能来定价的-虚拟CPU和RAM更大的实例的成本相应更高,客户可以启动和停滞实例,仅按小时支付所需的用度。以下是有关这些定价选项的更多详细信息的链接。
https://www.tigergraph.com/tigergraph-cloud-pricing/
Neo4j —"开源图形数据库"Neo4j创建于2007年,被db-engines.com评为第一名的图形数据库。Neo4j是开源的,并支持多种编程措辞,包括:.Net,Clojure,Elixir,Go,Groovy,Haskell,Java,JavaScript,Perl,PHP,Python,Ruby和Scala。做事器操作系统是Linux,OS X,Solaris和Windows。
Neo4j拥有最受欢迎和最生动的图形数据库社区。评论报告说,他们的产品易于学习且易于利用,并且具有从培训材料到书本的大量资源。Neo4j拥有完善的根本,可以为用户供应大量资源。Neo4j供应了一种新的查询措辞Cypher,并将其引入了Spark。Neo4j声称Cypher是与Spark上的图形形状数据进行交互的一种更方便的方法。Neo4j带来了ETL,剖析和改进的性能。当涉及到ETL时,Neo4j供应了一个新工具,可以对关系模式进行内部检讨并自动提取CSV。
为了跟上TigerGraph,Neo4j确实有一些性能障碍须要战胜,但是它仍旧拥有最大的支持者并支持所有图数据库。
利用Neo4j构建的运用程序可以办理互连数据寻衅,包括人工智能,敲诈检测,实时建媾和主数据。
> Solutions by Neo4j
Neo4j还即将举行一个活动:Nodes2019。请访问其网站进行注册。您还可以参加一个黑客马拉松!
提交截止日期为2019年9月29日。> https://neo4j.com/
Amazon Neptune —"为云构建的快速,可靠的图形数据库"
与TigerGraph相似,Amazon Neptune Graph Database于2017岁首年月次亮相并投入商业利用。托管做事器操作系统,并且支持的编程措辞是C#,Go,Java,JavaScript,PHP,Python,Ruby,Scala,其范围比TigerGraph更大。海王星正在努力实现高可用性和耐用性。"这将转化为1000亿个节点/边缘/三元组,同时自动跨三个可用区(AZ)复制六份数据副本,并将数据连续备份到S3。AWS还表示,Neptune旨在供应99.99%以上的可用性,并在不到30秒的韶光内自动检测大多数数据库故障并从中规复。"因此耐用!
" Neptune还供应高等安全功能,包括通过Amazon虚拟私有云(VPC)进行的网络安全以及利用AWS Key Management Service(KMS)进行的静态加密。"海王星通过拥有双重性而分歧凡响。 它能够支持盛行图数据库模型,RDF和属性图(PG)。 此上风是一把双刃剑,由于您不能将其互换利用。 AWS的目标是统一这两种模式,但是要战胜这些寻衅并非易事,由于这是不小的寻衅。
要查看这三个数据库系统的更详细比较,以及更多信息,请访问db-engines.com,以获取大量资源。
图数据库的运用· 敲诈识别
· 实时推举引擎
· 主数据管理
· 增强网络和IT运营能力
· 身份和访问管理
第2部分:ArangoDB,OrientDB和AnzoGraph DB
很高兴看到人们对他们最喜好的图形数据库供应商或至少他们所事情的图形数据库公司充满激情亲切。由于可用选项太多,请查看db-engine的33种不同选项列表,以知足您的图形数据库需求。在本文中,我将简要强调:
· OrientDB
· ArangoDB
· AnzoGraph 数据库
根据db-engines.com供应的列表,这三个的受欢迎程度分别排名第三,第四和第二十六。为了得到可靠的新闻宣布,我会谦逊地考试测验保持公道,并报告公司网站上供应的信息以及最近的文章。
OrientDB-"为当代天下设计的数据库"网站:https://orientdb.com/
文档:https://orientdb.org/docs/3.0.x/
OrientDB最初于2010年发布,支持许多编程措辞,包括:.Net,C,C#,C ++,Clojure,Java,JavaScript,JavaScript(Node.js),PHP,Python,Ruby和Scala。 OrientDB是一个无模式的多模型数据库系统,支持图形,文档,键/值和工具模型。 它支持无模式,全模式和模式稠浊模式。 图遍历均支持Gremlin和SQL查询。 OrientDB是用Java实现的,因此可以在Java JDK≥JDK6的所有操作系统上运行。 它是开源的,但是也可以从OrientDB得到商业支持。
根据他们的网站,OrientDB供应了图形数据库系统的做事,而无需"支配多个别系来处理其他数据类型"。 此方法用于提高"性能和安全性,同时支持可伸缩性"。 OrientDB通过设计管理多模型系统,使其与浩瀚图形数据库系统区分开来。 它不但是"为其他模型添加层,从而导致性能低落"。
G2有33条用户评论,均匀评分为4/5星。 大多数评论都非常积极,该当指出的是,上一次的均匀评论是从2016年6月开始的,因此OrientDB彷佛在办理缺点和支配完备开拓的功能方面表现出色。 评论的紧张批评彷佛是希望得到更强大的文档。 紧张的赞誉包括合理的价格,快速的安装以及用户友好的特性。
> https://www.g2.com/products/orientdb/features
> https://www.predictiveanalyticstoday.com/orientdb/
ArangoDB —"一个引擎。一种查询措辞。多个模型。"
网站:https://www.arangodb.com/
解释文件:https://www.arangodb.com/documentation/
ArangoDB最初于2011年被称为AvocadoDB,从其徽标中可以明显看出,它于2012年景立。ArangoDB是开源的多模型(键/值,文档和图形),并利用C,C ++和JavaScript实现。 做事器操作系统包括:Linux,OS X,Raspbian,Solaris和Windows。 它是无架构的,并支持以下措辞:C#,Clojure,Java,JavaScript(Node.js),PHP,Python和Ruby。 ArangoDB利用一个数据库核心和自己的统一查询措辞AQL(ArangoDB查询措辞)进行操作,该措辞在很多方面与SQL相似。 AQL是声明性的,并许可在单个查询中组合不同的数据访问模式。 ArangoDB专门设计用于许可将键/值,文档和图形数据存储在一起并利用通用措辞进行查询。
根据他们的网站,ArangoDB可以作为分布式且高度可扩展的数据库集群运行。 它在Kubernetes上运行,包括持久基元和大略的集群设置。 ArangoDB具有本地集成的跨平台索引,文本搜索和排名引擎,用于信息检索,并且针对速率和内存进行了优化。 还供应了完全的GeoJSON支持。
G2上有41条用户评论,均匀5/5星。自2017年以来的单一均匀评分表明缺少SQL支持以及对必须适应AQL的不满。其他人将AQL称为"直不雅观",将ArangoDB描述为"功能丰富"。
> https://www.g2.com/products/arangodb/features
> https://www.predictiveanalyticstoday.com/arangodb/
欲理解即将发布的3.6版本中的新功能,请查看2019年10月10日美国东部韶光下午1点的ArangoDB网络研讨会。
AnzoGraph —"在快速,可扩展的数据库上构建您的办理方案"网站:www.anzograph.com
解释文件:https://docs.cambridgesemantics.com/anzograph/userdoc/home.htm
该商业图形数据库最初于2018年发布,与RDF(资源描述框架)一起运行。 RDF模型以主谓谓工具的形式将信息表示为三元组。 RDF存储可以被视为图DBM的子类,但是RDF存储是精彩的,由于它们供应了超越一样平常图DBMS的特定方法。 大多数RDF存储(包括AnzoGraph)都支持SPARQL,SPARQL是一种类似SQL的查询措辞,用于OLAP(在线剖析处理)样式的剖析。 AnzoGraph DB的运行做事器是Linux,它支持C ++和Java。
根据他们的网站,AnzoGraph DB是为具有线性扩展性能的在线数据剖析而构建的。 它是一个大规模并行处理(MPP)本机图形数据库,旨在进行大规模剖析(恒河沙数的三倍或更多),速率和深层链接见地。 它适用于须要图算法,图视图,命名查询,聚合,内置数据科学功能,数据仓库样式BI和报告功能的嵌入式剖析。 您可以考试测验他们的真实测试,查看他们的基准测试,并下载60天的免费试用版。
在Medium上可以找到对AnzoGraph DB的一些评论。查看本文:图形数据库。有什么大不了的?由FavioVázquez撰写。他指出,"随着机器学习和AI的发展,图形OLAP数据库变得非常主要,由于许多机器学习算法实质上都是图形算法,与在RDBMS上运行比较,它们在图形OLAP数据库上运行效率更高。"
George Anadiotis撰写的文章中还对AnzoGraph进行了另一项检讨,该文章将AnzoGraph与TigerGraph进行了比较。
结论有许多用于绘制数据库图形的选项,并且彷佛每个选项都试图找到自己的市场个性。 哪一个是最好的? 这确实取决于您的需求。 每个Graph DB都有其独特的上风,劣势和基准。 而且,随着这些系统的发展和增长,它们的弱点将改变,它们可能变得更加全面和强大。 花点韶光四处走走,并对所有可用的选项进行自我教诲,由于数量很多,而且数量还在不断增长。
(本文由闻数起舞翻译自Sam Bell的文章《Comparing Graph Databases I》《Comparing Graph Databases II》 ,转载请注明出处,原文链接:https://towardsdatascience.com/comparing-graph-databases-5475bdb2e65f , https://towardsdatascience.com/comparing-graph-databases-6b785e6e0818)