什么是数据库/表组/表/分区?-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

什么是数据库/表组/表/分区?

2017-10-31 11:27:16 1782 0

在传统的关系数据库系统中,表隶属于某个数据库。而分析型数据库为了方便的进行数据的关联的管理,以及进行资源分配,引入了表组的概念。
数据库

  • 在分析型数据库中,数据库是用户和系统管理员的管理职权的分界点。
    系统管理员:可管理的最小范围即数据库粒度的参数,但未经授权无法查看和管理数据库内部的结构和信息。

  • 用户:对于数据库级别的参数,默认只能查看而不能修改。

在分析型数据库中,一个数据库对应一个用于访问的域名和端口号,同时有且只有一个onwer即数据库的创建者。分析型数据库是以数据库为粒度对用户的宏观资源进行配置,因此创建数据库时用户需要输入业务预估的QPS、数据量、Query类型等信息用于智能的判断初始的资源分配。分析型数据库的用户不能直接通过CREATE DATABASE的DDL语句创建数据库,只能通过DMS控制台界面来创建需要的业务数据库。
表组
表组是一系列可发生关联的数据表的集合。分析型数据库采用关系模型存储数据,也就是使用二维表来进行数据的组织和存储。分析型数据库为了管理相关联的数据表,引入了表组的概念。
  • 表组是数据库的下一级实体,也是表的上一级。
  • 在分析型数据库中一个表必须从属于一个表组。

分析型数据库中表组分为两类:维度表组和普通表组。
  • 维度表组,用于存放维度表,目前有且仅有一个,在数据库建立时会自动创建(表组名称:”数据库名_dimension_group”),用户不可修改和删除。(维度表特征上是一种数据量较小但是需要和任何表进行关联的表。)
  • 普通表组,有如下特征:表组是数据物理分配的最小单元,数据的物理分布情况通常无需用户关心,但是数据的副本数必须在表组上进行设定,一个表组所有表副本数一致。注:副本数指数据在分析型数据库中同时存在的份数。
  • 同一个表组内的普通表才能进行快速的hashjoin。(0.9版本之前分析型数据库对普通表仅支持同表组内join。0.9.5版本后支持不同普通表组内的普通表进行join)
  • 一个表组的表可以共享一些配置,例如查询超时时间,如果表组中的单表也进行了这些配置的个性化,那么进行表关联时会通表组级别的配置进行覆盖。
  • 一个表组中的所有表的一级Hash分区的分区数建议一致,但非强制性要求。


分析型数据库中表分为维度表和普通表,普通表也称实时表或分区表。
  • 维度表可以和任意表组的任意表进行关联,并且创建时不需要配置分区信息,但是对单表数据量大小有所限制,并且需要消耗更多的存储资源。(一般要求维度表单表不超过1000万)
  • 普通表创建时至少要指定一级分区列和相关分区信息,并且指定存放在一个表组中。

分区
在分析型数据库中,维度表无分区,普通表的分区目前最多为两级。
分区种类有Hash分区和List分区两种。目前分析型数据库支持将普通表的一级分区设置为Hash分区,二级分区设置为List分区,即可支持 Hashjoin又可支持增量数据导入。

  • Hash分区是根据导入数据时已有的一列的内容进行散列后进行分区的,目前多张事实表进行快速的HashJoin时JoinKey必须有分区列参与,同时这些表的Hash分区数必须一致。仅采用Hash分区的数据表,在数据装载时,将进行全量覆盖历史数据。
    注:0.9版本之前,不支持事实表在没有Hash分区键参与关联条件的情况下进行关联,0.9.5版本后,通 过Full MPPMode或小表广播进行计算时无此限制,关于 join的详细内容请看《多计算引擎和Hint》章 节。

  • List分区是根据导入操作时所填写的分区列值来进行分区的,即一次导入的数据会进入同一个List分区中,因此List分区是支持增量的数据导入的。
    注:无论采用何种分区形态,分析型数据库均不需要在用户查询时指定分区列,但是指定分区列或分区列的范围进行查询可能会提高查询性能。

根据表的更新方式不同,分析型数据库的表分为离线批量更新的表和实时更新的表:
  • 离线批量更新的表,适合从离线系统如MaxCompute(原ODPS)产出的数据结果导入到分析型数据库供在线系统使用。
  • 实时更新的表,可以直接insert/delete单条数据,适合业务系统直接写入数据,不支持odps批量load。

注意,分析型数据库不支持读写事务,并且数据实时更新时一分钟左右才可查询,另外在一致性方面分 析型数据库遵循最终一致性。
取消 提交回答
全部回答(0)
相关问答

18

回答

【大咖问答】对话PostgreSQL 中国社区发起人之一,阿里云数据库高级专家 德哥

阿里ACE 彭飞 2019-07-10 09:36:10 1042201浏览量 回答数 18

145

回答

【新手入门】云服务器linux使用手册

fanyue88888 2012-11-26 17:14:18 157721浏览量 回答数 145

8

回答

OceanBase 使用动画(持续更新)

mq4096 2019-02-20 17:16:36 337043浏览量 回答数 8

38

回答

[@饭娱咖啡][¥20]对于慢sql有没有什么比较实用的诊断和处理方法?

江小白太白 2018-10-30 18:47:38 142100浏览量 回答数 38

110

回答

OSS存储服务-客户端工具

newegg11 2012-05-17 15:37:18 295589浏览量 回答数 110

22

回答

爬虫数据管理【问答合集】

我是管理员 2018-08-10 16:37:41 147255浏览量 回答数 22

2

回答

mySQL数据库报错You have an error in your SQL syntax

落地花开啦 2016-02-14 16:09:24 128972浏览量 回答数 2

38

回答

安全组详解,新手必看教程

我的中国 2017-11-30 15:23:46 259860浏览量 回答数 38

21

回答

请教一下数据量有100万条左右要什么配置?

易网网络 2013-03-27 15:18:02 192649浏览量 回答数 21

2

回答

区域选择帮助

fanyue88888 2012-12-07 15:54:30 204409浏览量 回答数 2
+关注
716
文章
646
问答
问答排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载