开发者社区 > 大数据与机器学习 > 大数据开发治理DataWorks > 正文

如何删除指定多级分区数据?

如何删除指定多级分区数据?

展开
收起
十一0204 2023-04-11 23:04:46 516 0
3 条回答
写回答
取消 提交回答
  • 公众号:网络技术联盟站,InfoQ签约作者,阿里云社区签约作者,华为云 云享专家,BOSS直聘 创作王者,腾讯课堂创作领航员,博客+论坛:https://www.wljslmz.cn,工程师导航:https://www.wljslmz.com

    在阿里云大数据开发治理DataWorks中,如果您需要删除指定的多级分区数据,可以使用ODPS SQL来实现。下面是相关操作的示例:

    1. 使用如下命令进入ODPS SQL客户端:

      odps@project_name>use project_name;
      odps@project_name>set odps.sql.type.system.odps2=true;
      odps@project_name>set odps.sql.type.system.odps2.extended.syntax=true;
      odps@project_name>set odps.sql.type.system.odps2.multi.insert.policy=dynamic;
      odps@project_name> set odps.sql.type.system.odps2.dml.transaction=true;
      odps@project_name>set odps.sql.type.system.odps2.multi.insert.mode=nonstrict;
      odps@project_name>set odps.stage.mapper.num=10;
      odps@project_name>set odps.stage.reducer.num=10;
      odps@project_name>set odps.sql.type.system.odps2.optimize.dynamic.partition=true;
      odps@project_name>set odps.sql.type.system.odps2.optimize.dynamic.partition.enable=true;
      odps@project_name>set odps.sql.type.system.odps2.optimize.dynamic.partition.prefix=function;
      odps@project_name>set odps.sql.type.system.odps2.optimize.dynamic.partition.auto.adjust=true;
      odps@project_name>set odps.sql.type.system.odps2.optimize.auto.cond.pushdown=true;
      odps@project_name>set odps.sql.type.system.odps2.optimize.auto.cond.pushdown.max.cond.count=-1;
      odps@project_name>set odps.sql.type.system.odps2.optimize.groupby=true;
      odps@project_name>set odps.sql.type.system.odps2.query.cache.enable=true;
      odps@project_name>set odps.sql.type.system.odps2.query.cache.size=100000;
      odps@project_name>set odps.sql.type.system.odps2.query.cache.expire.seconds=600;
      odps@project_name>set odps.sql.type.system.odps2.query.cache.block=false;
      odps@project_name>set odps.sql.type.system.odps2.join.hint.no_shuffle=true;
      odps@project_name>set odps.sql.type.system.odps2.join.hint.no_shuffle.when.size.less=2;
      odps@project_name>set odps.sql.type.system.odps2.join.hint.no_shuffle.if.cost.lt=50;
      odps@project_name>set odps.sql.type.system.odps2.optimize.sort=true;
      
    2. 然后使用如下命令来删除指定分区下的数据,示例:

      odps@project_name> ALTER TABLE table_name DROP IF EXISTS PARTITION(partition_col1='value1', partition_col2='value2') PURGE;
      

      其中,table_name为表名,partition_col1、partition_col2为分区字段名,value1、value2为需要删除的对应分区的值。

      注意:

      DROP命令会直接将数据删除,需要谨慎使用,并使用PURGE选项来清理已删除的数据,以避免占用存储空间。

      如果您需要删除的分区中有较大量的数据,删除操作可能会需要一定的时间和资源,建议在非高峰期操作。

    2023-04-29 23:45:17
    赞同 展开评论 打赏
  • 值得去的地方都没有捷径

    要删除指定多级分区数据,您可以使用以下步骤:

    登录DataWorks控制台,并选择要删除数据的数据开发项目
    在左侧导航栏中选择数据开发,进入数据开发页面
    找到您要删除数据的数据表,并在该表的右侧单击操作,选择删除
    在删除数据表页面中,选择删除方式为“按条件删除数据”
    在“按条件删除数据”中,选择要删除的分区表所在的数据库以及表名
    在“分区过滤条件”中,设置要删除的多级分区的过滤条件,以删除指定分区的数据
    确认您的操作,单击“提交”按钮
    

    通过以上步骤,您就可以删除指定的多级分区数据。请注意,在删除数据时,尽量确认您所删除的分区数据是否正确,避免不必要的数据丢失。

    2023-04-15 14:44:25
    赞同 展开评论 打赏
  • 坚持这件事孤独又漫长。

    可以按照以下步骤进行操作:

    1. 打开DataWorks,进入相应项目空间。

    2. 进入需要删除数据的ODPS表,点击进入“数据开发”页面。

    3. 在左侧的“脚本编辑”区域,输入如下语句来查询需要删除的数据(其中${partitions}为需要删除的多级分区信息):

    select * from ${table} where ${partitions};
    
    1. 执行查询语句,确认需要删除的数据是否正确。

    2. 在“脚本编辑”区域,输入如下语句来删除指定多级分区数据(其中${partitions}为需要删除的多级分区信息):

    alter table ${table} drop partition (${partitions});
    
    1. 执行删除语句,等待删除完成。

    需要注意的是,删除数据是一项危险的操作。在进行删除操作前,一定要仔细确认删除的数据是否正确。如果误删数据,可能会造成不可挽回的后果。因此,建议在进行删除操作前进行备份,以便在误删数据的情况下进行数据恢复。

    2023-04-11 23:34:31
    赞同 展开评论 打赏

DataWorks基于MaxCompute/Hologres/EMR/CDP等大数据引擎,为数据仓库/数据湖/湖仓一体等解决方案提供统一的全链路大数据开发治理平台。

热门讨论

热门文章

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载