写点什么

数据湖(二十):Flink 兼容 Iceberg 目前不足和 Iceberg 与 Hudi 对比

作者:Lansonli
  • 2023-01-17
    广东
  • 本文字数:699 字

    阅读完需:约 2 分钟

数据湖(二十):Flink兼容Iceberg目前不足和Iceberg与Hudi对比

Flink 兼容 Iceberg 目前不足和 Iceberg 与 Hudi 对比

一、Flink 兼容 Iceberg 目前不足

  • Iceberg 目前不支持 Flink SQL 查询表的元数据信息,需要使用 Java API 实现。

  • Flink 不支持创建带有隐藏分区的 Iceberg 表

  • Flink 不支持带有 WaterMark 的 Iceberg 表

  • Flink 不支持添加列、删除列、重命名列操作。

  • Flink 对 Iceberg Connector 支持并不完善。

二、Iceberg 与 Hudi 对比

Iceberg 和 Hudi 都是数据湖技术,从社区活跃度上来看,Iceberg 有超越 Hudi 的趋势。他们有以下共同点:

  • 都是构建于存储格式之上的数据组织方式

  • 提供 ACID 能力,提供一定的事务、并行执行能力

  • 提供行级别数据修改能力。

  • 提供一定的 Schema 扩展能力,例如:新增、修改、删除列操作。

  • 支持数据合并,处理小文件。

  • 支持 Time travel 查询快照数据。

  • 支持批量和实时数据读写

Iceberg 与 Hudi 之间不同点在于以下几点:

  • Iceberg 支持 Parquet、avro、orc 数据格式,Hudi 支持 Parquet 和 Avro 格式。

  • 两者数据存储和查询机制不同

Iceberg 只支持一种表存储模式,就是有 metadata file、manifest file 和 data file 组成存储结构,查询时首先查找 Metadata 元数据进而过滤找到对应的 SnapShot 对应的 manifest files ,再找到对应的数据文件。Hudi 支持两种表存储模式:Copy On Write(写时合并) 和 Merge On Read(读时合并),查询时直接读取对应的快照数据。

  • 对于处理小文件合并时,Iceberg 只支持 API 方式手动处理合并小文件,Hudi 对于小文件合并处理可以根据配置自动的执行。

  • Spark 与 Iceberg 和 Hudi 整合时,Iceberg 对 SparkSQL 的支持目前来看更好。Spark 与 Hudi 整合更多的是 Spark DataFrame API 操作。

  • 关于 Schema 方面,Iceberg Schema 与计算引擎是解耦的,不依赖任何的计算引擎,而 Hudi 的 Schema 依赖于计算引擎 Schema。

发布于: 刚刚阅读数: 3
用户头像

Lansonli

关注

微信公众号:三帮大数据 2022-07-12 加入

CSDN大数据领域博客专家,华为云享专家、阿里云专家博主、腾云先锋(TDP)核心成员、51CTO专家博主,全网十万多粉丝,知名互联网公司大数据高级开发工程师

评论

发布
暂无评论
数据湖(二十):Flink兼容Iceberg目前不足和Iceberg与Hudi对比_数据湖_Lansonli_InfoQ写作社区