高性能的 NoSQL 图数据库-Neo4j
2021-06-20 19:54:36 阿炯

本站赞助商链接,请多关照。 Neo4j是一个高性能的NoSQL图数据库,它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎,它将结构化数据存储在网络上而不是表中。网络从数学角度叫做图是一个灵活的数据结构,可以应用更加敏捷和快速的开发模式。可以把它看作是一个高性能的图引擎,该引擎具有成熟和健壮的数据库的所有特性。程序员工作在一个面向对象的、灵活的网络结构下而不是严格、静态的表中——但是他们可以享受到具备完全的事务特性、企业级的数据库的所有好处。采用Java、Scala开发并在多种协议下授权使用。



Neo4j因其嵌入式、高性能、轻量级等优势,颇受业界关注。

特点

1.对象关系的不匹配使得把面向对象的“圆对象”挤到面向关系的“方表”中是那么的困难和费劲,而这一切是可以避免的。

2.关系模型静态、刚性、不灵活的本质使得改变schemas以满足不断变化的业务需求是非常困难的。由于同样的原因,当开发小组想应用敏捷软件开发时,数据库经常拖后腿。

3.关系模型很不适合表达半结构化的数据——而业界的分析家和研究者都认为半结构化数据是信息管理中的下一个重头戏。

4.网络是一种非常高效的数据存储结构。人脑是一个巨大的网络,万维网也同样构造成网状,这些都不是巧合。关系模型可以表达面向网络的数据,但是在遍历网络并抽取信息的能力上关系模型是非常弱。

虽然Neo是一个比较新的开源项目,但它已经在具有1亿多个节点、关系和属性的产品中得到了应用,并且能满足企业的健壮性和性能的需求:完全支持JTA和JTS、2PC分布式ACID事务、可配置的隔离级别和大规模、可测试的事务恢复。这些不仅仅是口头上的承诺:Neo已经应用在高请求的24/7环境下超过3年了。它是成熟、健壮的,完全达到了部署的门槛。

图:是指数据原理里的树集合成的网络。

Neo4j是一个嵌入式,基于磁盘的,支持完整事务的Java持久化引擎,它在图(网络)中而不是表中存储数据;它还提供了大规模可扩展性,在一台机器上可以处理数十亿节点/关系/属性的图,可以扩展到多台机器并行运行。相对于关系数据库来说,图数据库善于处理大量复杂、互连接、低结构化的数据,这些数据变化迅速,需要频繁的查询——在关系数据库中,这些查询会导致大量的表连接,因此会产生性能上的问题。Neo4j重点解决了拥有大量连接的传统RDBMS在查询时出现的性能衰退问题。通过围绕图进行数据建模,Neo4j会以相同的速度遍历节点与边,其遍历速度与构成图的数据量没有任何关系。此外,Neo4j还提供了非常快的图算法、推荐系统和OLAP风格的分析,而这一切在目前的RDBMS系统中都是无法或难以实现的。



2021年6月中旬消息,图数据库公司 Neo4j 宣布,在由Eurazeo 领投、GV原 Google Ventures参投的 F 轮风险投资中获得了 3.25 亿美元的融资。现有投资者 One Peak自 2018 年起成为投资者、Creandum自 2014 年起成为投资者和 Greenbridge Partners自 2016 年起成为投资者,以及新投资者 DTCP 和 Lightrock 也参与其中。

据称这是私营数据库公司有史以来最大的一轮风险投资;本轮融资的完成使 Neo4j 的融资总额达到 5.15 亿美元,市场估值超过 20 亿美元。这笔资金也使得 Neo4j 成为历史上资金最充裕的数据库公司之一。Neo4j 方面表示,这笔资金将用于扩大 Neo4j 的平台、员工队伍和客户基础。针对本轮融资,Neo4j 首席执行官兼联合创始人 Emil Eifrem 认为,这是更广泛的数据库市场的一个拐点。数据库构成了企业软件中最大的单一市场,其增长的中心是新一代的数据库,以前所未有的方式解决当今的数据挑战。这是一个神奇的数据库时代,为少数几代公司提供了机会,使其成为更广泛领域的领导者。Neo4j 就是这些公司之一,今天在数据库领域创纪录的交易表明,我们的新老投资者都认同这一信念。

Neo4j 指出,其现在已受到了 800 多家企业客户的信赖,包括 Adobe、AstraZeneca、eBay、Levi Strauss & Co.、UBS、Volvo Cars 和 Walmart,是世界上部署最广泛的图形数据库。同时,财富 100 强企业中中有超过 75%的企业使用了 Neo4j 的图形数据平台,“它能够为世界上最大的互联数据应用提供关键任务的工作负载”。

该公司计划利用这笔投资在三个主要方面进行加速:
云计算组合--提供多云服务组合,可以为个人开发者一直到最大的全球企业提供服务,在任何规模下都提供无与伦比的灵活性、敏捷性和性能。
图形数据科学--通过增强的机器学习模型为智能应用的新时代提供动力,以解锁基于关系的、无法实现的预测。
市场覆盖面--扩大 Neo4j 的全球覆盖面,发展公司的互补技术和专家服务提供商的生态系统,以提供完整的解决方案并加速客户的成功。

Gartner 曾预测到 2025 年,图技术将用于 80% 的数据和分析创新,以促进整个企业的快速决策;而在 2021 年,这一数据占比仅为 10%。Neo4j 是图数据库技术领域的领导者,具备成熟和健壮的数据库的所有特性,如友好的查询语言和事务的 ACID 原则;包含社区版本和商用版本。此前,为了避免云提供商只从开源中获益而不为这些项目作出贡献,影响开源项目的健康发展。Neo4j 曾于 2018 年宣布从 3.5 版本开始,企业版将仅在商业许可下提供,不再在 GitHub 上提供源代码。拜这些缺德的云平台所赐,开源公司抱团取暖-讨论如何在云厂商环境下生存


最新版本:5.0
Neo4j 是世界领先的高性能图数据库,具备成熟和健壮的数据库的所有特性,如友好的查询语言和事务的 ACID 原则。Neo4j 5 现已于2022年11月中旬发布,此版本在性能、可扩展性和操作敏捷性方面实现了重大改进。 具体更新内容包括:

查询性能
Neo4j 工程师的运行时优化使 K-Hop 查询变得更快。内部基准测试表明,对于 8-hop 查询,Neo4j 5 的性能与其前身相比提高了 1000 倍。Cypher clauses CONTAINS 和 ENDS WITH 广泛用于按文本属性过滤结果。Neo4j 5 中基于 trigrams 的新 TEXT 索引实现使它们的速度提高了数百倍。公告称,“结合其他内部改进和更优化的查询计划,这些新功能使 Neo4j 5 成为我们有史以来最快的实现”。Neo4j 5 还使编写复杂的模式匹配查询变得更加容易。Cypher 现在具有 label 和关系类型表达式的语法,允许用户在各个 label 和关系类型之间指定 Disjunction(OR)、Negation(NOT)和 Conjunction(AND)运算符。Aura 和 self-managed Neo4j 用户可以获得性能和语言改进。

Sharding and Fabric
从版本 4 开始,Neo4j 可以使用 Fabric 从数据库分片中读取数据,就好像它们是单个图一样。在 Neo4j 5 中,现在你可以使用 Cypher 的 Composite database 命令即时创建 Fabric 数据库。当你想要创建跨多个数据库的查询以打破隐藏洞察力和阻碍协作的孤岛时,Fabric 也会派上用场。在 Neo4j 5 中,它已得到增强,可以跨驻留在多个集群中的数据执行联合查询。

Autonomous Clustering
如果你的受众正在增长,那么你需要 Autonomous Clustering。从版本 3 开始,用户就可以运行多个 Neo4j 数据库并将它们横向扩展以每秒处理数万次查询,并且仍然以客户想要和应得的毫秒延迟执行。然而,Neo4j 5 中的 Autonomous Clustering 将管理负担完全从操作者转移到了软件上。你所要做的就是声明你需要多少个主副本或辅助副本以及你希望如何在集群中管理这些副本,你的愿望就是 Neo4j 的 Cypher 命令。顾名思义,Autonomous Clustering 极大地减少了为响应吞吐量变化而横向扩展或减少托管这些数据库的服务器数量所需的人工工作,并充分利用你的基础架构的弹性。

Agile Operations
Neo4j Ops Manager 是一个 UI 控制台,它为操作员提供了更多的管理控制权和跨数据库、实例和集群的操作指标的鸟瞰图。“为了向现代 DevOps 实践和向云的转变致敬,从 Neo4j 5 开始,你将在 Aura 发布的同时收到最新和最伟大的创新。此外,Neo4j 5 具有简化的升级体验,使你能够通过任意版本升级跳过次要版本,并在 autonomous clusters 中支持零停机滚动升级。”

所有这些改进使得在本地或你选择的云上运行 Neo4j 图形数据库工作负载变得更加容易和高效,确保 feature parity 和与 Aura 的兼容性,因此你可以在 Aura 中开发和测试并在自我管理的实例上运行生产(反之亦然)。如果你已经是 Aura 用户,则不必担心管理负担或你的数据库是否能够处理额外的负载。性能、可扩展性和易操作性都已融入了 Aura。

更多详情可查看官方博客


官方主页:https://neo4j.com/