
# Hudi Savepoint操作说明
#### 操作场景
Savepoint用于在数据处理过程中创建一个快照点，以便在需要还原自定义的版本数据。
Savepoint 操作的用途：
- 数据恢复：在数据处理过程中，如果出现错误或需要回滚到某个状态，可以通过Savepoint快速恢复。
- 版本管理：Savepoint可以用于管理数据的不同版本，方便进行版本对比和回滚。
- 备份：定期创建Savepoint可以作为数据备份的一种方式，确保数据的安全性。
 
Hudi提供的Savepoint就可以将不同的commit保存起来以便清理程序不会将其删除，后续可以使用Rollback进行恢复。
#### 执行Savepoint
使用Spark SQL管理Savepoint，具体操作请参考[SAVE_POINT](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_24800.html)章节。
示例如下：
- 创建savepoint：
  ```
  call create_savepoint('hudi_test1', '20220908155421949');
  ```
  
- 查看所有存在的savepoint：
  ```
  call show_savepoints(table =>'hudi_test1');
  ```
  
- 回滚savepoint：
  ```
  call rollback_to_savepoint('hudi_test1', '20220908155421949');
  ```
  
![](https://support.huaweicloud.com/cmpntguide-lts-mrs/public_sys-resources/note_3.0-zh-cn.png)
- savepoint的rollback与commit rollback相同，都必须从最新的instant逐个向前rollback。
- MRS 3.1.2版本：MoR表暂时不支持savepoint。
 
