• 沒有找到結果。

1.14.1 设置多版本备份数据保留周期

功能描述

在DLI数据多版本功能开启后,备份数据默认保留7天,您可以通过配置系统参数

“dli.multi.version.retention.days”调整保留周期。保留周期外的多版本数据后续在 执行insert overwrite或者truncate语句时会自动进行清理。在添加列或者修改分区表 时,也可以设置表属性“dli.multi.version.retention.days”调整保留周期。开启和关 闭多版本功能SQL语法请参考开启或关闭数据多版本。

DLI数据多版本功能当前仅支持通过Hive语法创建的OBS表,具体建表SQL语法可以参 考使用Hive语法创建OBS表。

语法格式

ALTER TABLE [db_name.]table_name

SET TBLPROPERTIES ("dli.multi.version.retention.days"="days");

关键字

● TBLPROPERTIES:TBLPROPERTIES子句给表添加key/value的属性。

参数说明

1-38 参数说明

参数 描述

db_name 数据库名称,由字母、数字和下划线(_)组成。不能是纯数字,

且不能以数字和下划线开头。

table_name 表名称。

days 多版本中备份数据保留的日期。默认为7天,建议设置在1到7天范 围内。

注意事项

DLI数据多版本功能当前仅支持通过Hive语法创建的OBS表,具体建表语法可以参考使

用Hive语法创建OBS表。

示例

在DLI数据多版本中,设置备份数据保留时间为5天。

ALTER TABLE test_table

SET TBLPROPERTIES ("dli.multi.version.retention.days"="5");

1.14.2 查看多版本备份数据

功能描述

在DLI数据多版本功能开启后,您可以通过SHOW HISTORY命令查看表的备份数据。

开启和关闭多版本语法请参考开启或关闭数据多版本。

DLI数据多版本功能当前仅支持通过Hive语法创建的OBS表,具体建表SQL语法可以参 考使用Hive语法创建OBS表。

语法格式

● 查看某个非分区表的备份数据信息

SHOW HISTORY FOR TABLE [db_name.]table_name;

● 查看指定分区的备份数据信息

SHOW HISTORY FOR TABLE [db_name.]table_name PARTITION (column = value, ...);

关键字

● SHOW HISTORY FOR TABLE:查看备份数据。

● PARTITION:指定分区列。

参数说明

1-39 参数说明

参数 描述

db_name 数据库名称,由字母、数字和下划线(_)组成。不能是纯数字,

且不能以数字和下划线开头。

table_name 表名称。

column 分区列名。

value 分区列名对应的值。

注意事项

DLI数据多版本功能当前仅支持通过Hive语法创建的OBS表,具体建表语法可以参考使

用Hive语法创建OBS表。

示例

● 在DLI数据多版本中,查看表test_table多版本备份数据。

SHOW HISTORY FOR TABLE test_table;

● 在DLI数据多版本中,查看分区表test_table对应dt分区的多版本备份数据。

SHOW HISTORY FOR TABLE test_table PARTITION (dt='2021-07-27');

1.14.3 恢复多版本备份数据

功能描述

在DLI数据多版本功能开启后,您可以通过RESTORE TABLE命令恢复表或分区数据到 指定版本。开启和关闭多版本语法请参考开启或关闭数据多版本。

DLI数据多版本功能当前仅支持通过Hive语法创建的OBS表,具体建表SQL语法可以参 考使用Hive语法创建OBS表。

语法格式

● 恢复非分区表数据到指定版本的备份数据

RESTORE TABLE [db_name.]table_name TO VERSION 'version_id';

● 恢复分区表的单个分区数据为指定版本的备份数据

RESTORE TABLE [db_name.]table_name PARTITION (column = value, ...) TO VERSION 'version_id';

关键字

● RESTORE TABLE:恢复备份数据。

● PARTITION:指定分区列。

TO VERSION:指定版本号。具体的版本号可以通过SHOW HISTORY命令获取,

详情请参考查看多版本备份数据。

参数说明

1-40 参数说明

参数 描述

db_name 数据库名称,由字母、数字和下划线(_)组成。不能是纯数字,

且不能以数字和下划线开头。

table_name 表名称。

column 分区列名。

value 分区列名对应的值。

version_id 指定版本号恢复备份数据。具体的版本号可以通过SHOW HISTORY命令获取,详情请参考查看多版本备份数据。

注意事项

DLI数据多版本功能当前仅支持通过Hive语法创建的OBS表,具体建表SQL语法可以参 考使用Hive语法创建OBS表。

示例

● 在DLI数据多版本中,恢复非分区表test_table数据到版本20210930。

RESTORE TABLE test_table TO VERSION '20210930';

● 在DLI数据多版本中,恢复分区表test_table对应dt分区数据到版本20210930。

RESTORE TABLE test_table PARTITION (dt='2021-07-27') TO VERSION '20210930';

1.14.4 配置多版本过期数据回收站

功能描述

在DLI数据多版本功能开启后,过期的备份数据后续在执行insert overwrite或者 truncate语句时会被系统直接清理。OBS并行文件系统可以通过配置回收站加速删除操 作过期的备份数据。通过在表属性添加配置“dli.multi.version.trash.dir”即可开启回 收站功能。开启和关闭多版本语法请参考开启或关闭数据多版本。

DLI数据多版本功能当前仅支持通过Hive语法创建的OBS表,具体建表SQL语法可以参 考使用Hive语法创建OBS表。

语法格式

ALTER TABLE [db_name.]table_name

SET TBLPROPERTIES ("dli.multi.version.trash.dir"="obs桶多版本回收站目录");

关键字

● TBLPROPERTIES:TBLPROPERTIES子句给表添加key/value的属性。

参数说明

1-41 参数说明

参数 描述

db_name 数据库名称,由字母、数字和下划线(_)组成。不能是纯数字,

且不能以数字和下划线开头。

table_name 表名称。

obs桶多版本回

收站目录 当前OBS表所在桶下的一个目录,您可以根据需要调整目录路 径。比如当前OBS表所在路径为“obs://bucketName/

filePath”,OBS表目录下已创建Trash目录,则该回收站目录可 以指定为“obs://bucketName/filePath/Trash”。

注意事项

● DLI数据多版本功能当前仅支持通过Hive语法创建的OBS表,具体建表SQL语法可 以参考使用Hive语法创建OBS表。

● 回收站数据自动清理需要在OBS并行文件系统的桶上配置回收站数据的生命周期 规则。具体步骤参考如下:

a. 在OBS服务控制台页面左侧选择“并行文件系统”,单击对应的文件系统名 称。

b. 在“基础配置”下单击“生命周期规则”,创建或者编辑生命周期规则。

1-1 创建生命周期规则

示例

在DLI数据多版本中,通过配置回收站加速删除过期的备份数据,数据回收到OBS 的/.Trash目录下。

ALTER TABLE test_table

SET TBLPROPERTIES ("dli.multi.version.trash.dir"="/.Trash");

1.14.5 清理多版本数据

功能描述

多版本数据保留周期是在表每次执行insert overwrite或者truncate语句时触发,所以 当表的多版本数据在保留周期时间外但是后续该表不会再执行insert overwrite或者 truncate语句时,多版本保留周期外的数据不会自动清理。可以通过本章节介绍的SQL 命令手动进行多版本数据清理。

语法格式

清理多版本保留周期外数据。

clear history for table [db_name.]table_name older_than '时间戳';

关键字

● clear history for table:清理多版本数据。

● older_than:指定清理多版本数据的时间范围。

参数说明

1-42 参数说明

参数 描述

db_name 数据库名称,由字母、数字和下划线(_)组成。不能是纯数字,

且不能以数字和下划线开头。

table_name 表名称。

时间戳 删除该时间戳时间点之前的多版本数据。时间格式需要为yyyy-MM-dd HH:mm:ss

注意事项

● DLI数据多版本功能当前仅支持通过Hive语法创建的OBS表,具体建表SQL语法可 以参考使用Hive语法创建OBS表。

● 该命令不会删除当前版本数据。

示例

删除dliTable表在2021-09-25 23:59:59之前生成的多版本数据(多版本生成时会自带 一个生成时间时的时间戳)。

clear history for table dliTable older_than '2021-09-25 23:59:59';