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

简介: 开箱即用的云上图数据库解决方案

1.jpg

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


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


图数据库能够高效地将关联数据的实体作为顶点(vertex)存储,关系作为边edge存储,并允许对这些点边结构进行高性能的检索和查询,也可以为这些点和边添加属性。正因为具有这些特性,才使得图数据库能够以最接近直观认知的形式存储数据,并且能够将这些关系完美地呈现出来。


01 图数据库的发展趋势


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

关系型数据库实现了快速的逐行访问和数据一致性(ACID 事务),但当数据规模变大且数据间关系变得复杂时,使用关系模型检索时需要多个表的属性执行连接操作,数据写入时也需考虑外键约束,从而导致较大的额外开销,对性能有极高的要求。而图数据库则在处理复杂关系上有着天然优势,尤其在海量数据多对多的复杂实体联系场景中有着异常突出的表现,主要体现在性能、灵活性和敏捷性三个方面。

2.png

关系数据库 vs 图数据库(多跳查询)


其次,图数据库是基于图模型以一种直观的方式存储和展示这些关系。因为是基于事物关系的模型表达,图因此也具有天然的可解释性。


目前,图数据技术因其在处理海量关联数据时的天然优势和符合人脑直观印象的展示形式正被应用在多个行业的生产环境和业务实践场景中。例如,数据集成(知识图谱)、个性化推荐、欺诈与威胁检测、风险分析与合规、身份(与控制权)验证、IT 基础 设施管理、供应链与物流、社交网络研究等,甚至于 AI 机器学习、NLP(自然语言处理)、区块链等新兴技术领域,你都可以看到图数据技术的身影。


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

根据 Gartner 的预计,云服务一直保持较快的增速和渗透率。大量的商业软件,正在从 10 年前完全私有本地逐步转向基于云服务的商业模式。云服务的一大优点是其提供了近乎无限的弹性能力,这也要求各种基于云基础设施的软件必须有更好的快速弹性扩缩容能力。

3.png

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


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


什么是云原生图数据库?

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


传统模式下,企业采购硬件资源,数据库部署在自建 IDC 并由企业监管和运维。企业的开发人员则采用 DevOps 模式或安排 IT 人员来管控数据库。接入业务后要时刻关注数据库集群状态来保障可用性,这对数据库内部实现不太了解的用户来说是个巨大的挑战。而云计算作为技术载体,天然具备跨越时空的优势,云技术正在从单一的计算能力发展为体系化的创新。对于企业来说,“上云”是一个技术选择、是企业数字化的起点,而基于云构建新的生产关系,打造新的业务增长引擎则是一个战略选择。


NebulaGraph 是一个可靠的分布式、线性扩容、性能高效的图数据库,其 Shared Nothing 和存储计算分离的底层架构让它具有了云原生的特征,可以有效降低成本和弹性扩缩容。而云端部署则屏蔽了数据库部署、性能调优、运维等繁杂过程,几分钟内就可以在云上创建一个图数据库,并快速扩展计算、存储等资源。


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

4.png

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


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


开箱即用:快速部署更方便

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


其次,NebulaGraph Cloud 支持包年包月与按量付费的灵活付费方式,节省新购设备、自建机房等一次性建设费用,当不再需要的时候可以及时销毁,显著降低了研发成本。为了进一步的优化体验,下一阶段 NebulaGraph 还将结合自身在云上的优化特性和测试结果,陆续推出高性价比的云服务器规格套餐,让用户以更低的价格获得更高的性能,大家不妨也拭目以待一下。


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


  • 架构高可用

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

5.png

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 实例提供极高的数据可靠性保证。

6.png


极致弹性:存算分离更可靠


NebulaGraph 采用存储与计算分离的架构。存储计算分离有诸多优势,最直接的优势就是,计算层和存储层可以根据各自的情况弹性扩容、缩容。存储计算分离还带来了另一个优势:使水平扩展成为可能,通过云上极致弹性能力,保障自身扩缩容需要。


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


  1. 将部分控制权交到用户手里。如果是 Graph 服务只需要将 ECS 资源按照目标数量弹性伸缩即可,因为 Graph 本身是无状态的;如果是 Storage 服务,我们会在编排页面提供一个控制开关,用于弹性扩容后是否自动平衡数据,因为在业务高峰期时数据搬迁会影响服务稳定性,所以何时去执行 balance 操作可以由用户自己来完成,部署的 Dashboard 工具也支持这个操作。
  2. 安全保护策略。大家都知道数据库服务数据不丢失是第一要素,因此我们对 Storage 伸缩组启用了删除保护开关以防止用户误操作,另外当用户需要缩容时,需要先在 Dashboard 界面找到对应伸缩组管理的 Storage 节点执行数据分片移除操作,等到数据分片清空后才会接受弹性伸缩 lifecycle-hook 请求。


除此之外,阿里云的弹性扩缩容提供了丰富的伸缩规则与定时任务能力,用户可以针对业务波动情况以及应用场景(OLTP 或者 OLAP)动态伸缩 Graph 节点,针对CPU平均使用率弹性扩容 Storage 节点。

7.png

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


NebulaGraph 支持严格的角色访问控制和 LDAP(Lightweight Directory Access Protocol)等外部认证服务,能够有效提高数据安全性。当客户端连接到 NebulaGraph 时,NebulaGraph 会创建一个会话,会话中存储连接的各种信息,如果开启了身份验证,就会将会话映射到对应的用户。


同时,NebuaGraph 内置角色权限,用户可以把角色分配给创建的用户,从而实现访问控制。

8.png


03 如何在云上部署 NebulaGraph ?


目前,NebulaGraph 与阿里云计算巢正在开展限时免费试用活动,需要试用的用户登录到阿里云计算巢后,先申请试用权限,填写信息审批通过后,就可以看到一个完全白屏化的服务创建页面。


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

9.png

关于如何在阿里云计算巢上快速部署 NebulaGraph,可参考以下视频。


参考内容:

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

2.《NebulaGraph 白皮书》

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

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
6天前
|
SQL 安全 Java
MyBatis-Plus条件构造器:构建安全、高效的数据库查询
MyBatis-Plus 提供了一套强大的条件构造器(Wrapper),用于构建复杂的数据库查询条件。Wrapper 类允许开发者以链式调用的方式构造查询条件,无需编写繁琐的 SQL 语句,从而提高开发效率并减少 SQL 注入的风险。
9 1
MyBatis-Plus条件构造器:构建安全、高效的数据库查询
|
5天前
|
Java 数据库连接 数据库
如何构建高效稳定的Java数据库连接池,涵盖连接池配置、并发控制和异常处理等方面
本文介绍了如何构建高效稳定的Java数据库连接池,涵盖连接池配置、并发控制和异常处理等方面。通过合理配置初始连接数、最大连接数和空闲连接超时时间,确保系统性能和稳定性。文章还探讨了同步阻塞、异步回调和信号量等并发控制策略,并提供了异常处理的最佳实践。最后,给出了一个简单的连接池示例代码,并推荐使用成熟的连接池框架(如HikariCP、C3P0)以简化开发。
16 2
|
21天前
|
安全 NoSQL 关系型数据库
阿里云数据库:构建高性能与安全的数据管理系统
在企业数字化转型过程中,数据库是支撑企业业务运转的核心。随着数据量的急剧增长和数据处理需求的不断增加,企业需要一个既能提供高性能又能保障数据安全的数据库解决方案。阿里云数据库产品为企业提供了一站式的数据管理服务,涵盖关系型、非关系型、内存数据库等多种类型,帮助企业构建高效的数据基础设施。
42 2
|
30天前
|
存储 安全 云计算
云上防线:云计算时代的网络安全策略
【10月更文挑战第1天】云上防线:云计算时代的网络安全策略
32 2
|
18天前
|
存储 NoSQL MongoDB
小川科技携手阿里云数据库MongoDB:数据赋能企业构建年轻娱乐生态
基于MongoDB灵活模式的特性,小川实现了功能的快速迭代和上线,而数据库侧无需任何更改
|
2月前
|
机器学习/深度学习 安全 网络安全
云上的守护:探索云计算与网络安全的融合之道
在这个数字时代,云计算已成为推动技术创新和服务模式变革的重要力量,但同时也伴随着日益严峻的网络安全挑战。本文深入探讨了云计算环境中的网络安全问题,包括云服务的安全性、信息保护机制以及防御策略,旨在揭示如何通过技术手段和管理措施,构建一个既高效又安全的云计算生态系统。我们将从云服务的架构出发,分析潜在的安全风险,探讨加密技术、访问控制、行为监控等信息安全技术的应用,并提出一套综合的网络安全防护框架,以期为企业和个人用户提供有价值的参考和指导。
39 2
|
2月前
|
云安全 安全 网络安全
云上防线:云计算时代的网络安全新策略
在数字化浪潮的推动下,云计算技术已成为企业信息技术架构的核心。然而,随之而来的网络安全挑战也日益严峻。本文旨在探讨云计算环境下的网络安全问题,并提出相应的安全策略。我们将从基础的云服务安全措施出发,深入到高级的信息保护技术,最后讨论如何通过合理的策略规划和人员培训,构建一道坚固的“云上防线”。
|
2月前
|
存储 安全 网络安全
云上防线:云计算时代的网络安全策略
在数字化浪潮的推动下,云计算已成为企业IT架构的核心。然而,随着数据和应用的云端迁移,网络安全威胁亦步亦趋。本文将探讨云计算环境下的网络安全挑战,分析云服务模型的安全特性,并提出有效的信息安全管理策略,旨在为企业构建一道坚固的云上防线。
|
3月前
|
存储 安全 网络安全
云上防御:云计算中的网络安全实践与策略
【8月更文挑战第31天】在数字时代的浪潮中,云计算已成为企业信息技术架构的心脏。随之而来的网络安全挑战也日益严峻,如何在云端构建坚不可摧的安全防线成为业界关注的焦点。本文将深入探讨云计算环境下的网络安全措施,从基础的数据加密到复杂的入侵检测系统,提供代码示例和实践策略,旨在为读者揭开云计算安全的神秘面纱,并提供实用的安全工具和解决方案。
|
3月前
|
存储 算法 Java
Java中的集合框架深度解析云上守护:云计算与网络安全的协同进化
【8月更文挑战第29天】在Java的世界中,集合框架是数据结构的代言人。它不仅让数据存储变得优雅而高效,还为程序员提供了一套丰富的工具箱。本文将带你深入理解集合框架的设计哲学,探索其背后的原理,并分享一些实用的使用技巧。无论你是初学者还是资深开发者,这篇文章都将为你打开一扇通往高效编程的大门。

相关产品

  • 计算巢服务