计算节点
计算节点是负责执行数据处理和查询计算的节点。计算节点通常负责解析查询请求,执行数据库操作,进行数据的聚合、过滤、排序等计算操作,并最终返回查询结果。计算节点是数据库系统中的核心部分,负责处理客户端的查询请求,执行查询操作,以及在分布式环境下协调不同存储节点的数据处理。
存储节点
存储节点是负责存储实际数据的节点。在分布式数据库中,数据通常被水平拆分成多个数据分片,然后存储在不同的存储节点上。每个存储节点承担一部分数据,以实现数据的水平扩展,提高系统的性能和可伸缩性。
分片
分片(又称Sharding)是一种在分布式数据库中水平划分数据的概念。它将数据库中的数据拆分成多个较小的逻辑片段(也称为分片或分区),然后将这些分片分散存储在不同的存储节点上,以实现水平扩展和分布式存储。
schema
概念
schema即逻辑库,在后续介绍中将统称为schema,它类似于传统单体数据库中的数据库,是一个逻辑上的数据库容器。schema是多个数据库分片的集合。
介绍
- 对实际应用来说,并不需要知道分布式数据库中间件的存在,应用开发人员只需要知道数据库的概念,所以分布式数据库中间件可以被看做是一个或多个数据库集群构成的逻辑库。
- DRDS实例的schema,包括所有逻辑表、分片规则、全局序列等数据,schema切分后形成多个分片,分布在多个存储节点上。
逻辑表
概念
既然有逻辑库,那么就会有逻辑表,对实际应用来说,所操作的表就是逻辑表。逻辑表,可以是数据切分后分布多个分片中,也可以不做切分存放在单个分片中。
介绍
在分布式数据库中逻辑表包括:单片表、分片表、全局表、库内分表和库内分桶五种类型的表。
- 单片表
一个数据库中并不是所有表都很大,某些表是可以不用进行切分的,单片表是相对分片表来说的,就是指那些不需要作数据切分的表。 - 分片表
分片表,是指那些原有很大数据量的表,需要切分到多个数据库的表中,这样,每个分片都有一部分数据,所有分片构成完整的数据。 - 全局表
在业务系统中,往往存在大量的类似字典表的数据库表,这类表的数据量一般较小,变化不频繁,如:字典、配置、工号、机表、区域等,分布式数据库中将这类表定义为全局表,即在每个库都保存一份数据,解决跨库关联查询问题。
全局表的特点:- 不频繁, 数据量总体变化不大。
- 数据规模不大,很少有超过数十万条记录。
- 全局表的插入、更新操作会同步在所有节点上执行。
- 全局表的查询操作,只需从一个节点获取。
- 全局表可以跟任何一个表进行JOIN 操作。
- 库内分表
对于某些存放巨量数据的大表,即使按照分片规则将数据分布到多个分片后,在每个分片的数据量还是非常巨大。对于这种类型的表,可以在分片表的基础上,在同一个库内再次按照一定的算法进行分表,我们把这类表称为库内分表。 - 库内分桶
库内分桶也是分布式数据库中的一种分片策略,指将单个数据库中的一个表按照某种哈希算法或其他分桶策略划分为多个桶(Bucket),然后将这些桶存储在不同的存储节点上。每个存储节点负责处理其中的一部分桶。这种分片策略主要针对表中的数据行进行划分,通常是通过对数据行的某个属性进行哈希计算,然后根据哈希值决定该行属于哪个桶。
标准库
概念
标准库存放内部管理数据,对应用是透明无感的,应用无需知道标准库的存在。
作用
- 存放库表结构,分库上的表结构以标准库的为准。
- 管理命令与库表结构相关的都发送到标准库执行。
- 对于可以随机发送到任意分片执行的SQL语句,统一发送到标准库执行,如:获取服务器时间 select now()。
- 在标准库中创建全局序列最大值备份表,用于备份全局序列当前的最大值。
全局序列
序列
序列,即SEQUENCE,是序列号生成器,可以为表中的行自动生成序列号,产生一组等间隔的数值(类型为数字)。其主要的用途是生成表的主键值,可以在插入语句中引用,也可以通过查询检查当前值,或使序列增至下一个值。
全局序列
全局序列用来生成全局唯一ID(类型数字),可用于代替单机的AUTO_INCREMENT、主键、唯一键。在分布式数据库场景下,一个逻辑库对应了多个物理数据库分片,逻辑库表的主键要求在所有物理库分片上都唯一,这样用数据库本身的机制生成序列号就无法满足业务的需求了,为此分布式数据库实现了全局唯一的序列号生成器,简称全局序列。
全局序列的使用与oralce的sequence使用类似,先创建好sequence,再通过select xxx.nextval 获取序列值。
注意为保证序列获取的效率,节点会缓存一段序列,这样在一个集群中存在多个节点的情况下不能保证序列是严格递增的。
子网
云资源(例如云服务器、物理机等)必须部署在子网内。您可以在虚拟私有云内创建一个或多个子网,但是子网的网段必须在虚拟私有云网段范围内。同子网内网络默认互通,同VPC下不同子网之间默认互通。子网网段创建后无法修改。
安全组
安全组是一种网络安全防护机制,用于防止未经授权的访问和保护计算机网络免受恶意攻击。它是一种虚拟防火墙,用于限制入向和出向网络流量。安全组工作在网络层和传输层,它通过检查数据包的源地址、目标地址、协议类型和端口号等信息来决定是否允许通过。安全组创建后,用户可以在安全组中定义各种访问规则,当弹性云主机加入该安全组后,即受到这些访问规则的保护。
区域和可用区
我们用区域和可用区来描述数据中心的位置,您可以在特定的区域、可用区创建资源。
区域(Region)指物理的数据中心。每个区域完全独立,这样可以实现最大程度的容错能力和稳定性。资源创建成功后不能更换区域。
可用区(AZ,Availability Zone)是同一区域内,电力和网络互相隔离的物理区域,一个可用区不受其他可用区故障的影响。一个区域内可以有多个可用区,不同可用区之间物理隔离,但内网互通,既保障了可用区的独立性,又提供了低价、低时延的网络连接。
下图阐明了区域和可用区之间的关系。
目前,天翼云已在全国多个地域开放,您可以根据需求选择适合自己的区域和可用区。更多信息请参见天翼云产品部署看板 。