全部产品

分析型数据库MySQL版2.0名词解释

更新时间:2019-07-11 14:43:09

分析型数据库MySQL版有数据库、ECU、表组、表和分区等概念。

数据库

数据库是分析型数据库MySQL版最高层的对象,按数据库进行资源的分配和管理。每个数据库独享一个服务进程,实现用户间资源的隔离。分析型数据库MySQL版中数据库的概念又称之为实例,通常说的一个分析型数据库MySQL版数据库就是一个实例,一个实例由若干个ECU节点组成。

ECU

弹性计算单元(Elastic compute units 简写ECU)是分析型数据库MySQL版用来衡量实例计算能力的元单位。一个数据库由若干个同一类型的ECU节点组成,例如数据库A,可能由4个C8组成,或者6个S2N组成,每个ECU节点配备有固定的磁盘和内存资源。

表组

表组是一系列可发生关联的数据表的集合,分析型数据库MySQL版为了管理相关联的数据表,引入了表组的概念。表组类似于传统数据库schema的概念,分析型数据库MySQL版表组分为两类:

  • 维度表组(系统自带)

    自带维度概念的表(例如省份表、银行表等),可以放到维度表组下。

  • 普通表组

    一般会把需要关联的普通表放在相同普通表组中,建议这个表组中的所有普通表的一级分区数一致,join性能会有很大提升。

在表组之下是表的概念,分析型数据库MySQL版提供两种类型的表:

  • 维度表

    带有维度概念的表(例如银行表),又称为复制表。默认每个ECU节点放置一份全量的维度表数据,所以维度表可以和任何普通表进行关联。由于维度表会消耗更多的存储资源,所以维度表的数据量大小有限制,一般要求维度表单表不超过100万行。

  • 普通表

    普通表就是分区表,为充分利用分布式系统的查询能力而设计的一种表。普通表默认是指一级分区表,如果有增量数据导入需求,可以创建二级分区表。

分区

普通表才有分区的概念,分析型数据库MySQL版支持两级分区策略:一级分区采用hash算法,单表数据量在60亿以内,我们推荐您使用一级分区,通常一级分区已足够。二级分区采用list算法,二级分区部分见最佳实践章节。

主键

分析型数据库MySQL版的的表必须包含主键字段,通过主键进行记录的唯一性判断。主键由业务id、一级分区键组成,有些情况业务id与一级分区相同。对于记录量特别大的表,从存储空间和insert性能考虑,一定要减少主键的字段数。

示例

以一个电商公司购买了一个分析型数据库MySQL版Trade为例,帮助您理解上述概念。

  1. 客户在阿里云购买1个名为Trade的分析型数据库MySQL版(也称之为1个ADS实例),如图所示,Trade由4个C4节点构成。

    示例

  2. C4是一种ECU规格,我们还提供C8,S2N,S8N三种不同规格的ECU。

  3. 数据库Trade下面可以规划多个表组(类似Schema概念),不同表组用于存放不同的业务表。

  4. Trade数据库创建完毕后,系统会默认创建一个维度表组,所有维度相关的表,可以放到维度表组下。普通表按照上述第3点的规则来管理。