美文网首页
HANA 三种表分区

HANA 三种表分区

作者: 折耳根儿 | 来源:发表于2019-07-11 11:04 被阅读0次

       SAP HANA提供了三种分区方式:Hash分区、Range分区以及Roundrobin分区。前两者是针对某个或联合字段进行分区,区别在于hash分区是对字段的哈希值进行分区,而range分区则是定义了字段的取值范围。一般来说,如果涉及到年月日时间字段的数据,可以考虑通过Range分区,将数据划分到月或日的区间内;如果例如客户ID号这样的字段数据,可以考虑Hash分区,在真实系统中,ID号这样的自增数字字段,按照Hash值划分在可以达到较好的均匀分布。Roundrobin则是针对整张表记录进行随机划分,将数据按记录条数均匀分配到分区之中。

Range Partitioning 范围分区

按时间分区,字段是主键

ALTER TABLE  schema.tablename

PARTITION BY RANGE ("DAY_ID")

(PARTITION '20170101' <= VALUES < '20180101',

  PARTITION '20180101' <= VALUES < '20190101',

  PARTITION '20190101' <= VALUES < '20200101',

  PARTITION '20200101' <= VALUES < '20210101',

  PARTITION '20210101' <= VALUES < '20220101',

  PARTITION '20220101' <= VALUES < '20230101',

  PARTITION OTHERS)

--修改-删除分区:

ALTER TABLE mytab ADD PARTITION OTHERS

ALTER TABLE mytab DROP PARTITION OTHERS

查看表分区情况:

select * from sys.M_CS_PARTITIONS where table_name = ''

哈希分区(HASH partitioning):

CREATE COLUMN TABLE TEST_HASH_PARTITION_2 (a INT, b INT, c INT, PRIMARY KEY (a,b)) PARTITION BY HASH (a, b)    PARTITIONS 4;

select * from sys.m_cs_partitions where table_name='TEST_HASH_PARTITION_2';

分区数是由数据库引擎在运行时根据其配置来决定:

CREATE COLUMN TABLE TEST_HASH_PARTITION (A INT, B INT, C INT, PRIMARY KEY (A,B)) PARTITION BY HASH (A, B)

PARTITIONS GET_NUM_SERVERS() ;

select * from sys.m_cs_partitions where table_name='TEST_HASH_PARTITION';

alter table "MES"."ZBCT001" PARTITION BY HASH (ZHM)

PARTITIONS GET_NUM_SERVERS() ;

用这个 参数 让HASH自动决定分区的数量

循环分区(Round-robin partitioning):

CREATE COLUMN TABLE mytab (a INT, b INT, c INT)  PARTITION BY ROUNDROBIN PARTITIONS 4;

select * from sys.m_cs_partitions where table_name='mytab';

相关文章

  • HANA 三种表分区

    SAP HANA提供了三种分区方式:Hash分区、Range分区以及Roundrobin分区。前两者是针对某...

  • MBR分区与GPT分区

    Linux系统中有两种常见的分区表 MBR分区表(主引导记录分区表)和 GPT分区表(GUID分区表) MBR分区...

  • Mysql 数据库如何分区、分表?

    分表可以通过三种方式:Mysql 集群、自定义规则和merge 存储引擎。分区有四类:RANGE 分区:基于属于一...

  • Vertica的这些事(九)—— vertica存储统计信息

    vertica存储统计信息: 表数量: 分区表数量: 总表占大小: 分区表总大小: 分区表大小(前10): 分区表...

  • HiveQL 数据定义:分区

    分区• 建立分区表• 增加分区• 重命名分区• 删除分区 hive组织表到分区。它是将一个表到基于分区列,如日期,...

  • db2表分区

    1. 表分区作用 表分区可扩展表的存储能力、对于大量数据表使用分区字段可提高查询效率。 2. 创建表分区 cre...

  • Mysql数据库如何分区、分表

    分表可以通过三种方式:Mysql集群、自定义规则和merge存储引擎。分区有四类:RANGE 分区:基于属于一个给...

  • Mysql 分区表删除

    分区表删除部分分区 使用场景:从 MySQL 5.1 开始,支持分区 创建日志表时建议使用分区方式 在上表的分区表...

  • Hive使用Beeline的DDL操作

    beeline进入交互命令行 内部表 外部表 分区表 分桶表 分桶表&分区表 导入数据的时候需要指定分区 倾斜表 ...

  • 分区表

    使用分区方式建立的表叫分区表 范围分区每个分区都由一个分区键值范围指定(对于一个以日期列作为分区键的表,“2005...

网友评论

      本文标题:HANA 三种表分区

      本文链接:https://www.haomeiwen.com/subject/hadrkctx.html