hudi 数据湖动态列测试

hudi cow

新增字段

  • 同步merge成parquet
  • scheme变更,可读,缺失数据为null

减少字段

  • 写入失败:Parquet/Avro schema mismatch: Avro field ‘name’ not found

结论:新增字段可写可读,但新增后字段不能再减少

hudi mor

新增字段(会出现读取失败)

  • 异步merge成parquet(有变更),写入.avro文件(无变更)
  • scheme变更,读取失败:Found hoodie.hudi_mor.hudi_mor_record, expecting hoodie.hudi_mor.hudi_mor_record, missing required field name2

减少字段

  • 写入失败:Parquet/Avro schema mismatch: Avro field ‘title’ not found

结论:新增一个字段后,字段不能减少写入,数据也读不出来,只能不停按照新字段写入

parquet file

新增字段,减少字段都可写入:df.save

hive,spark读取字段顺序没问题,presto顺序异常

备注:
在这里插入图片描述

Hudi基于Avro格式表示Schema,因此对Schema的Evolution能力完全等同于Avro Schema的Evolution能力,即可以增加字段以及向上兼容的变更,如int变成long是兼容的,但long变成int是不兼容的。

当前现在社区已经有方案支持Full Schema Evolution,即可以增加一个字段,删去一个字段,重命名,也就是变更一个字段。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值