
# SAVE_POINT
#### 命令功能
管理Hudi表的savepoint。Hudi提供Savepoint机制，在指定commit处创建保存点，该commit及之前的文件不会被Clean清理。当需要恢复数据时，可通过回滚Savepoint将表恢复到该commit状态。
#### 命令格式
- 创建savepoint： **call create_savepoint('\[table_name\]', '\[commit_Time\]', '\[user\]', '\[comments\]');**
  
- 查看所有存在的savepoint **call show_savepoints(table =\>'\[table_name\]');**
  
- 回滚savepoint： **call rollback_savepoint('\[table_name\]', '\[savepoint_Time\]');**
  
 
#### 参数描述
表1参数描述 
| **参数**         | **描述**                                   | 是否必填 |
|:---|:---|:---|
| table_name     | 需要查询的Hudi表名，支持database.tablename格式。      | 是    |
| commit_Time    | 指定创建或回滚的时间戳。                             | 是    |
| user           | 创建savepoint的用户。                          | 否    |
| comments       | 该条savepoint的注释说明，用于描述创建该Savepoint的原因或用途。 | 否    |
| savepoint_Time | 创建savepoint的时间戳。                         | 是    |
   
#### 示例
```
call create_savepoint('hudi_test1', '20220908155421949');
call show_savepoint(table =>'hudi_test1');
call rollback_savepoint('hudi_test1', '20220908155525378');
```
#### 注意事项
- MOR表不支持savepoint。
- 最大的savepoint之前的commit相关文件不会被clean。
- 存在多个savepoint时需要从最大的savepoint开始执行rollback，逻辑是：rollback savepoint -\> delete savepoint -\> rollback下一个savepoint。
 
#### 系统响应
可在客户端中查看查询结果。
