Hudi表类型和查询类型

官方参考

Table & Query Types

查询类型

  • 快照查询(Snapshot Queries)

查询最新的数据。

  • 增量查询(Incremental Queries)

查询指定时间范围内新增或修改的数据。

  • 读优化查询(Read Optimized Queries)

仅查询 Parquet 格式的基础文件中的数据,为 MOR 表特有。

表类型支持的查询类型
COW快照查询、增量查询
MOR快照查询、增量查询、读优化查询
  • 快照查询和读优化查询对比
对比项快照查询读优化查询
数据延迟
查询延迟高(需合并基础文件和增量的日志文件)低(只涉及基础文件)

表类型

对比项COWMOR
数据延迟
查询延迟
更新开销(I/O)高(重写整个 parquet 文件)低(追加写增量日志文件)
Parquet 文件大小小(高更新开销)大(低更新开销)
写放大低(依赖压缩策略)

文件类型

  • 基础文件(basefiles)

基础文件为列存储格式(parquet)的文件,可类比为 MySQL innodb 引擎的 idb 数据文件或者 Redis 的 RDB 文件(Redis 的 RDB 未含所有数据,MOR 表的也是,但 COW 表的包含所有数据)。

  • 日志文件(logfiles)

日志文件是增量的(delta)只追加写的文件,可类比为 MySQL 的 binlog 文件或者 Redis 的 AOF 文件(实际为全量数据),为 MOR 表独有,为行存储格式(avro)文件。

COW 表MOR 表
基础文件包含所有数据仅包含压缩(Compaction)后的数据
日志文件没有日志文件每次新写入的都放在日志文件,通过压缩合并为基础文件,压缩可同步或者异步进行,或者周期性的进行

压缩(Compaction)

Hudi 的压缩是为解决日志文件过多问题,通过压缩合并日志文件,减少日志文件数量。压缩分为调度(schedule)和执行(run)两个步骤,压缩的方式分为同步和异步两种。

设置 hoodie.compact.inline 为 true 启用同步压缩,设置为 false 启用异步压缩,默认为 false 。hoodie.compact.inline.max.delta.commits 控制最近一次压缩后新产生多少个 commits 后启动压缩,而 hoodie.compact.inline.max.delta.seconds 则控制最近一次压缩后多久启动压缩,压缩策略通过 hoodie.compaction.strategy 指定。

设置 hoodie.compact.schedule.inline 为 true(默认为 false),则可在每次写完成后决定是否触发压缩。

设置 hoodie.compact.inline.trigger.strategy 控制压缩触发策略。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值