更新时间:2024-04-30 GMT+08:00

Hudi简介

Apache Hudi(发音Hoodie)表示Hadoop Upserts Deletes and Incrementals。用来管理Hadoop大数据体系下存储在DFS上大型分析数据集。

Hudi不是单纯的数据格式,而是一套数据访问方法(类似GaussDB(DWS)存储的access层),在Apache Hudi 0.9版本,大数据的Spark,Flink等组件都单独实现各自客户端。Hudi的逻辑存储如下图所示:

  • 写入模式

    COW:写时复制,适合更新少的场景。

    MOR:读时复制,对于UPDATE&DELETE增量写delta log文件,分析时进行base和delta log文件合并,异步compaction合并文件。

  • 存储格式

    index:对主键进行索引,默认是file group级别的bloomfilter。

    data files:base file + delta log file(主要面向对base file的update&delete)。

    timeline metadata:版本log的管理。

  • 视图

    读优化视图:读取Compaction后生成的base file,未Compaction数据时效性有一定延迟(高效读取)。

    实时视图:读取最新的数据,在读取时进行Base file和Delta file合并(频繁update场景)。

    增量视图:类似CDC方式持续读取增量写入Hudi的数据(流批一体)。