关于图数据库:深度解读|NebulaGraph-x-阿里云计算巢云上构建超大规模图数据库

9次阅读

共计 4093 个字符,预计需要花费 11 分钟才能阅读完成。

近期,杭州悦数科技有限公司与阿里云计算巢达成单干,NebulaGraph 作为首款图数据库产品正式入驻阿里云计算巢,为用户带来了云端一键部署企业级图数据库集群的全新体验。同时,该服务集成了多款 NebulaGraph 周边可视化图数据库管理工具,让用户在云端也能够疾速从数据中取得洞察力。

近年来,图数据库的概念被越来越多的企业重复提及。图(Graph)是一种存储实体,及实体之间关系的数据结构,而图数据库(Graph Database)则是一个应用图数据进行存储,同时应用图构造进行语义查问的数据库。

图数据库可能高效地将关联数据的实体作为顶点(vertex)存储,关系作为边(edge)存储,并容许对这些点边构造进行高性能的检索和查问,也能够为这些点和边增加属性。正因为具备这些个性,才使得图数据库可能以最靠近直观认知的模式存储数据,并且可能将这些关系完满地出现进去。

01 图数据库的发展趋势

为什么要应用图数据库,而不是关系型数据库?

关系型数据库实现了疾速的逐行拜访和数据一致性(ACID 事务),但当数据规模变大且数据间关系变得复杂时,应用关系模型检索时须要多个表的属性执行连贯操作,数据写入时也需思考外键束缚,从而导致较大的额定开销,对性能有极高的要求。而图数据库则在解决简单关系上有着人造劣势,尤其在海量数据多对多的简单实体分割场景中有着异样突出的体现,次要体现在性能、灵活性和敏捷性三个方面。

<center> 关系数据库 vs 图数据库(多跳查问)</center>

其次,图数据库是基于图模型以一种直观的形式存储和展现这些关系。因为是基于事物关系的模型表白,图因而也具备人造的可解释性。

目前,图数据技术因其在解决海量关联数据时的人造劣势和合乎人脑直观印象的展现模式正被利用在多个行业的生产环境和业务实际场景中。例如,数据集成(常识图谱)、个性化举荐、欺诈与威逼检测、危险剖析与合规、身份(与控制权)验证、IT 根底 设施治理、供应链与物流、社交网络钻研等,甚至于 AI 机器学习、NLP(自然语言解决)、区块链等新兴技术畛域,你都能够看到图数据技术的身影。

上云的趋势在减速,对于弹性能力提出更高要求

依据 Gartner 的预计,云服务始终放弃较快的增速和渗透率。大量的商业软件,正在从 10 年前齐全公有本地逐渐转向基于云服务的商业模式。云服务的一大长处是其提供了近乎有限的弹性能力,这也要求各种基于云基础设施的软件必须有更好的疾速弹性扩缩容能力。

在此背景下,开源分布式图数据库 NebulaGraph 成为了阿里云计算巢上第一家图数据库合作伙伴,与阿里云一起帮忙更多企业用户更好地进行低成本、高效率的云上图数据库部署。

“对于数据库产品来说,底层基础设施的稳定性以及安全性对于客户来说至关重要。阿里云是国内当先的云计算提供商,咱们看重其稳固的基础设施和安全性,此次与阿里云计算巢的单干,通过阿里云计算巢更高效地利用底层资源的弹性扩缩容以及便捷的服务编排等能力,能够使咱们的客户释怀、省心地应用基于云上的 NebulaGraph 产品。”NebulaGraph 创始人兼 CEO 叶小萌示意。

什么是云原生图数据库?

云原生,即云上内生的云能力,人造就“生于云,长于云”,基于对立的架构和云原生基础设施,实现多云 / 混合云解决方案、边云协同等能力。云原生时代下,企业应用数据的形式产生了根本性变动,即基于对立云基础设施的云原生数据库、大数据解决方案,将成为企业数字化转型的数据底座。

传统模式下,企业洽购硬件资源,数据库部署在自建 IDC 并由企业监管和运维。企业的开发人员则采纳 DevOps 模式或安顿 IT 人员来管控数据库。接入业务后要时刻关注数据库集群状态来保障可用性,这对数据库外部实现不太理解的用户来说是个微小的挑战。而云计算作为技术载体,人造具备逾越时空的劣势,云技术正在从繁多的计算能力倒退为体系化的翻新。对于企业来说,“上云”是一个技术抉择、是企业数字化的终点,而基于云构建新的生产关系,打造新的业务增长引擎则是一个策略抉择。

NebulaGraph 是一个牢靠的分布式、线性扩容、性能高效的图数据库,其 Shared Nothing 和存储计算拆散的底层架构让它具备了云原生的特色,能够无效降低成本和弹性扩缩容。而云端部署则屏蔽了数据库部署、性能调优、运维等繁冗过程,几分钟内就能够在云上创立一个图数据库,并疾速扩大计算、存储等资源。

作为可能包容海量关联数据并进行毫秒级查问延时的高性能图数据库产品,NebulaGraph 曾经被多家行业当先的科技和通信公司利用在反欺诈、危险管制、社区发现等场景,其中某头部互联网公司的 NLP 团队也基于 NebulaGraph 搭建了本人的图数据库平台,目前曾经有 60 多条业务线接入应用,在智能助理、搜寻召回等业务场景均已落地。

NebulaGraph 在阿里云上部署的架构图

02 在云上部署 NebulaGraph 有哪些益处?

开箱即用:疾速部署更不便

因为云厂商提供了对立的基础设施,企业无需自行洽购硬件,还能够依据业务的灵便度和资源需要弹性调配云资源,实现疾速上线。基于阿里云计算巢提供的 ROS(资源编排),NebulaGraph 实现了云上自动化部署,几分钟内即可交付一个图数据库集群,相比传统以天、甚至以周为单位的交付周期,有极大的晋升。

其次,NebulaGraph Cloud 反对包年包月与按量付费的灵便付费形式,节俭新购设施、自建机房等一次性建设费用,当不再须要的时候能够及时销毁,显著升高了研发老本。为了进一步的优化体验,下一阶段 NebulaGraph 还将联合本身在云上的优化个性和测试后果,陆续推出高性价比的云服务器规格套餐,让用户以更低的价格取得更高的性能,大家无妨也刮目相待一下。

高可用性:数据备份更安心

架构高可用

NebulaGraph 集群蕴含三类服务,即 Query Service、Storage Service 和 Meta Service。

1、Meta Service 采纳 Leader/Follower 架构。Leader 由集群中所有的 Meta Service 节点选出,而后对外提供服务;Followers 处于待命状态,并从 Leader 复制更新的数据。一旦 Leader 节点 Down 掉,会再选举其中一个 Follower 成为新的 Leader。

2、Query Service 对应的过程是 nebula-graphd,它由齐全对等、无状态、无关联的计算节点组成,计算节点之间互相无通信。

3、Storage Service 采纳 Shared-nothing 的分布式架构设计,共有三层,最底层是 Store Engine,它是一个单机版 Local Store Engine,提供了对本地数据的 get/put/scan/delete 操作,该层定义了数据操作接口,用户能够依据本人的需要定制开发相干 Local Store Plugin。

在 Local Store Engine 之上是 Consensus 层,实现了 Multi Group Raft,每一个 Partition 都对应了一组 Raft Group。

数据可靠性

NebulaGraph 数据存储应用阿里云的云盘产品。云盘是阿里云为云服务器 ECS 提供的数据块级别的块存储产品,具备低时延、高性能、持久性、高牢靠等特点。云盘采纳分布式三正本机制,为 ECS 实例提供极高的数据可靠性保障。

极致弹性:存算拆散更牢靠

NebulaGraph 采纳存储与计算拆散的架构。存储计算拆散有诸多劣势,最间接的劣势就是,计算层和存储层能够依据各自的状况弹性扩容、缩容。存储计算拆散还带来了另一个劣势:使程度扩大成为可能,通过云上极致弹性能力,保障本身扩缩容须要。

NebulaGraph 在集群部署时会创立两个弹性伸缩组,一个对应 Graph 服务,另一个对应 Storage 服务。为了更好的扩缩容体验,咱们做了以下考量:

1. 将局部控制权交到用户手里。如果是 Graph 服务只须要将 ECS 资源依照指标数量弹性伸缩即可,因为 Graph 自身是无状态的;如果是 Storage 服务,咱们会在编排页面提供一个管制开关,用于弹性扩容后是否主动均衡数据,因为在业务高峰期时数据搬迁会影响服务稳定性,所以何时去执行 balance 操作能够由用户本人来实现,部署的 Dashboard 工具也反对这个操作。

2. 平安爱护策略。大家都晓得数据库服务数据不失落是第一因素,因而咱们对 Storage 伸缩组启用了删除爱护开关以避免用户误操作,另外当用户须要缩容时,须要先在 Dashboard 界面找到对应伸缩组治理的 Storage 节点执行数据分片移除操作,等到数据分片清空后才会承受弹性伸缩 lifecycle-hook 申请。

除此之外,阿里云的弹性扩缩容提供了丰盛的伸缩规定与定时工作能力,用户能够针对业务稳定状况以及利用场景(OLTP 或者 OLAP)动静伸缩 Graph 节点,针对 CPU 均匀使用率弹性扩容 Storage 节点。

安全可靠:角色身份可溯源

NebulaGraph 反对严格的角色访问控制和 LDAP(Lightweight Directory Access Protocol)等内部认证服务,可能无效进步数据安全性。当客户端连贯到 NebulaGraph 时,NebulaGraph 会创立一个会话,会话中存储连贯的各种信息,如果开启了身份验证,就会将会话映射到对应的用户。

同时,NebuaGraph 内置角色权限,用户能够把角色调配给创立的用户,从而实现访问控制。

03 如何在云上部署 NebulaGraph?

目前,NebulaGraph 与阿里云计算巢正在发展限时收费试用流动,须要试用的用户登录到阿里云计算巢后,先申请试用权限,填写信息审批通过后,就能够看到一个齐全白屏化的服务创立页面。

在疏导步骤里填写必须的配置参数,一键提交后期待 5 分钟左右即可体验 NebulaGraph,随后失常应用图数据的各种性能即可,大大降低了用户部署数据库的门槛。

参考内容:

1.Gartner 2019 年十大数据和剖析技术趋势

2.《NebulaGraph 白皮书》

3.《图数据库白皮书》:中国信息通信研究院 云计算与大数据研究所

正文完
 0