1. 摘要 Hudi表允许多种类型操作,包括非常常用的upsert,当然为支持upsert,Hudi依赖索引机制来定位记录在哪些文件中. 当前,Hudi支持分区和非分区的数据集.分区数据集是将一组文件(数据)放在称为分区的桶中的数据集.一个Hudi数据集可能由N个分区和M个文件组成,这种组织结构也非常方便hive/presto/spark等引擎根据分区字段过滤以返回有限的数据量.而分区的值绝大多数情况下是从数据中得来,这个要求一旦一条记录映射到分区/桶,那么这个映射应该 a) 被Hudi知道:b…
1. 摘要 随着Apache Hudi变得越来越流行,一个挑战就是用户如何将存量的历史表迁移到Apache Hudi,Apache Hudi维护了记录级别的元数据以便提供upserts和增量拉取的核心能力.为利用Hudi的upsert和增量拉取能力,用户需要重写整个数据集让其成为Hudi表.此RFC提供一个无需重写整张表的高效迁移机制. 2. 背景 为了更好的了解此RFC,读者需要了解一些Hudi基础知识 2.1 记录级别元数据 上图展示了Hudi中每条记录的组织结构,每条记录有5个Hudi元数…
1. 传统数据湖存在的问题与挑战 传统数据湖解决方案中,常用Hive来构建T+1级别的数据仓库,通过HDFS存储实现海量数据的存储与水平扩容,通过Hive实现元数据的管理以及数据操作的SQL化.虽然能够在海量批处理场景中取得不错的效果,但依然存在如下现状问题: 问题一:不支持事务 由于传统大数据方案不支持事务,有可能会读到未写完成的数据,造成数据统计错误.为了规避该问题,通常控制读写任务顺序调用,在保证写任务完成后才能启动读任务.但并不是所有读任务都能够被调度系统约束住,在读取时仍存在该问题.…
1. 摘要 在本博客中,我们将讨论在构建流数据平台时如何利用 Hudi 的两个最令人难以置信的能力. 增量消费--每 30 分钟处理一次数据,并在我们的组织内构建每小时级别的OLAP平台 事件流的无限回放--利用 Hudi 的提交时间线在超级便宜的云对象存储(如 AWS S3)中存储 10 天的事件流(想象一个具有 10 天保留期的 kafka 主题) 具有部分记录更新的自定义 Hudi Payload 类 2. 当前状态 2.1 问题说明 对于大多数业务需要手动干预以通过查看 KPI 和数据趋…
与许多其他事务数据系统一样,索引一直是 Apache Hudi 不可或缺的一部分,并且与普通表格式抽象不同. 在这篇博客中,我们讨论了我们如何重新构想索引并在 Apache Hudi 0.11.0 版本中构建新的多模式索引,这是用于 Lakehouse 架构的首创高性能索引子系统,以优化查询和写入事务,尤其是对于大宽表而言. 1. 为什么在 Hudi 中使用多模态索引 索引被广泛应用于数据库系统中,例如关系数据库和数据仓库,以降低 I/O 成本并提高查询效率.类似于书末的索引页如何帮助您快速定位…
感谢 Apache Hudi contributor:王祥虎 翻译&供稿. 欢迎关注微信公众号:ApacheHudi 本文将介绍Apache Hudi的基本概念.设计以及总体基础架构. 1.简介 Apache Hudi(简称:Hudi)使得您能在hadoop兼容的存储之上存储大量数据,同时它还提供两种原语,使得除了经典的批处理之外,还可以在数据湖上进行流处理.这两种原语分别是: Update/Delete记录:Hudi使用细粒度的文件/记录级别索引来支持Update/Delete记录,同时还提供…
1. 重点特性 1.1 Flink集成 自从Hudi 0.7.0版本支持Flink写入后,Hudi社区又进一步完善了Flink和Hudi的集成.包括重新设计性能更好.扩展性更好.基于Flink状态索引的写入Pipeline:支持Flink写入MOR表:Flink批量读取COW和MOR表:流式读取MOR表:同时支持了Hudi作为Source和Sink的Flink SQL Connector,在Hudi 0.8.0版本发布后,用户可以使用Flink1.11+体验上述所有新特性. 想了解更多Flink…
历经大约3个月时间,Apache Hudi 社区终于发布了0.5.1版本,这是Apache Hudi发布的第二个Apache版本,该版本中一些关键点如下 版本升级 将Spark版本从2.1.0升级到2.4.4 将Avro版本从1.7.7升级到1.8.2 将Parquet版本从1.8.1升级到1.10.1 将Kafka版本从0.8.2.1升级到2.0.0,这是由于将spark-streaming-kafka artifact从0.8_2.11升级到0.10_2.11/2.12间接升级 重要:Hud…
1. 下载信息 源码:Apache Hudi 0.6.0 Source Release (asc, sha512) 二进制Jar包:nexus 2. 迁移指南 如果您从0.5.3以前的版本迁移至0.6.0,请仔细核对每个版本的迁移指南: 0.6.0版本从基于list的rollback策略变更为了基于marker文件的rollback策略,为进行平稳迁移,会在hoodie.properties文件中配置一个新属性hoodie.table.version:无论何时使用Hudi表新版本,如1(从0.6…
1. 下载连接 源代码下载:Apache Hudi 0.5.3 Source Release (asc, sha512) 0.5.3版本相关jar包地址:https://repository.apache.org/#nexus-search;quick~hudi 2. 迁移指南 这是一个bugfix版本,从0.5.2升级时不需要任何特殊的迁移步骤.如果要从早期版本"X"升级,请阅读"X"和0.5.3之间的每个后续版本的迁移指南. 0.5.3是Hudi毕业后的第一个版…