MAPREDUCE服务 MRS-Hudi支持Partial Update:使用约束

时间:2024-11-28 01:44:47

使用约束

  • 由于Hudi OCC特性的限制,当前不建议多流并发写Hudi表。 如果需要多流同时写请将所有流union后写入Hudi。
  • 支持添加新列并作为新分组,但是新列添加后,需要同时修改表属性的tblproperties和serdeproperties属性,将新列添加到新的组里面。命令示例如下:
    • 添加新列col5,col6,group_3:

      alter table testTable add columns (col5 int, col6 int, group_3 int);

    • 添加新的分组信息到tblproperties中:

      alter table testTable set tblproperties('fields.group_3.sequence-group' = 'col5,col6');

    • 添加新的分组信息到serdeproperties中:

      alter table testTable set serdeproperties('fields.group_3.sequence-group' = 'col5,col6');

  • sequence组包含的列不能有重叠。sequence-1组和sequence-2都包含col1这一列,这种是不支持的。
  • group列的数据类型,仅支持int、bigint、float、double、date和timestamp。
  • 对于已存在表,如果要开启部分列更新功能;需要严格执行如下步骤,否则会出现数据不符合预期的情况。
    • 停止待修改表的数据写入。
    • MOR表需要执行全量compaction:

      强制开启compaction

      set hoodie.compaction.inline.max.delta.commits=1;

      set hoodie.compact.inline=true;

      执行全量compaction

      run compaction on my_table;

      reset hoodie.compaction.inline.max.delta.commits;

    • 添加新的分组信息到tblproperties中:

      alter table testTable set tblproperties('fields.group_1.sequence-group' = 'col1,col2');

    • 添加新的分组信息到serdeproperties中:

      alter table testTable set serdeproperties('fields.group_1.sequence-group' = 'col1,col2');

support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_2493101.html