创建分区表每天根据时间自动分区

【 使用环境 】 测试环境
【 OB or 其他组件 】OB
【 使用版本 】4.3.1
【问题描述】如何创建range分区,并根据一个字段每天01:00时间戳就自动生成分区,自动删除30日之前的分区

1 个赞

OB,没看到这个语法支持

2 个赞

有类似的解决方案吗?

1 个赞

不自动删除分区,可以每天根据指定时间自动生成分区吗

2 个赞

可以看下ODC工具,有类似功能
管理分区计划-OceanBase 开发者中心-OceanBase文档中心-分布式数据库使用文档

2 个赞

存储过程定时每天执行,可行不?

2 个赞

目前可以用数据库存储每个表的分区策略,凌晨用定时任务扫描配置信息,更新分区

2 个赞

生成分区不希望是整点,主要统计分析,希望延后一点,每天01:00生成新的分区

1 个赞

更希望实现类似clickhouse这样的功能,
根据DATESTAMP_CHD 年月日生成分区,添加一小时
PARTITION BY toYYYYMMDD(DATESTAMP_CHD - toIntervalHour(1))
ORDER BY DATESTAMP_CHD
TTL (DATESTAMP_CHD - toIntervalHour(1)) + toIntervalDay(30)
SETTINGS index_granularity = 8192

1 个赞

这要等ob实现这功能了,目前不支持这语法

1 个赞

目前是自己实现的,写脚步或者定时任务

1 个赞

:flushed:也行啊,数据库层原生支持那得等了

1 个赞

可以自己写脚本,定时执行。
还完全可控 :grinning:

2 个赞

能否实现每天1点到第二天1点为一个分区,而不是整点呢

是的,其实这个功能日常用的挺多的,但是现在数据库基本都不支持

数据库底层目前暂时不支持这语法,等后面ob官方实现这种功能。

现阶段的常见的阶级方案除了ODC有提供专门针对 Range 分区的扩展功能 支持依据用户设置的分区策略对 Range 分区表进行自动管理之外,其他应该是得写个脚本或者应用程序程序去定时执行处理。

1 个赞

可以使用ODC的功能哦

请教下,ob 的 mysql 租户,4.2.1-ce版本 没有看到有定时任务啊,类似mysql events ,定时执行分区job 。

社区版ob暂时不支持event功能

可以用 ODC 的分区计划