Hudi 核心知识点详解

1、Hudi 建表语句

CREATE TABLE命令通过指定带有表属性的字段列表来创建Hudi Table。
格式:

CREATE TABLE [ IF NOT EXISTS] [database_name.]table_name
[ (columnTypeList)]
USING hudi
[ COMMENT table_comment ]
[ LOCATION location_path ]
[ OPTIONS (options_list) ]

创建一个cow内部表

create table if not exists hudi_table0 (
    id int,
    name string,
    price double
)  using hudi options (type = 'cow',primaryKey = 'id');

创建一个mor外部表

‌2、数据写入

近实时写入‌:Hudi支持近实时写入,可以减少碎片化工具的使用,并通过CDC(Change Data Capture)增量导入RDMBS(关系数据库系统)数据。此外,Hudi还限制小文件的大小和数量,优化存储效率‌

增量Pipeline‌:Hudi支持增量Pipeline,通过区分arrivetimeevent time来处理延迟‌。

  1. 数据查询‌:

    • 快照读‌:默认的查询方式是快照读,获取最新版本的全量数据。如果是MOR表,查询时会合并Parquet列存储和Avro log中的增量数据‌4。
    • 增量读‌:用户可以配置commit时间范围来启动增量读模式,读取某一段时间范围内的数据‌4。
    • 读优化‌:读优化模式基于列存储获取最新版本的数据,读取耗时比快照读模式少‌。
  2. 流模式增量读取‌:流模式增量读取会持续不断地返回实时更新的结果,而批模式则在查询结束之后退出,需要再次执行查询才能获取更新的数据‌4。

架构和特性

Hudi的架构包括以下几个主要组件:

  • Metadata‌:用于存储索引信息,提高查询性能。Metadata表是一个MOR类型的Hudi表,设计为无服务,不和特定计算引擎绑定,数据文件格式为HFile‌5。
  • 索引策略‌:支持files indexcolumn_stats index,前者存储文件信息,后者存储列统计信息,优化查询计划‌5。

实际应用场景

Hudi适用于多种场景,包括但不限于:

  • 近实时写入和查询‌:适用于需要快速写入和查询的应用场景。
  • 增量Pipeline‌:适用于需要处理大量增量数据的场景。
  • 流模式增量读取‌:适用于需要实时更新数据的场景。

Hudi表的存储类型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吹老师个人app编程教学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值