3.1 节点/数据库/表/分区/二级分区

1.节点

在HybridDB for MySQL中,节点是一个资源单位(比如当前C2规格对应:8core 32GB memory 720GB ssd)。 当前在阿里云的控制台中最多能够购买64个节点,如果有需要更多节点可以通过购买后再扩容的方式完成 HybridDB for MySQL的存储容量和计算性能随着节点的增加可以做到线性扩展。

2. 数据库

在HybridDB for MySQL中,数据库是用户的逻辑概念,用户create database或者通过阿里云控制台自动建好的数据库(比如 hdb_test) 是一个逻辑库,在后端是会被切分成多个物理分库(shard),这些物理分库对于用户是不可见的。这就是通常说的分库分表(sharding)技术。 通过sharding技术,可以将用户数据打散到多个节点上,这样可以利用分布式的特性来进行并行计算,极大的提升性能。

3. 表

  • 在HybridDB for MySQL中,用户建的表也是一个逻辑的概念,会根据分区key拆分到不同的分库中,每个分表就是通常我们所说的表的分区。对于用户来说,分区不可见,用户只需要需要指定合适的分区键即可。

4. 分区表(一级分区)

  • HybridDB for MySQL中的表从建模的维度看,可以分为事实表(fact table)和维度表(dimension table), 事实是指分区表(通常是一级分区表),即需要被拆分到不同节点去存储的表,在建表的时候指定分区键就可以了。 维度表是指冗余表/广播表,通常存储维度信息比如城市信息表,部门表等类似,维度表的行数一般在10000行以内为宜;维度表会被冗余存储到每个节点中,有利于分布式join的性能提升,也是OLAP的常用优化手段。

5. 二级分区

HybridDB中表按照分布键进行一级分区后(变为事实表),可以再按照比如时间维度进行二级分区。举个历史交易分析的场景,通常分区键设置为交易id(trad_id), 二级分区键设置为日期。这样就可以存储比如一个月或者一年的周期数据进行实时分析计算。一级分区将表切分为shard(分片),二级分区则是在每个shard内再进行分区。 目前HybridDB只支持最多两级分区。

results matching ""

    No results matching ""