automatic_Hudi Cleaning操作说明

avatar
作者
猴君
阅读量:0

Automatic Hudi Cleaning操作说明

automatic_Hudi Cleaning操作说明(图片来源网络,侵删)

自动Hudi清理是Apache Hudi的一个功能,用于自动删除旧的、不再需要的数据集版本,这种清理基于配置的策略,可以定期或在数据写入时执行。

1. 配置Hudi清理策略

要配置Hudi清理策略,您需要在Hudi表的Spark SQL创建语句中指定HudiTableSink选项,以下是一个示例:

 CREATE TABLE hudi_table (   ... ) USING org.apache.hudi.spark.HoodieSparkSqlQueryableDataSource OPTIONS (   'hoodie.data.publisher'='org.apache.hudi.spark.datasource.write.DataWriterFactory',   'hoodie.cleaner.commits.retained.time'='1d',   'hoodie.cleaner.min.commits'='5',   'hoodie.cleaner.enable'='true',   'hoodie.cleaner.schedule'='10 mins',   'hoodie.cleaner.policy'='COMPACTION' ); 

在这个例子中,我们配置了以下策略:

hoodie.cleaner.commits.retained.time: 保留最近1天的所有提交(即不会删除这些提交)。

hoodie.cleaner.min.commits: 至少保留5个提交,即使它们的时间戳比hoodie.cleaner.commits.retained.time更老。

hoodie.cleaner.enable: 启用自动清理。

hoodie.cleaner.schedule: 每10分钟进行一次清理。

hoodie.cleaner.policy: 使用COMPACTION策略进行清理。

2. 启动Hudi清理

一旦配置了清理策略,Hudi将在后台自动执行清理任务,如果您想手动触发清理,可以使用以下命令:

 CALL system.hudi_clean('hudi_table'); 

这将立即执行清理操作,而不是等待下一个计划的清理周期。

3. 监控和调试Hudi清理

要监控和调试Hudi清理,您可以查看Hudi表的提交历史和清理历史,以下是一些有用的查询:

查看所有提交:

 SELECT * FROM hudi_table.hoodie_commits; 

查看所有清理:

 SELECT * FROM hudi_table.hoodie_cleans; 

查看当前保留的提交:

 SELECT * FROM hudi_table.hoodie_retained_commits; 

通过这些查询,您可以了解Hudi清理是否按预期工作,以及是否需要调整清理策略。

    广告一刻

    为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!