炫“库”行动-人大金仓有奖征文-金仓分析型数据库KADB分区表的使用

本文介绍了人大金仓KADB的分布式数据库特性,重点探讨了分区表的使用,包括range、list分区策略及混合使用。通过分区表,可以降低数据扫描量,提高查询效率,并支持行列混合存储和不同压缩级别。文章提醒使用分区表时注意选择大型表,避免默认分区,合理规划分区数量和策略,以实现性能与管理性的平衡。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

KADB 是北京人大金仓信息技术股份有限公司基于开源的greenplum数据库研发的一款分布式关系型数据库,全称是KingbaseAnalyticsDataBase。

分区表在KADB中一种重要的功能,一种好的分区策略可以通过只读取满足查询所需的分区来降低被扫描的数据量。每个分区在每一个计算节点上都是一个单独的物理文件或文件集合(这种情况出现在列寸表上)。就像在 宽列存表中读取一整行比从堆表读取同一行需要更多时间一样,在分区表中读取所有分区比从非分区表中读取相同 的数据要求更多的时间。同时KADB还可以利用分区表来创建行列混合存储的表,不同的分区使用不同的存储方式,还可以利用分区表来做冷热数据的压缩存储,提高查询速度的同时有效的利用的存储空间。总之利用好分区表对整个数据库系统来说都会有一定的提升。

KADB支持多种分区策略:支持rang和list以及两者混合的分区选项,无限制子分区层级数量。

rang分区键只能有一个,适用于时间、数字范围的分区

list可以有多个分区键,适用于字符值的分区。

  • 创建一个rang分区表
CREATE TABLE t10 (

    ID INT,

    DATE DATE,

    amt DECIMAL (10, 2)

) DISTRIBUTED BY (ID) PARTITION BY RANGE (DATE)(

    PARTITION Jan21 START (DATE '2021-01-01') INCLUSIVE,

    PARTITION Feb21 START (DATE '2021-02-01') INCLUSIVE,

    PARTITION Mar21 START (DATE '2021-03-01') INCLUSIVE,

    PARTITION Apr21 START (DATE '2021-04-01') INCLUSIVE,

    PARTITION May21 START (DATE '2021-05-01') INCLUSIVE,

    PARTITION Jun21 START (DATE '2021-06-01') INCLUSIVE,

    PARTITION Jul21 START (DATE '2021-07-01') INCLUSIVE,

    PARTITION Aug21 START (DATE '2021-08-01') INCLUSIVE,

    PARTITION Sep21 START (DATE '2021-09-01') INCLUSIVE,

    PARTITION Oct21 START (DATE '2021-10-01') INCLUSIVE,

    PARTITION Nov21 START (DATE '2021-11-01') INCLUSIVE,

    PARTITION Dec21 START (DATE '2021-12-01') INCLUSIVE END (DATE '2022-01-01') EXCLUSIVE

);

 也可以是用every的方式快速创建分区


CREATE TABLE t11 (

    ID INT,

    DATE DATE,

    amt DECIMAL (10, 2)

) DISTRIBUTED BY (ID) PARTITION BY RANGE (DATE)

(start (date '2021-01-01') end (date '2022-01-01') every (interval '1 month')
)

使用every会根据interval 中定义的跨越基数来自动创建分区, every 中interval 后的参数可以是  day 、 month、year 等根据需求来确定间隔,创建出的分区表命名时按照数字增量来命的,也可以使用关键字来定义分区表的名字。

CREATE TABLE t12 (
    ID INT,
    DATE DATE,
    amt DECIMAL (10, 2)
) DISTRIBUTED BY (ID) PARTITION BY RANGE (DATE)
(partition test  start (date '2021-01-01') end (date '2022-01-01') every (interval '2 month')
)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值