更新时间:2024-12-11 GMT+08:00

RUN_TABLE_SERVICE

本章节仅适用于MRS 3.3.1-LTS及之后版本。

命令功能

对Hudi MOR表一键式执行Compaction/Clean/Archive,其中Compaction仅执行已存在的Scheudle。

单表执行表服务命令

  • 命令格式

    call run_table_service(table => 'table', clean_hours_retained => 'clean_hours_retained', archive_hours_retained => 'archive_hours_retained')

  • 参数描述
    表1 参数描述

    参数

    描述

    是否必填

    table

    表名。

    clean_policy

    clean使用的执行策略。

    否,默认使用时间策略。

    clean_trigger_strategy

    clean触发的周期。

    否,默认按时间周期触发,每clean_hours_retained个小时触发1次clean。

    clean_hours_retained

    clean保留多长时间内的数据文件。

    否,默认24小时。

    clean_commits_retained

    clean保留多少commits写的数据文件。

    否,默认10。

    archive_policy

    archive使用的执行策略。

    否,默认使用时间策略。

    archive_hours_retained

    archive保留多长时间的timeline。

    否,默认24小时。

    max_commit_to_keep

    archive保留多少commits元数据文件的最大值。

    否,默认30。

    min_commit_to_keep

    archive保留多少commits元数据文件的最小值。

    否,默认20。

    compact_inline

    是否开启compact。

    否,默认true。

    schedule_compact_inline

    开启compact后,是否只做schedule。

    注意:

    如果需要run_table_service命令只产生compaction plan且不执行,需要设置schedule_compact_inline等于true,run_compact_inline等于false。

    否,默认false。

    run_compact_inline

    开启compact后,是否只做run。

    注意:

    run_table_service命令的默认行为是仅执行Hudi表中已有的compaction plan。如果需要run_table_service命令产生1个新的compaction plan并执行,需要设置schedule_compact_inline等于false,run_compact_inline等于false。

    否,默认true。

    compact_max_delta_commits

    多少commits会触发compact。

    否,默认5。

  • 示例
    // clean和archive按时间策略执行
    call run_table_service(table => 'hudi_table', clean_hours_retained => 1, archive_hours_retained => 1)
    
    // clean和archive按commits策略执行
    call run_table_service(table => 'hudi_table', clean_policy => 'KEEP_LATEST_COMMITS', clean_trigger_strategy => 'NUM_COMMITS', clean_commits_retained => 2, archive_policy => 'KEEP_META_FILES_BY_COMMITS', min_commit_to_keep => 3, max_commit_to_keep => 4);
  • 系统响应

    可在客户端中查看结果。

多表并行执行表服务命令

  • 命令格式

    call run_table_service(tables => 'table1;table2;table3', cleanNums => 'clean_commits_retained', archiveNums=> 'archive_commits_retained')

  • 参数描述
    表2 参数描述

    参数

    描述

    是否必填

    tables

    待执行表服务的表名列表。

    多个表名以“;”分隔。

    cleanNums

    clean保留commits次数。

    archiveNums

    archive保留commits次数。

    否,如果配置该项,该值必须大于cleanNums配置项。

  • 示例
    // clean和archive按时间策略执行
    call run_table_service(tables => 'tb1;tb2;tb3', cleanNums  => 10, archiveNums => 12)
  • 系统响应

    可在客户端中查看结果。