Oceanbase数据库的表组

关于表组

表组(Table Group)是一个逻辑概念,表示一组表的集合。默认情况下,不同表之间的数据是随机分布的,没有关系。通过定义表组,可以控制一组表在物理存储上的邻近关系。

在 V3.x 版本中,表组为定义了分区的表组,其加入的表要求与表组的分区方式完全一致,限制了表加入表组,有较强的约束性;从 V4.2.0 版本开始,表组没有了分区概念,只需要定义 SHARDING 属性,就可以很灵活的将不同分区方式的表加入,如果想要限制别的表加入表组,可以修改表组的属性,表组管理更灵活。

对于 SHARDING 属性的表组,根据 SHARDING 属性值的不同,主要可以分为以下两大类:

  • SHARDING = NONE 的表组:此类表组内的所有表的所有分区均聚集在同一台机器上,并且不限制表组内表的分区类型。

  • SHARDING 不为 NONE 的表组:此类表组内每一张表的数据会打散分布在多台机器上。为了保证所有表的数据分布相同,还要求表组内所有表的分区定义一致,包括分区类型、分区个数、分区值等。系统会调度具有相同分区属性的分区聚集(对齐)在同一台机器上,从而实现 Partition Wise Join。

    SHARDING 不为 NONE 的表组,又分为以下两种:

    • SHARDING = PARTITION 的表组:表组内每一张表的数据按一级分区打散,如果是二级分区表,则一级分区下的所有二级分区聚集在一起。

      分区要求:所有表的一级分区的分区定义相同;如果是二级分区表,也只校验一级分区的分区定义。因此,一级分区表和二级分区表可以同时存在,只要这些表的一级分区的分区定义相同即可。

      分区对齐规则:具有相同一级分区值的分区聚集在一起,包括:一级分区表的一级分区和二级分区表对应一级分区下的所有二级分区。

    • SHARDING = ADAPTIVE 的表组:表组内每一张表的数据根据自适应方式打散。即,如果表组内的表是一级分区表,则按一级分区打散;如果表组内的表是二级分区表,则按每个一级分区下的二级分区打散。

      此类表组内表的分区要求及分区对齐规则如下:

      • 分区要求:表组内的表全部是一级分区表或者全部是二级分区表。如果是一级分区表,则要求一级分区的分区定义相同;如果是二级分区表,则要求一级分区和二级分区的分区定义都相同。

      • 分区对齐规则:如果表组内的表全部是一级分区表,则一级分区值相同的分区聚集在一起;如果表组内的表全部是二级分区表,则一级分区值和二级分区值均相同的分区聚集在一起。

基于表组的分区均衡

OceanBase 数据库依据表组的 SHARDING 属性,相应地划分表组内表和分区的均衡组,并基于均衡组进行组内均衡和组间均衡,达到不同表、分区的聚合与均衡的目的。

基于表组(Table Group)的 SHARDING 属性进行组内均衡的策略:

相关推荐
梦想的旅途223 分钟前
企业微信Webhook回调怎么做自动回复和AI客服
数据库·机器人·自动化·企业微信·rpa
Zguigo36 分钟前
OCR 核心原理 + 模型 + 检测与识别
数据库·ocr
凤山老林38 分钟前
零停机数据库演进:Spring Boot 集成 Flyway 与平滑DDL变更策略
数据库·spring boot·后端
曹牧1 小时前
Oracle:取固定分隔符字符串中第一个元素
数据库·oracle
szarron1 小时前
VNA6 便携式矢量网络分析仪:从入门到精通
数据库·嵌入式硬件·测试工具·5g·射频工程
临床数据科学和人工智能兴趣组2 小时前
R语言中,列表是一种非常灵活的数据结构,它可以存储不同类型的对象,如向量、矩阵、数据框、甚至其他列表
数据结构·数据库·r语言·r语言-4.2.1·临床试验
cmes_love2 小时前
期货五档Level2行情数据和分钟历史行情数据下载分析
数据库
某不知名網友2 小时前
MySQL数据库库级操作|创建、字符集、修改删除、备份恢复
数据库·mysql
zone_z3 小时前
Oracle 数据库基础故障排查系列(12 篇)
数据库·oracle·dba·troubleshooting·blog-series
DBA_G3 小时前
GBase 8a数据库RANGE分区操作详细解读
数据库·oracle