Hive集成使用(1) 本章节介绍Hive集成使用。 Hive 查询 Hudi 表 Hudi 表的元数据已由平台同步至 Hive Metastore,用户通过 Beeline 等 Hive 客户端即可按普通表方式查询,表数据的写入统一由 Spark/Flink 完成,Hive 侧只做读取。 平台同步的Hive 表 InputFormat 按表类型自动设置: 查询方式 InputFormat 说明 COW 表 / MOR 读优化查询 org.apache.hudi.hadoop.HoodieParquetInputFormat 读取基础文件(Parquet) MOR 表快照查询 org.apache.hudi.hadoop.realtime.HoodieParquetRealtimeInputFormat 读时合并基础文件与日志文件 查询COW 表与 Spark 引擎一致;针对 MOR 表,Hive 中通过表名后缀区分两种查询视图: plaintext 仅查询数据文件(基础文件)中的数据(读优化视图,ro 后缀) select id, name, datetime from hudidb.ordersmorro; 查询数据文件 + 日志文件中的最新数据(实时视图,rt 后缀) select id, name, datetime from hudidb.ordersmorrt; ro 表未包含未压缩日志中的最新更新数据,rt 表可查询到最新数据。若 Hive 中仅存在 ro 表(读优化同步),需读取最新数据时改用 Spark 快照查询,或等待/触发压缩后再查。 注意 MOR 表在 Hive 中查询时,若表 InputFormat 为 HoodieParquetInputFormat 则仅读取已压缩的基础文件(读优化查询),未压缩日志中的最新数据不含在结果内。 Hive 增量查询 Hive 中对 Hudi 表做增量查询,先设置 InputFormat 与增量属性,再按表属性指定的时刻拉取增量数据: plaintext SET hive.input.formatorg.apache.hudi.hadoop.hive.HoodieCombineHiveInputFormat; 增量属性通过建表时的表参数(TBLPROPERTIES)指定:hoodie.datasource.query.typeincremental 与 hoodie.datasource.read.begin.instanttime,查询语法与普通 SELECT 相同。 注意 Hive 侧增量查询功能与性能均有限,不推荐生产环境使用;生产环境的增量消费优先使用 Spark 增量查询或 Flink 流式读取。
来自: