Apache Hudi
是一个开源的数据管理框架,其通过提供记录级别的insert, update, upsert和delete能力来简化增量数据处理和数据管道开发。Upsert
指的是将记录插入到现有数据集中(如果它们不存在)或进行更新(如果它们存在的话)的功能。通过高效管理Amazon S3
中数据的布局方式,Hudi
允许近乎实时地提取和更新数据。Hudi维护在数据集上所执行的操作的元数据,以确保这些操作的原子性和一致性。
Hudi
可与Apache Spark
、Apache Hive
和Presto
集成在一起。在Amazon EMR 5.28.0
和更高版本中,Amazon EMR
在安装Spark
,Hive
或Presto
时会默认安装Hudi组件。这样就可以使用Spark
或Hudi
提供的 DeltaStreamer来创建或更新Hudi数据集,便可以使用Hive
、Spark
或Presto
交互式地查询Hudi数据集,还可以进行增量拉取以构建数据处理管道(增量拉取是指仅提取两次操作之间发生变化的数据的能力)。
上述功能将使得Hudi
适用于以下场景:
-
使用来自传感器和其他的物联网(IoT)设备,需要特定数据插入和更新事件的流数据。
-
遵守数据隐私规定,用户可能会选择忘记或修改他们对应用程序如何使用数据的协议。
-
实现变更数据捕获(Change Data Capture)系统,可以随时间将变更应用于数据集。
随Amazon EMR 5.28.0
安装的Hudi版本为0.5.0-incubating。值得注意的是:0.5.0-incubating版本是Hudi社区近一个月内发布的第一个Apache Release版本。Hudi才加入Apache孵化器大半年时间,就以非常惊人的速度被AWS EMR团队集成进5.28.0发布版,这也是Amazon EMR支持的开源项目里唯一一个还处于孵化阶段的项目。至此,已有Uber与Amazon两大巨头使用Hudi,这也充分证明了数据湖方向的火热以及Hudi未来可与Delta Lake形成两强相争的对峙局面。