
# 如何配置Hudi Compaction的Spark周期任务？
#### 问题描述
Migration写入数据到Hudi时为了保证稳定性需要将Compaction任务单独拆成Spark作业并交给MRS执行，那么如何配置？
#### 解决方案
1. 修改Migration实时集成作业配置。 
   Migration任务中必须关闭异步compaction动作，同时将clean和archive关闭。具体来说，可以在"Hudi表属性全局配置"或单表的"表属性编辑"中配置下表所示参数。
   表1Hudi表参数 
   | 参数名                         | 参数值   | 含义                              |
   |:---|:---|:---|
   | compaction.schedule.enabled | true  | 开启compaction计划生成                |
   | compaction.delta_commits    | 60    | compaction计划生成的compaction次数触发周期 |
   | compaction.async.enabled    | false | 关闭异步compaction                  |
   | clean.async.enabled         | false | 清理历史版本数据文件                      |
   | hoodie.archive.automatic    | false | Hudi commit文件老化的开关              |
      
   图1关闭Migration compaction任务   
   ![](https://support.huaweicloud.com/dataartsstudio_faq/zh-cn_image_0000002097573512.png "点击放大")
   如上配置项配置完成后，作业启动后不再进行compaction任务，只会定期生成compaction计划，Spark SQL作业可以通过"run compaction on"命令执行compaction计划。
   ![](https://support.huaweicloud.com/dataartsstudio_faq/public_sys-resources/note_3.0-zh-cn.png)
   compaction计划一定需要Migration任务生成，然后交给Spark执行，否则会有Hudi Timeline的冲突，导致Spark compaction作业执行失败。
   
   
2. 创建Spark SQL周期性Compaction任务。 
   1. 前往DataArts Studio数据开发界面，参考[《开发批处理单任务SQL作业》](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_1436.html)创建Spark SQL作业。
      图2创建Spark SQL单任务作业   
      ![](https://support.huaweicloud.com/dataartsstudio_faq/zh-cn_image_0000002097607820.png "点击放大") 
   
   2. 配置与Hudi相对应的Spark数据连接，并选中需要操作Hudi表对应的数据库。
      图3配置连接与数据库   
      ![](https://support.huaweicloud.com/dataartsstudio_faq/zh-cn_image_0000002133166873.png "点击放大") 
   
   3. 根据实际情况配置compaction的调度周期。
      图4配置调度周期   
      ![](https://support.huaweicloud.com/dataartsstudio_faq/zh-cn_image_0000002133007269.png "点击放大")
      **Hudi数据表Compaction规范**
      
   
   4. 参考[Hudi数据表Compaction规范](https://support.huaweicloud.com/devg-rule-mrs/mrs_07_450115.html)填写Spark SQL的compaction语句，提交并运行作业。
      图5提交并运行作业   
      ![](https://support.huaweicloud.com/dataartsstudio_faq/zh-cn_image_0000002097447952.png "点击放大") 
   
   
   
   
 
