推广 热搜:   公司  快速  企业  中国  设备    上海  行业  未来 

Hudi学习五:Hudi与Hive集成

   日期:2024-10-31     移动:http://keant.xrbh.cn/quote/7418.html

Hudi学习五:Hudi与Hive集成

        将编译好的Hudi目录(hudi-0.9.0/packaging/hudi-hadoop-mr-bundle/target/)下的JAR包hudi-hadoop-mr-bundle-0.9.0.jar,放入hive安装文件的lib目录下

说明:我编译的hudi-0.9.0版本,里面的hive版本是2.3.1没有做修改

        可以后台启动这两服务

    1)、数据格式

    2)、将数据写入hudi表

    3)、查看HDFS上已经有数据写入了

    1)、创建Hive分区外部表

        (Hudi表是分区表,分区字段是partition_path,格式为yyyy-MM-dd,数据格式HoodieParquetInputFormat

    2)、手动添加分区

    1)查询报错

        这是你创建的Hive表字段类型和Hudi表的类型不匹配导致

     2)、正确查询结果

    1)、错误一

        解决:代码添加加载hive驱动,pom添加(对应Hive的版本)依赖

    2)、错误二

          解决:pom文件添加mysql依赖

    1)、Hdfs里面可以查看到数据

     2)、Hive里面可以通过SQL形式查询数据

    3)、查询hive表结构

        可以看到hive里的建表会采用HoodieParquetInputFormat 格式支持快照查询和增量查询

         修改uid>0 and uid <20 的这20条数据的fullname值

    1)、修改前的数据

     2)、修改数据代码

    3)、修改后结果

               hive查询的是最新的修改数据

        可以看到HDFS上数据成功写入到另一个文件,且文件大小都相同,所以Copy on Write表其实是和旧数据进行合并后再次写入全量数据。这也验证了官方所说的Copy on Write表写入数据延迟高,wa写入大。所以如果这张表是经常需要修改和写入的建议采纳哦使用Merge on Read表。

      1)、快照查询

    2)、增量查询

          (1)查询前40条数据,分别包含修改的20条数据和未修改的20条数据

               可以看到进行修改的数据和原来的数据commit时间戳是不一样的

     (2时间戳增量查询

        指定查询类型为增量查询,并且传入时间戳,那么spark会查询时间戳以后的数据。

    1)、hdfs数据

     2)、查询hive数据

         出现两张表 hudi_mor_hive_ro,hudi_mor_hive_rt

     3)、查询hive表结构

        rt结尾的表支持快照查询和增量查询,并且rt表将会查询表基本列数据和增量日志数据的合并视图,立马可以查询到修改后的数据。而ro表则只查询表中基本列数据并不会去查询增量日志里的数据。rt表采用HoodieParquetRealtimeInputFormat格式进行存储,ro表采用HoodieParquetInputFormat格式进行存储

            修改uid>0 and uid <20 的这20条数据的fullname值

    1)、修改数据代码

    2)、修改后

        (1)HDFS文件对比,修改的数据都写入到log文件里面了所以Merge on Read发生修改操作,是将变化数据写入行式增量日志

        (2)hive表对比

        hudi_mor_hive_ro表数据没有变化其实or结尾的表对应是读取优化查询,只查询最基本列数据,并不会看到被修改的数据。

本文地址:http://lianchengexpo.xrbh.cn/quote/7418.html    迅博思语资讯 http://lianchengexpo.xrbh.cn/ , 查看更多

特别提示:本信息由相关企业自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


相关行业动态
推荐行业动态
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  粤ICP备2023022329号