水平分表

栏目:云苍穹知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

水平分表

 简介

当系统使用到一定阶段,有些表单会累积大量数据,对应的表行数超多,影响使用。 这个时候可以将数据量大的表按照一定的规则拆分成多个结构相同的表,将数据分散到拆分出来的表中,也就是水平分表。

适用版本

苍穹在V4.0.009后提供一站式水平分表解决方案,对大数据量的表单进行水平切分存储,以减少单个物理表的数据量,提高增删改查性能。

苍穹水平分表是在 SQL 层支持的,对代码无入侵,即表单是否分表对开发、功能使用没有影响。可在系统运行期动态对表单进行分表,表单内 ER 关系表行数据跟随表头行自动切分。在编写应用程序时,依旧使用原始表名(逻辑表)进行访问。

功能速览

菜单路径: 系统服务云-->配置工具-->水平分表,含三类功能:分片配置、分片操作日志、分片辅助(数据统计)

分片配置

配置表单的分片属性、分片策略及策略参数。启用分表后,系统会自动做数据迁移,即把原始的表数据拆分到分片表中。数据迁移过程中,其表单数据是不可访问的,系统会有提示信息。              

配置编辑界面:数据迁移操作,分表别名信息查询,条件的分片计算功能。

日志与性能

在线数据迁移操作日志,记录每次数据迁移操作(分片、恢复),可用于查询过程中出现的异常信息,如服务节点无响应(宕机)。             

分片指标采集:采集 SQL 执行指标(分片数量、分片定位条件)。

分片辅助

提供分片辅助功能。          

离散度计算:计算数据按某属性的分布情况。              

数据量统计:统计表单物理表的数据量,变化趋势图展示。                

分片语句生成器: 对逻辑表进行 SQL 操作, 生成所涉及的分片表的 SQL 操作。

亮点价值

苍穹水平分表主要特性:

1.   适配苍穹领域模型:多级关联(4 级:表头-分录-子分录-扩展表),理论上不限级别。

2.   分片策略:多属性分片、多种分片策略。

3.   内置 PK 索引、自定义全局索引。

4.   支持最大限度分片条件定位: =、!=、>、>=、<、<=、in、not in、between and、like、 not like。

5.   支持大部分 SQL 特征:union、union all、order by、distinct、top、sum、 count、min、max 等。

6.   支持分片 SQL Hint:适配优化 。

7.   支持更新分片属性。

8.   自适应并发查询。

9.   在线数据迁移与管理。

10. 分布式运行:缓存、锁、表缓存版本等。

11. 支持多种数据库:目前支持 MySQL、Oracle、PostgreSQL。

12. 辅助功能:按条件计算分片、表名映射、操作日志、数据量统计、指标采集与监控 。

使用限制

1.   不支持方言 SQL (/dialect/前缀)。

2.      不支持 SQL: avg、 having、 exists。

3.      不支持此类 update 操作: update A set ... select from B...,其中 A 为非分片表, B为分片表。 (若 AB 为同一表单的分片表, 则允许, 产生 SQL 语句规则: AB 使用相同分片索引)

分片属性选择

一个或多个切分表数据所依据的列,叫“分片属性”,选择的分片属性一般需要符合以下特征之一:

    1). 具有隔离性,大部分场景作为必选的过滤条件,如组织、期间。

    2). 具有时序性,数据按时序累积分布,如业务日期、期间。

    3).具有固定性,不常更新、必录项。

    因数据会随着使用时间累积增长,应尽可能选择含与时序相关的属性。分片属性通常选择为为 1 个或 2 个(组合),属性仅限为表头主表的属性,不可选扩展表属性。

分片策略选择

     列的规则即对列数据的值按一定的算法计算出分片表索引,这种规则算法叫“分片策略”,苍穹提供了五类分片策略。选择建议:映射策略和日期策略可覆盖大部分的使用场景,单属性分片且为日期类型时,选用日期策略,其余选择映射策略。

分片策略

使用场景

备注

映射策略

任意列类型

单、多属性分片

万能策略

日期策略

日期列类型

单属性分片

按日分片

按月分片

按年分片

日期哈希分片

ID时序策略

Long类型的主键

引用属性

从ID值中获取创建时间,做日期分片用。

哈希取莫策略

任意列类型

单、多属性分片

数据分布在预设的N张分表中。

自定义策略

以上策略不能满足的情况

用户自定义,配置类路径关联。

 

分片配置

1. 启用

       苍穹分表引擎默认未开启,如需使用需要设置参数启用:在MC中配置分表引擎启用参数xdb.enable=true,发布,然后重启苍穹。

2. 分片操作步骤

    1). 打开分片配置(列表),点击新增。

    2). 弹出对话框, 选择需要分片的表单,确认。

    3). 进入分片配置主界面,依次设置: 分片属性、分片策略、分片策略参数。

    4). 点击启用分片,将弹出分片任务,系统执行数据迁移。

    5). 迁移完毕,则分表完成,表单可正常使用。

小结

本文介绍了苍穹水平分表的功能特性,对分表的三个重要名词分片属性、分片策略及分片配置做了讲解,最后提供了一个分表案例方便大家参考。当然苍穹水平分表的还有众多的企业级特性未做详细讲解,在后续的文章中我们会继续讲解。


水平分表

简介当系统使用到一定阶段,有些表单会累积大量数据,对应的表行数超多,影响使用。 这个时候可以将数据量大的表按照一定的规则拆分成多...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息