开发者社区> 问答> 正文

MaxCompute如何定时删除历史指定分区

每天我将全量数据插入时间分区中,但是为了节约空间,我只想保留最近十天的分区信息,比如,更新频繁的用户信息表t_user_info,每天我都会全量插入当天的时间分区中,今天是8月29日,我将数据插入20170828分区,但是10天前(20170818)的所有分区我想删掉,这个曹组哦我想每天自动进行。
是使用表生命周期么?如果是,改怎么操作?
alter table bigdata_aaron.t_user_info drop if exists partition (pt=dateadd(${bdp.system.bizdate},-9,'dd'))
我用这用方式不行呀

展开
收起
祁同伟 2017-09-07 09:33:02 9650 0
1 条回答
写回答
取消 提交回答
  • TA有点害羞,没有介绍自己...

    您好,有两种方式。
    一种是使用表的生命周期,
    语法

    ALTER TABLE table_name SET lifecycle days;

    如果 table_name 是分区表,则根据各分区的 LastDataModifiedTime 判断该分区是否该被回收。
    另一种方式是:
    您可以通过创建一个sql脚本定期删除分区,定时操作。删除命令例如

    alter table sale_detail drop if exists partition(sale_date='201312');

    yyyymmdd,(pt=dateadd(${bdp.system.bizdate},-9,'dd')),dateadd函数中${bdp.system.bizdate}需要是datetime类型,格式需要是
    2017-08-29 14:12:54 这种
    ${bdp.system.bizdate}是
    yyyymmdd。
    您可以根据需要需要,设置自定义的时间参数,参考
    文档下方自定义参数
    https://help.aliyun.com/document_detail/30281.html?spm=5176.doc52330.6.604.tn0odl

    2019-07-17 21:34:06
    赞同 1 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
大数据AI一体化的解读 立即下载
极氪大数据 Serverless 应用实践 立即下载
大数据&AI实战派 第2期 立即下载