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

在PolarDB分布式版本中变更TTL

酷数据库 2023-07-25
136

本文介绍了TTL表相关的ALTER TABLE语法。

变更TTL表的定时任务

ALTER TABLE tbl_name
    local_partition_alter_options

local_partition_alter_options:
        ALLOCATE LOCAL PARTITION
  |    EXPIRE LOCAL PARTITION [local_partition_name]
  | REMOVE LOCAL PARTITIONING
  | local_partition_definition 

local_partition_definition:
        LOCAL PARTITION BY RANGE (column_name)
    [STARTWITH 'yyyy-MM-dd']
    INTERVAL interval_count MONTH
    [EXPIRE AFTER expire_after_count]
    [PRE ALLOCATE pre_allocate_count]
    [PIVOTDATE pivotdate_func]
    [DISABLE SCHEDULE]

pivotdate_func:
        NOW()
  |    DATE_ADD(...)
  | DATE_SUB(...)

创建新的物理时间分区

此命令多次调用不会无限制创建新分区,只会创建预定时间内的新分区。

ALTER TABLE t_order ALLOCATE LOCAL PARTITION;

删除过期的物理时间分区

此命令多次调用不会无限制删除已有分区,只会删除过期分区。

  • 可以指定物理时间分区名,可通过information_schema.local_partitions获取

    ALTER TABLE t_order EXPIRE LOCAL PARTITION p20210401;
  • 不指定分区名时,删除所有已过期的分区

    ALTER TABLE t_order EXPIRE LOCAL PARTITION;

    说明 未失效分区不允许删除,会报错。

TTL表转换成普通表

ALTER TABLE t_order REMOVE LOCAL PARTITIONING;

说明 TTL表转换成普通表需要进行数据搬迁,请在业务低峰期进行操作。

普通表转换成TTL表

ALTER TABLE t_order
  LOCAL PARTITION BY RANGE (gmt_modified)
  STARTWITH '2021-01-01'
  INTERVAL 1 MONTH
  EXPIRE AFTER 12
  PRE ALLOCATE 6;

说明 普通表转换成TTL表需要进行数据搬迁,请在业务低峰期进行操作。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论