暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

PolarDB分布式版AUTO模式核心特性及典型场景

酷数据库 2023-07-25
164

TTL(Time To Live)——自动清理历史数据

某些业务场景下,业务数据增长的很快,并且业务数据的热度随着时间推移会有明显的降低。此时如果数据一直存储在PolarDB分布式版中,既会占用存储空间,也会降低正常业务查询的效率,此种场景很多业务会选择将历史数据归档后在PolarDB分布式版中删除,能快速的删除历史数据而不影响到现有业务,一直是客户所追求的。

如果PolarDB分布式版能通过DDL的方式删除历史数据,将极大的提高清理数据的速度,基于这种思路PolarDB分布式版在AUTO模式下开发出了TTL的功能,可以快速的删除历史数据,详情请参见什么是TTL功能

若在建表时使用TTL相关语法,则将创建一张TTL表。如下所示,将t_order表按照gmt_modified列进行时间分区,每个分区间隔一个月,每个分区12个月后过期,提前创建3个分区:

CREATE TABLE t_order (
  id bigint NOT NULL AUTO_INCREMENT,
  gmt_modified DATETIME NOT NULL,
  PRIMARY KEY (id, gmt_modified)
)
PARTITION BY HASH(id)
PARTITIONS 16
-- 以下为TTL的相关语法
LOCAL PARTITION BY RANGE (gmt_modified)  -- 按照gmt_modified列划分
INTERVAL 1 MONTH -- 每个月一个分区
EXPIRE AFTER 12 -- 数据在12个月后过期
PRE ALLOCATE 3;  -- 提前3个月创建分区

Locality——按需定制数据存储位置

在AUTO模式数据库中提供多个维度的Locality属性,可以手动定制数据的存储位置。

  • 可以通过设定Database的Locality属性,指定Database的存储位置,例如:

    CREATE DATABASE db1 MODE='AUTO' LOCALITY='dn=pxc-xdb-s-pxcexample'
  • 可以通过设定表级的Locality属性,指定表的存储位置。例如,默认情况下单表都存在一个DN上,而通过指定Locality属性,可以指定单表的物理位置。

    CREATE TABLE tb (a INT, b INT, PRIMARY KEY(a)) LOCALITY='dn=pxc-xdb-s-pxcexample'
  • (即将在5.4.14版本支持)同时也支持分区级的Locality属性。例如,在涉及多个地域的业务场景下,结合AUTO模式下List分区,可以使一个地域的数据存在一个DN上:

    CREATE TABLE orders_region(
     id int,
     country varchar(64),
     city varchar(64),
     order_time datetime not null)
    PARTITION BY LIST COLUMNS(country,city)
    (
      PARTITION p1 VALUES IN (('China','Hangzhou'), ('China','Beijing')) LOCALITY='dn=pxc-xdb-s-pxcexample1',
      PARTITION p2 VALUES IN (('United States','NewYork'),('United States','Chicago')) LOCALITY='dn=pxc-xdb-s-pxcexample2',
      PARTITION p3 VALUES IN (('Russian','Moscow')) LOCALITY='dn=pxc-xdb-s-pxcexample3'
    );
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论