开发者社区> 问答> 正文

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

祁同伟 2017-09-07 09:33:02 2052

每天我将全量数据插入时间分区中,但是为了节约空间,我只想保留最近十天的分区信息,比如,更新频繁的用户信息表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'))
我用这用方式不行呀

分享到
取消 提交回答
全部回答(1)
  • 琴瑟
    2019-07-17 21:34:06

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

    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

    1 0
+ 订阅

大数据计算实践乐园,近距离学习前沿技术

推荐文章
相似问题