-
数据写入:
- 近实时写入:Hudi支持近实时写入,可以减少碎片化工具的使用,并通过CDC(Change Data Capture)增量导入RDBMS数据。此外,Hudi还限制小文件的大小和数量,优化存储效率3。
- 增量Pipeline:Hudi支持增量Pipeline,通过区分arrivetime和event time来处理延迟3。
-
数据查询:
- 快照读:默认的查询方式是快照读,获取最新版本的全量数据。如果是MOR表,查询时会合并Parquet列存储和Avro log中的增量数据4。
- 增量读:用户可以配置commit时间范围来启动增量读模式,读取某一段时间范围内的数据4。
- 读优化:读优化模式基于列存储获取最新版本的数据,读取耗时比快照读模式少4。
-
流模式增量读取:流模式增量读取会持续不断地返回实时更新的结果,而批模式则在查询结束之后退出,需要再次执行查询才能获取更新的数据4。
架构和特性
Hudi的架构包括以下几个主要组件:
- Metadata表:用于存储索引信息,提高查询性能。Metadata表是一个MOR类型的Hudi表,设计为无服务,不和特定计算引擎绑定,数据文件格式为HFile5。
- 索引策略:支持files index和column_stats index,前者存储文件信息,后者存储列统计信息,优化查询计划5。
实际应用场景
Hudi适用于多种场景,包括但不限于:
- 近实时写入和查询:适用于需要快速写入和查询的应用场景。
- 增量Pipeline:适用于需要处理大量增量数据的场景。
- 流模式增量读取:适用于需要实时更新数据的场景。
目录
- 1.Hudi表的存储类型
- 1.写时复制
- 2.读时合并
- 2.Hudi的数据类型
- 3.Hudi Query的类型(视图)
- 1.读优化视图(Snapshot Queries)
- 2.增量视图(Incremental Queries)
- 3.实时视图(Read Optimized Queries)
- 4.Hudi的payload
- 5.Hudi的写入方式
- 1.insert
- 2.bulk_insert
- 3.upsert
- 4.delete
- 6.Hudi删除数据的方式
- 7.hudi和hive集成
- 8.Hudi问题集合
- 9.Hudi业界使用案例