分类: NOSQL
2023-10-24 17:38:43
近年来,图数据库的概念被越来越多的企业反复提及。图(Graph)是一种存储实体,及实体之间关系的数据结构,而图数据库(Graph Database)则是一个使用图数据进行存储,同时使用图结构进行语义查询的数据库。
图数据库能够高效地将关联数据的实体作为顶点(vertex)存储,关系作为边(edge)存储,并允许对这些点边结构进行高性能的检索和查询,也可以为这些点和边添加属性。正因为具有这些特性,才使得图数据库能够以{BANNED}最佳接近直观认知的形式存储数据,并且能够将这些关系完美地呈现出来。
为什么要使用图数据库,而不是关系型数据库?
关系型数据库实现了快速的逐行访问和数据一致性(ACID 事务),但当数据规模变大且数据间关系变得复杂时,使用关系模型检索时需要多个表的属性执行连接操作,数据写入时也需考虑外键约束,从而导致较大的额外开销,对性能有极高的要求。而图数据库则在处理复杂关系上有着天然优势,尤其在海量数据多对多的复杂实体联系场景中有着异常突出的表现,主要体现在性能、灵活性和敏捷性三个方面。
其次,图数据库是基于图模型以一种直观的方式存储和展示这些关系。因为是基于事物关系的模型表达,图因此也具有天然的可解释性。
目前,图数据技术因其在处理海量关联数据时的天然优势和符合人脑直观印象的展示形式正被应用在多个行业的生产环境和业务实践场景中。例如,数据集成(知识图谱)、个性化推荐、欺诈与威胁检测、风险分析与合规、身份(与控制权)验证、IT 基础 设施管理、供应链与物流、社交网络研究等,甚至于 AI 机器学习、NLP(自然语言处理)、区块链等新兴技术领域,你都可以看到图数据技术的身影。
上云的趋势在加速,对于弹性能力提出更高要求
根据 Gartner 的预计,云服务一直保持较快的增速和渗透率。大量的商业软件,正在从 10 年前完全私有本地逐步转向基于云服务的商业模式。云服务的一大优点是其提供了近乎无限的弹性能力,这也要求各种基于云基础设施的软件必须有更好的快速弹性扩缩容能力。
在此背景下,「悦数图数据库」作为国内领先的企业级原生分布式图数据库近日已正式入驻阿里云计算巢,与阿里云一起帮助更多企业用户更好地进行低成本、高效率的云上图数据库部署。
对于数据库产品的用户来说,底层基础设施的稳定性以及安全性至关重要。阿里云是国内领先的云计算提供商,拥有稳定的基础设施能力和安全性。此次「悦数图数据库」与阿里云计算巢的合作,可以通过阿里云计算巢更高效地利用底层资源的弹性扩缩容以及便捷的服务编排等能力,让客户可以更放心、更省心地使用基于云上的图数据库产品。
什么是云原生图数据库?
云原生,即云上内生的云能力,天然就“生于云,长于云”,基于统一的架构和云原生基础设施,实现多云/混合云解决方案、边云协同等能力。云原生时代下,企业应用数据的方式发生了根本性变化,即基于统一云基础设施的云原生数据库、大数据解决方案,将成为企业数字化转型的数据底座。
传统模式下,企业采购硬件资源,数据库部署在自建 IDC 并由企业监管和运维。企业的开发人员则采用 DevOps 模式或安排 IT 人员来管控数据库。接入业务后要时刻关注数据库集群状态来保障可用性,这对数据库内部实现不太了解的用户来说是个巨大的挑战。而云计算作为技术载体,天然具备跨越时空的优势,云技术正在从单一的计算能力发展为体系化的创新。对于企业来说,“上云”是一个技术选择、是企业数字化的起点,而基于云构建新的生产关系,打造新的业务增长引擎则是一个战略选择。
「悦数图数据库」是一个可靠的分布式、线性扩容、性能高效的图数据库,其 Shared-Nothing 和存储计算分离的底层架构让它具有了云原生的特征,可以有效降低成本和弹性扩缩容。而云端部署则屏蔽了数据库部署、性能调优、运维等繁杂过程,几分钟内就可以在云上创建一个图数据库,并快速扩展计算、存储等资源。
作为能够容纳海量关联数据并进行毫秒级查询延时的高性能图数据库产品,悦数图数据库已经被多家行业领先的科技和通信公司应用在反欺诈、风险控制、社区发现等场景,其中某头部互联网公司的 NLP 团队也基于悦数图数据库搭建了自己的图数据库平台,目前已经有 60 多条业务线接入使用,在智能助理、搜索召回等业务场景均已落地。
由于云厂商提供了统一的基础设施,企业无需自行采购硬件,还可以根据业务的灵活度和资源需求弹性调配云资源,实现快速上线。基于阿里云计算巢提供的 ROS(资源编排),悦数图数据库实现了云上自动化部署,几分钟内即可交付一个图数据库集群,相比传统以天、甚至以周为单位的交付周期,有极大的提升。
其次,悦数图数据库的计算巢版本支持包年包月与按量付费的灵活付费方式,节省新购设备、自建机房等一次性建设费用,当不再需要的时候可以及时销毁,显著降低了研发成本。为了进一步的优化体验,下一阶段,悦数图数据库还将结合自身在云上的优化特性和测试结果,陆续推出高性价比的云服务器规格套餐,让用户以更低的价格获得更高的性能,大家不妨也拭目以待一下。
架构高可用
悦数图数据库的集群包含三类服务,即 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 的分布式架构设计,共有三层,{BANNED}最佳底层是Store Engine,它是一个单机版 Local Store Engine,提供了对本地数据的get/put/scan/delete 操作,该层定义了数据操作接口,用户可以根据自己的需求定制开发相关 Local Store Plugin。
在 Local Store Engine 之上是 Consensus 层,实现了 Multi Group Raft,每一个 Partition 都对应了一组 Raft Group。
数据可靠性
悦数图数据库的数据存储使用阿里云的云盘产品。云盘是阿里云为云服务器 ECS 提供的数据块级别的块存储产品,具有低时延、高性能、持久性、高可靠等特点。云盘采用分布式三副本机制,为 ECS 实例提供极高的数据可靠性保证。
悦数图数据库采用存储与计算分离的架构。存储计算分离有诸多优势,{BANNED}最佳直接的优势就是,计算层和存储层可以根据各自的情况弹性扩容、缩容。存储计算分离还带来了另一个优势:使水平扩展成为可能,通过云上极致弹性能力,保障自身扩缩容需要。
悦数图数据库在集群部署时会创建两个弹性伸缩组,一个对应Graph 服务,另一个对应 Storage 服务。为了更好的扩缩容体验,我们做了以下考量:
除此之外,阿里云的弹性扩缩容提供了丰富的伸缩规则与定时任务能力,用户可以针对业务波动情况以及应用场景(OLTP 或者 OLAP)动态伸缩 Graph 节点,针对CPU平均使用率弹性扩容 Storage 节点。
悦数图数据库支持严格的角色访问控制和 LDAP(Lightweight Directory Access Protocol)等外部认证服务,能够有效提高数据安全性。当客户端连接到悦数图数据库(公有云)产品时,系统会创建一个会话,会话中存储连接的各种信息,如果开启了身份验证,就会将会话映射到对应的用户。
同时,悦数图数据库还内置了角色权限,用户可以把角色分配给创建的用户,从而实现访问控制。
目前,悦数图数据库与阿里云计算巢正在开展限时免费试用活动,需要试用的用户登录到阿里云计算巢后,先申请试用权限,填写信息审批通过后,就可以看到一个完全白屏化的服务创建页面。
在引导步骤里填写必须的配置参数,一键提交后等待 5 分钟左右即可体验悦数图数据库的各种功能,大大降低了用户部署数据库的门槛。
欢迎有兴趣的小伙伴跳转阿里云计算巢官网,体验云上超大规模的图数据库服务。