当前位置: 首页 > news >正文

hudi系列-schema evolution(一)

hudi+flink在非schema on read模式下也表现出了支持一部分的schema evolution功能,本篇中测试一下在非schema on read模式下,发生各种列变更情况时数据写入与读取情况。

  • flink 1.14.5
  • hudi 0.13.1
  • mor表

思路:

  1. 选择mor表是因为它的数据文件有avro和parquet两种格式,能覆盖得更全面,相对于cow表,两者在parquet上的读取共用了低层实现(RecordIterators.getParquetRecordIterator),所以两者表现应该是一致的。
  2. 模式变更前后分别写入一条数据,用变更后的模式读取所有数据
  3. 测试parquet读:insert模式下使用两条数据写入不同的parquet文件,进行eartlist的增量读。如果采用compaction生成parquet,新旧数据需要分别compact到不同文件(一个parquet对应一个schema),否则旧数据会自动在compact过程中进行了evolve,可将数据写到不同分区。
  4. 只读arvo:upsert模式使两次写入均生成arvo文件,进行eartlist的增量读。即使写到同一个文件,但是两次写入对应不同的block,有各自的schema.

追加列

  • 模式变更前:<id int, name string, create_date string>,数据(1,‘1’,‘2023-07-25’)
  • 模式变更后:<id int, name string, create_date string, col1 int>,数据(2,‘2’,‘2
http://www.lryc.cn/news/384928.html

相关文章:

  • Redis-实战篇-缓存雪崩
  • 线性代数|机器学习-P18快速下降奇异值
  • 本地离线模型搭建指南-中文大语言模型底座选择依据
  • 【代码随想录】【算法训练营】【第51天】 [115]不同的子序列 [583]两个字符串的删除操作 [72]编辑距离
  • 24下半年软考集合!30s打破信息差!
  • 如何在Xcode中设置库路径
  • 小程序的基本使用
  • [保姆级教程]uniapp设置字体引入字体格式
  • 【Webpack】前端工程化之Webpack与模块化开发
  • 【Android】记录在自己的AMD处理器无法使用Android studio 虚拟机处理过程
  • LearnOpenGL - Android OpenGL ES 3.0 使用 FBO 进行离屏渲染
  • 人工智能虚拟仿真系统,解决算法难、编程难、应用场景难三大难题
  • CTE(公共表表达式)和视图在查询时的性能影响
  • 新能源行业必会基础知识-----电力市场概论笔记-----绪论
  • 003 SpringBoot操作ElasticSearch7.x
  • npm install报错Maximum call stack size exceeded
  • 第1章 基础知识
  • python脚本 限制 外部访问 linux服务器端口
  • Redis-哨兵模式-主机宕机-推选新主机的过程
  • 游戏工厂:AI(AIGC/ChatGPT)与流程式游戏开发
  • 每日一练 - OSPF 组播地址
  • AMHS工程师的培养
  • 如何在前端项目中制定代码注释规范
  • 一位苹果手机硬件工程师繁忙的一天
  • Python | 使用均值编码(MeanEncoding)处理分类特征
  • 面试-java异常体系
  • Clickhouse 的性能优化实践总结
  • 变工况下转子、轴承数据采集及测试
  • 泰迪智能科技与成都文理学院人工智能与大数据学院开展校企合作交流
  • ubuntu22.04安装初始化