系列博客简介:
MaxCompute开发运维系列文章,在参考官方帮助文档的基础上,面向开发过程中产生的实际问题,精炼语言,小伙伴们无需翻看冗长的帮助文档,各种疑难杂症,一篇搞定。
一、 摘要
小伙伴们在MaxCompute的开发中,若不慎删表或truncate表数据,内心肯定慌的一批。别急,让我们一起来学习一下MaxCompute的自动备份与恢复的功能(划重点:自动备份),帮你快速恢复数据。
二、概述
MaxCompute提供数据备份与恢复功能,系统会自动备份数据的历史版本(例如被删除或修改前的数据)并保留一定时间。
默认保留1天也就是24小时,最长30天。1天内免费,大于1天收费。
三、操作命令
前置条件1:安装MaxCompute客户端。(留介绍安装方法的博客的坑)
前置条件2:拥有MaxCompute项目的管理权限。(留权限设置的博客的坑)
1.基础设置
a.查看备份数据保留周期
setproject;
打印项目级别的参数信息,您可以查看odps.timemachine.retention.days参数的取值。
b.设置备份数据保留周期
setproject odps.timemachine.retention.days=days; 按天数设置。
2.truncate或overwrite操作的恢复
a.查看备份数据
show history for table <table_name>;
查看指定表的备份数据,获取保留周期内备份的各个数据版本信息。
b.恢复命令1
restore table table_name to LSN ‘xxxx’; 恢复表至指定版本。
c.恢复命令2
restore table table_name to LSN ‘xxxx’ as new_table_name;
恢复表至指定版本,并命名为新表或将数据更新到不同名的表中。
d.恢复命令3
restore table table_name partition_spec1[partition_spec2 ]to LSN ‘xxxx’;
恢复指定分区至指定版本,支持一次恢复多个分区。通常用于恢复因执行overwrite或merge操作后,需要恢复的分区。
3.drop table操作的恢复
a.查看表的历史数据
show history for tables;
由于是删表,需要在所有历史数据中,根据表名找到删除表的历史记录,不能直接通过show history for table <table_name>; 命令找到指定表的历史数据。
b.恢复命令
restore table table_name (‘id’=‘xxxxx’); 恢复已删除的表。
四、总结
MaxCompute提供的自动备份与恢复功能非常贴心,操作也是简单明了。开发的小伙伴们再也不担心手抖了,职业生命至少延长20年。