数据湖格式发展动态如何?

数据湖格式发展动态如何?

最佳答案 匿名用户编辑于2024/06/11 14:40

2023 年的数据湖存储有一些创新和进步的趋势,下面来简单介绍几个数据湖格式的发展动态。

一)Apache Iceberg Updates in 2023 Iceberg 在 2023 年发布了 1.2 1.3 1.4 等几个大版本,其中最重要的是1.4版本: Apache Iceberg 1.4.0 将默认格式升级到 v2,此举旨在解决v1 中存在的元数据问题,并支持行级删除文件,以减少写放大现象。 这种格式在两年前就被采用,并得到了广泛支持,使得大多数部署能够更平滑地过渡。此外,v2 的能力使得数据操作更加高效,例如,对于 Spark 的MERGE 和UPDATE 命令采用合并读取策略,从而提高了整体性能和数据管理实践。此外,Iceberg 1.4 版本还进一步完善了 Rest catalog 协议,增加了多表提交(multi-table commit)、延迟快照加载(lazy snapshot loading)等功能,为后续的多表事务等工作做好了准备。 同时,Iceberg 在 roadmap 中放出了 V3 的设计,其中主要包括,对加密的支持(近期已经实现了部分对 parquet 和 avor 的加密),对默认值的支持,以及对相对路径的支持。

另外,Iceberg 在 2023 年大大强化了 pyIceberg 的能力,连续发布了多个版本,现在 pyIceberg 基本具备了 Java 版本的完整功能。Iceberg 在北美的顶级互联网公司中得到了广泛应用,同时 Snowflake、BigQuery 和 Dremio 等也将Iceberg作为首选的湖格式进行支持,因此它拥有最广泛的生态支持。与其他湖格式不同的是,Iceberg 在一些案例中完整替代了 Hive,成为整体湖格式方案的解决方案。因此,在当前人工智能飞速发展的时代背景下,Iceberg 还重点发展了Python API。

(二)Apache Hudi Updates in 2023 Hudi 在 2023 年发布了 0.13、 0.14 两个大版本,同时也发布了1.0.0-beta1的预览。 在 0.13 版本中,引入了元数据管理服务 Meta Server,用于简化大量数据表的管理。此外,还正式引入了 CDC(Change Data Capture),允许用户跟踪单次提交中的记录变更,并支持流式源使用。同时,0.13 版本还增加了对部分列更新的支持。在 0.14 版本中,最主要的功能是引入了记录级索引(Record level index),提高了大型表的写入性能。记录级索引可以有效替代其他全局索引(如Global_bloom、Global_Simple 或 Hbase),并且可以将索引查找性能提高 4 到10 倍。此外,0.14版本还支持表自动生成键,对于日志类型的表不再需要为 Hudi 表配置主键,提高了易用性和灵活性。

1.0 版本是 Apache Hudi 的第一个重要版本,其中最大的变化是表格式(tableformat)的升级,在 Hudi 1.0 的 spec 文档中,我们看到升级后的格式增强了未来的兼容性、提高了元数据的一致性和优化了并发控制。

(三)Delta Lake Updates in 2023 在 2023 年的 Data + AI 大会上,Delta Lake 发布了他们的3.0 版本,这个版本中最引人瞩目的是 Universal Format,简称 UniForm。这一功能允许用户将数据存储为 Iceberg 或 Hudi 的格式,即一次写入可以自动生成多份表的元数据信息。这不仅允许数据存储不必局限于 parquet,还能更无缝地兼容其他数据湖生态。另一项备受期待的更新是 Liquid Clustering(虽然在 3.0 版本时仍处于预览阶段)。这种新颖的数据组织方式有望提升 Delta Lake 表的查询和管理效率。LiquidClustering 通过动态调整表中数据的物理布局,优化数据存储模式,以支持高效的数据访问并减少查询延迟。相比之前的静态 order/zorder/hash 等方式,根据查询动态调整可以使用户避免理解复杂的分布式系统原理,从而大幅提升易用性。

此外,Delta Lake 还在架构上进行了优化,抽象出了一个名为Delta Kernel 的API。Delta Kernel 旨在简化 Delta Lake 的集成和使用。它提供了一组核心Java库API,使得开发者能够构建和维护 Delta Lake 连接器,而无需深入了解Delta Lake的内部协议细节。这使得开发者可以更容易地实现对 Delta Lake 表的读写操作,提高了与不同计算平台的兼容性和灵活性。 从 2.3 和 2.4 版本开始,Delta Lake 对 update 和 delete 进行了大量优化。特别是对 delete vector 的支持,大幅提升了更新和删除的效率,以及提升了CDC的易用性。用户可以通过 table_changes 等函数来更容易地获取变更。在生态集成方面,所有 Delta 连接器(如 Flink、Presto 等)都已集成到DeltaLake 主仓库,形成统一的生态系统,展现了 Delta Lake 对开放生态的支持。这可能也是 Delta Lake 对 Iceberg 和 Hudi 的追赶。

(四)Apache paimon Updates in 2023 2023 年 3 月 12 日,Flink Table Store 项目顺利通过投票,正式进入Apache软件基金会 (ASF) 的孵化器,并更名为 Apache Paimon(incubating)。这标志着 Paimon 从 Flink 的一个子项目,经过一年多的成长,已经演变成一个新的数据湖格式。通过与 Flink 的完美配合,Paimon 逐渐成长为流式数据湖的最佳方案。ApachePaimon 具有强大的 Upsert 更新能力,天然的 DataSkipping 能力,同时还提供完整的 Changelog 流读,配合 Flink SQL 可以实现数据的增量加工。Apache Paimon 的最新进展包括 0.5 和 0.6 两个版本的更新。0.5 版本增加了数据湖的 CDC 数据摄取成熟度、离线数据仓库的不变视图标签、主键表的生产就绪动态桶模式,以及作为 Hive 表替代的只追加可扩展表。

而 0.6 版本进一步扩展了 Paimon 的特性和功能,包括Flink Paimon CDC支持更多主流数据摄取源、跨分区更新、读优化表以提升查询性能,以及新增的PaimonSpark、Paimon Trino 和 Paimon Presto 模块适用于生产环境,还有与Flink Metrics 集成的新指标系统。此外,Apache Paimon 加深了与流处理技术的整合,特别是与 Apache Flink 的整合,使得直接在数据湖上进行流处理成为可能,增强了Flink 的能力并简化了数据处理流程。

(五)数据湖存储小结 整体来看,数据湖存储还是一个高度竞争力的市场,既有Iceberg、Hudi 这样的先发者(双方相继在 2021 年末和 22 年初成立了各自的商业化公司),也有Deltalake 这样由巨头 Databricks 商业化支持的挑战者,以及由阿里支持从Flink 孵化的流式数据湖格式 Paimon。 在北美和中国,这些数据湖格式的发展状况存在显著差异。在美国,Iceberg 在生态支持和使用范围上最为广泛,不仅在Netflix、Airbnb、Apple 等大型企业得到大规模应用并取代了 Hive,还得到了许多云服务提供商和数据仓库公司的支持(例如 Snowflake 和 Dremio 推出了托管的Iceberg 表,AWS和GCP 也更倾向于支持 Iceberg,而 Azure 更倾向于支持 Delta Lake)。

Delta Lake 凭借 Databricks 提供的完整大数据技术栈成为市场份额最高的商业化产品,并尝试通过 UniForm 来争夺其他数据湖格式的市场份额,而LiquidClustering 技术则是 2023 年的技术亮点。 Hudi 在北美相对来说是一个相对小众的选择,但在国内,Hudi 凭借其完整的功能和在实时 upsert 场景下的领先优势获得了字节跳动、快手等大型企业的采用,并且更适应国内对实时场景的强烈需求,在国内取得了良好的发展。Apache Paimon 吸收了 Hudi 发展过程中的问题(尤其是对实时写入过程中性能和稳定性的复杂索引系统),通过流批一体的方式降低了用户的使用门槛,成为Hudi 的一个强有力的竞争对手。

我来回答
分享至