陈玉兆(玉兆)
    Apache Hudi Committer、Apache Calcite PMC

    自我介绍
    我叫陈玉兆,花名玉兆,Apache Hudi 的 committer。来自阿里云开源大数据团队,Flink SQL 的核心开发,目前主要负责 Flink Hudi 集成方向。

    什么是 Apache Hudi?
    Apache Hudi 由 Uber 公司从 2014 年开始的内部实践项目,目标是解决 Hadoop 上的大数据更新问题,更新一直是 Hadoop 的痛点之一,在很长一段时间没有好的解决方案,Hudi 自 2016 年开源,在 2020 年成为 Apache 顶级项目,至今已成为最流行的开源数据湖格式之一,Hudi 为文件存储带来行级更新能力。通过中立开放的湖格式和不同的查询引擎对接,提供全量、增量、流读等查询视图。

    Apache Hudi 提供了出色的 file format 设计和丰富的事物语义支持:

    • 类 LSM 的 file format 布局很好的适配了近实时更新场景,解决了超大数据集更新的痛点;
    • Hudi 的事物层语义是目前的湖存储中最成熟的,基本所有的数据治理都可以自动化完成:compaction、rollback、cleaning、clustering

    Flink On Hudi 的由来?
    Apache Hudi 的 table format 对流计算友好的特性使得 Flink On Hudi 成为 Apache Hudi 项目最值得探索和挖掘的方向之一,Flink 不仅为 Hudi 解锁了超大数据流的实时更新能力、更添加了流式消费和计算的能力,让端到端近实时 ETL 得以在低成本的文件存储上轻松实现。

    Flink On Hudi 项目在 2020 年 11 月立项,至今已迭代了三个版本,从第一个版本开始人气和活跃度就一直高涨。5 月份组建的 Apache Hudi 钉钉群截止目前半年的时间,已经有超过 2300+ 用户,并且活跃度一直排在 Flink 用户群的前列。

    Flink On Hudi 目前解决的经典场景是 CDC 数据的流写流读,用户可以通过 Flink CDC connector/format 将数据库数据同步入湖,下游既可以对接 presto、spark 等 OLAP 引擎作即席查询,也可以对接 Flink 流读实现端到端的近实时 ETL。

    Flink On Hudi 已成为部署 Apache Hudi 项目的首选方案,国内主要云厂商:阿里云、华为云、腾讯云,国外的 AWS 都已集成 Flink On Hudi;国内的大型互联网公司:头条、快手、B站 以及传统企业:顺丰、海康等均有 Flink On Hudi 的生产实践,从我们对社区用户的跟踪回访统计数据来看,至少超过 50+ 国内公司在生产上使用 Flink On Hudi,Uber 公司更将 Flink On Hudi 作为 2022 年的重点方向在推进 !

    Flink On Hudi 的开发者生态也非常活跃,目前国内有阿里云、华为云、头条、B站的同学持续贡献,Uber 公司和 AWS更专门投入人力来对接 Flink On Hudi。

    最新发布的Flink Hudi 0.10.0 中有那些亮点?
    我们在今年8月份发布了 Flink Hudi 0.9.0,支持了流写流读等经典场景。0.10.0 版本经过社区用户的千锤百炼,贡献了多项重要的 fix,更有核心读写能力的大幅增强,解锁了多个新场景:

    新特性

    • 支持增量读取
    • 支持 batch 更新
    • 新增 Append 模式写入,同时支持小文件合并
    • 支持 metadata table

    功能增强

    • 写入性能大幅提升:优化写入内存、优化了小文件策略(更加均衡,无碎片文件)、优化了 write task 和 coordinator 的交互
    • 流读语义增强:新增参数 earliest,提升从最早消费性能、支持参数跳过压缩读取,解决读取重复问题
    • 在线压缩策略增强:新增 eager failover + rollback,压缩顺序改为从最早开始
    • 优化事件顺序语义:支持处理序,支持事件序自动推导

    Flink On Hudi 未来会如何发展?
    Apache Hudi 是当前唯一支持原生 CDC format 的湖格式,Flink On Hudi 作为当前实时数据湖方向的先驱者,从社区用户的反馈来看,大约一半的需求来自于 cdc 数据的流读,比较有代表性的场景是 ods 层数据双流 join 后入 DWD,dwd 流读做聚合入 DWS,但是当前 CDC 双流 join 的语义问题,以及 watermark 事件时间等语义的缺乏导致很多场景的可用性有待加强。

    鉴于强烈的用户诉求,未来两到三个大版本,Hudi 社区的主要方向是近实时 ETL 的查询端场景,即流式读取 cdc 数据。Flink On Hudi 会提供更高效的流式数据打宽、去重,提供 watermark、window 等高级的流计算元语。

    本次 FFA 我们会讲解 Flink On Hudi 的内部设计、经典场景、实践案例,同时会演示一千张表整库同步入湖的 demo。

    实时即未来,我在 Flink Forward Asia 等你。