
# 开启或关闭数据多版本（废弃，不推荐使用）
#### 功能描述
多版本功能计划废弃，不推荐使用。更多相关功能推荐：[Hudi多版本清理操作](https://support.huaweicloud.com/sqlref-hudi-dli/dli_hudi_0072.html)、[Hudi Archive操作说明](https://support.huaweicloud.com/sqlref-hudi-dli/dli_hudi_0073.html)。更
DLI提供多版本功能，用于数据的备份与恢复。开启多版本功能后，在进行删除或修改表数据时（insert overwrite或者truncate操作），系统会自动备份历史数据并保留一定时间，后续您可以对保留周期内的数据进行快速恢复，避免因误操作丢失数据。其他多版本SQL语法请参考[多版本备份恢复数据（废弃，不推荐使用）](https://support.huaweicloud.com/sqlref-spark-dli/dli_08_0349.html#dli_08_0349)。
DLI数据多版本功能当前仅支持通过Hive语法创建的OBS表，具体建表语法可以参考[使用Hive语法创建OBS表](https://support.huaweicloud.com/sqlref-spark-dli/dli_08_0077.html#dli_08_0077)。
#### 语法格式
- 开启多版本功能
  ```
  ALTER TABLE [db_name.]table_name 
  SET TBLPROPERTIES ("dli.multi.version.enable"="true");
  ```
  
- 关闭多版本功能
  ```
  ALTER TABLE [db_name.]table_name 
  UNSET TBLPROPERTIES ("dli.multi.version.enable");
  ```
  开启多版本功能后，在执行insert overwrite或者truncate操作时会自动在OBS存储路径下存储多版本数据。关闭多版本功能后，需要通过如下命令把多版本数据目录回收。
  ```
  RESTORE TABLE [db_name.]table_name TO initial layout;
  ```
  
 
#### 关键字
- SET TBLPROPERTIES：设置表属性，开启多版本功能。
- UNSET TBLPROPERTIES：取消表属性，关闭多版本功能。
 
#### 参数说明
表1参数描述 
| **参数**     | **描述**                                       |
|:---|:---|
| db_name    | Database名称，由字母、数字和下划线（_）组成。不能是纯数字，且不能以下划线开头。 |
| table_name | 表名称。                                         |
   
#### 注意事项
DLI数据多版本功能当前仅支持通过Hive语法创建的OBS表，具体建表语法可以参考[使用Hive语法创建OBS表](https://support.huaweicloud.com/sqlref-spark-dli/dli_08_0077.html#dli_08_0077)。
#### 示例
- 修改表test_table，开启多版本功能。
  ```
  ALTER TABLE test_table 
  SET TBLPROPERTIES ("dli.multi.version.enable"="true");
  ```
  
- 修改表test_table，关闭多版本功能。
  ```
  ALTER TABLE test_table 
  UNSET TBLPROPERTIES ("dli.multi.version.enable");
  ```
  回退多版本路径。
  ```
  RESTORE TABLE test_table TO initial layout;
  ```
  
 
