概述
分区是指根据特定方案将逻辑上的一个大表分成较小的物理片区。基于该逻辑的表称为分区表,物理片区称为分区。数据不存储在较大的逻辑分区表上,而是这些较小的物理分区上。
执行以下步骤在数据库中定义表:
- 在“对象浏览器”窗格中,右键单击“普通表”,选择“创建分区表”。
- 定义基本表信息,如表名称、表类型等。详情请参见基本信息。
- 定义列相关信息,如列名、数据类型模式、数据类型、列约束等。详情请参见定义列。
- 选择表数据分布信息。详情请参见更改分区顺序。
- 为不同约束类型定义列约束。约束类型包含主键(PRIMARY KEY)、唯一(UNIQUE)、检查(CHECK)。详情请参见定义表约束。
- 定义表索引信息,如索引名称、访问方法等。详情请参见定义索引。
- 定义表的分区信息,如分区名称、分区列、分区值等。详情请参见定义分区。
在“SQL预览”页签,可以查看输入所自动生成的SQL查询。详情请参见SQL 预览。
- 如果要在“创建分区表”对话框的“列”页签添加列注释信息,则在“设置列描述(最多5000个字符)”文本框中进行输入,之后单击“添加”。
有关填写以下字段的详情,请参见提供基本信息。
- 表名
- 模式
- 选项
- 表描述
有关填写其他字段的详情,请参见如下内容:
- 从“表存储方式”中选择表存储方式。
如果表存储方式选择为ORC,则会创建一个HDFS分区表。
- 在“ORC版本”中输入ORC版本号。该字段仅适用于HDFS分区表。
- 提供有关表的基本信息后,单击“下一步”以定义表的列信息。
下表列出了每个分区表支持的字段:
表1 支持的字段 字段名
行分区
列分区
ORC分区
表类型
x
x
x
如果不存在
√
√
√
带OIDS
x
x
x
填充因子
√
x
x
下表列出了每个分区类型表的支持字段:
字段名 |
行分区 |
列分区 |
ORC分区 |
---|---|---|---|
阵列维度 |
√ |
x |
x |
数据类型 |
√ |
x |
x |
非空 |
√ |
√ |
√ |
默认 |
√ |
√ |
√ |
唯一 |
√ |
x |
x |
检查 |
√ |
x |
x |
定义分区
下表列出了各分区类型表支持的字段/选项:
字段/选项名 |
行分区 |
列分区 |
ORC分区 |
---|---|---|---|
分区类型 |
按范围 |
按范围 |
按值 |
分区名 |
√ |
√ |
x |
分区值 |
√ |
√ |
x |
按照以下步骤定义表的分区:
- “一般”页签中,如果“表存储方式”选择为“ROW”或“COLUMN”,则“分区类型”区域会显示“By Range”。如果“表存储方式”选择为“ORC”,则“分区类型”区域会显示“By Values”。
- 从“可用列”区域选择用于定义分区的列,单击。
该列会移动到“分区列”区域。
- 如果“表存储方式”选择为“ROW”或“COLUMN”,则仅能选择一列用于分区。
- 如果“表存储方式”选择为“ORC”,则最多可选择四列用于分区。
- 最多可选择4列用于定义分区。
- 在“分区名称”中输入分区的名称。
- 单击“分区值”旁的。
- 在“值”列中输入要对表进行分区的值。
- 单击“确定”。
- 输入分区的所有信息后,单击“添加”。
- 定义所有分区后,单击“下一步”。
您可以对行或列分区表的已有分区执行以下操作。以下操作不适用于ORC分区表:
定义索引
有关索引定义详情,请参见定义索引。
字段/选项名 |
行分区 |
列分区 |
ORC分区 |
---|---|---|---|
唯一索引 |
√ |
x |
x |
btree |
√ |
√ |
x |
gin |
√ |
√ |
x |
gist |
√ |
√ |
x |
hash |
√ |
√ |
x |
psort |
√ |
√ |
x |
spgist |
√ |
√ |
x |
填充因子 |
√ |
x |
x |
用户自定义表达式 |
√ |
x |
x |
部分索引 |
√ |
x |
x |
选择数据分布
有关选择分布类型的详情,请参见选择数据分布类型。
选项名 |
行分区 |
列分区 |
ORC分区 |
---|---|---|---|
默认分布 |
√ |
√ |
x |
Hash |
√ |
√ |
√ |
Replication |
√ |
√ |
x |