- SAP HANA 管理员教程
- SAP HANA 管理员 - 首页
- SAP HANA 管理员 - 概述
- 架构概述
- 多租户数据库
- 多个主机系统
- 工具
- 驾驶舱
- 工作室
- SAP HANA 管理员 - 系统管理
- 多租户数据库容器管理
- 启动 HANA 系统
- 停止 HANA 系统
- 许可证密钥
- 监控 HANA 系统
- SAP HANA 管理员 - 表管理
- SAP HANA 管理员 - 表分区
- SAP HANA 管理员 - 表复制
- 数据压缩
- Solman 集成
- SAP HANA 管理员 - 生命周期管理
- 保护 HANA 系统
- 用户配置
- 身份验证方法
- 审计活动
- 备份 HANA 系统
- 恢复 HANA 系统
- HANA XS 应用服务
- 数据供应
- 智能数据访问
- 新建远程系统连接
- 与 Hadoop 集成
- 关键命令
- 工作职责
- SAP HANA 管理员有用资源
- SAP HANA 管理员 - 快速指南
- SAP HANA 管理员 - 有用资源
- SAP HANA 管理员 - 讨论
SAP HANA 管理员 - 表分区
使用分区,您可以将列存储表分割成多个主机系统中的较小表。您甚至可以使用分区将表划分为更小、更易于管理的部分。分区可以使用 DML SQL 语句完成。
当表被分区时,它包含每个部分的不同行集,并且可以基于不同的算法进行分区——哈希分区、单级或多级分区。
以下是使用表分区的好处:
分区剪枝
您可以确定是否可以在特定分区中分析查询。使用此方法,您可以减少系统负载,从而提高响应时间。
示例 - 当您基于年份对表进行分区时,将执行查询以分析特定年份的数据。您可以使用特定分区,从而提高查询性能。
负载均衡
您可以将各个分区划分为多个主机,因此查询不会由单个服务器处理,从而在所有托管表分区的服务器上实现更好的负载均衡。
大小限制
在列存储表中,可以输入的最大行数约为 20 亿。您可以通过将列表的行分布在多个分区上来克服此问题,因此每个分区的尺寸限制增加到 20 亿。
改进的增量合并操作
在增量合并期间,如果仅修改某些分区的数据,则需要在增量合并中合并较少的分区。
查询的并行处理
使用分区,您可以并行运行多个查询,从而提高响应时间。
现在让我们讨论分区类型。
单级分区
SAP HANA 系统中提供了不同类型的单级分区:
- 哈希分区
- 循环分区
- 范围分区
在哈希分区中,行均匀分布以执行负载均衡。在此分区类型中,您不需要有关表内容的详细信息。
与哈希分区相比,在循环分区中,行均匀分布到每个分区,新行均匀分配到每个分区。
要使用循环分区创建表的 4 个分区,您可以使用以下 SQL 查询。不应定义主键。
CREATE COLUMN TABLE TABLENAME (a INT, b INT, c INT) PARTITION BY ROUNDROBIN PARTITIONS 4
此命令将创建表的 4 个分区。
CREATE COLUMN TABLE Table_Name (a INT, b INT, c INT, PRIMARY KEY (a,b)) PARTITION BY HASH (a, b) PARTITIONS 4
这将在列a和b上创建 4 个分区,您需要指定至少一列。
范围分区
在范围分区中,您为某些值创建专用分区,并且您应该对分区列的表内容有深入的了解。
示例 - 为每个日历月份创建一个分区。
CREATE COLUMN TABLE TABLE_NAME (a INT, b INT, c INT, PRIMARY KEY (a,b)) PARTITION BY RANGE (a) (PARTITION 1 <= VALUES < 10, PARTITION 10 <= VALUES < 20, PARTITION VALUE = 50, PARTITION OTHERS)
这将创建 4 个分区,第一个分区范围为 1 到 10,第二个分区范围为 10 到 20,第三个分区值为 50,第四个分区为所有其他值。
多级分区
在多级分区中,您可以克服 HASH 和 RANGE 单级分区的限制,以使用关键列作为分区列。使用多级分区,您可以对不是主键的列进行分区。最常见的多级分区类型是HASH-Range 分区。
在 Hash-Range 多级分区中,您在第一级实现哈希分区以实现负载均衡,在第二级实现范围分区以实现基于时间的分区。
CREATE COLUMN TABLE Table_name (a INT, b INT, c INT, PRIMARY KEY (a,b)) PARTITION BY HASH (a, b) PARTITIONS 4, RANGE (c) (PARTITION 1 <= VALUES < 10, PARTITION 10 <= VALUES < 20)
您可以使用循环分区代替在第一级使用哈希分区,这被称为循环-范围多级分区。
CREATE COLUMN TABLE Table_name (a INT, b INT, c INT) PARTITION BY ROUNDROBIN PARTITIONS 4, RANGE (c) (PARTITION 1 <= VALUES < 10, PARTITION 10 <= VALUES < 20)