Hudi学习笔记(一)

大数据发展背景
  • Hudi用于管理分布式文件系统上大型分析数据集存储,支持Spark和Flink整合。它能够是DFS数据集在分钟级时延内支持变更,也支持下游系统对这个数据集的增量处理。
学习目标
  • 什么是数据湖
  • 为什么使用数据湖
  • Hudi基本功能
  • 如何编译Hudi源码
  • Hudi与Spark集成管理
  • Hudi中COW和ROW不同类型表功能
  • Hudi的三种查询方式
  • Hudi中不同表数据写入流程
数据仓库

数据仓库是一个用于存储、分析、报告的数据系统。目的是构建面向分析的集成化数据环境,分析结果为企业提供决策支持。

  • 数据仓库本身不生产数据,也不消费数据
  • 企业根据业务需求分成不同层次,数据层(ODS)\仓库层(DW)\应用层(DA)
数据湖
  • 数据湖是一个集中式的数据存储库,用于存储大量的原始数据。
  • 原始格式存储数据的系统或存储库,可以包括结构化数据、半结构化数据、非结构化数据和二进制数据。
  • 查询应用数据的时候才会开始分析数据需求和应用架构,用于报告、可视化、高级分析和机器学习等任务。

数据仓库是优化的数据库,用于分析业务的关系数据。数据湖数据来自关系数据和非关系数据。

特性 数据仓库 数据湖
数据 分析业务的关系数据 关系数据和非关系数据
Schame 在写入数据仓库 读取schema
性价比 更快查询较高存储成本(空间代替时间,冗余存储) 更快查询只需较低成本
数据质量 便于管理 难以监控
用户 业务分析师 数据科学家、数据开发人员和业务分析师
分析 批处理、BI 机器学习、预测分析、数据发现
数据湖框架
  • delta Lake
    支持update/delete/merge
  • Iceberg
  • Hudi(Hadoop upsert and incrementals)
    fast upsert/delete/compaction功能,管理存储在Hdfs上的数据。支持快速upsert/delete。
Hudi功能
  • Hudi是在大数据存储上的一个数据集,可以将Change Logs通过upsert的方式合并进hudi。
  • 可以暴露成普通的Hive或Spark表,通过API或命令行可以获取增量修改的信息,供下游消费。
  • Hudi保管修改历史,可以时间旅行或回退。
  • 内部有主键到文件级的索引,默认是记录到文件的布隆过滤器。
  • 提供了两种方式的原语言:
    -Update/delete记录:使用细粒度的文件/记录级别索引支持update/delete记录,同时保证写操作的事务保证,查询会处理最后一个提交的快照,并基于此输出结果。
    -变更流:Hudi对过去数据变更提供了一流的支持:可以从给定时间点获取给定表中update/insert/deleted的所有记录的增量流,并解锁新的查询姿势。
Hudi基础架构
  • 将数据摄取到数据湖存储,使用HDFS作为数据湖的数据存储。
  • 基于HDFS构建Hudi的数据湖。
  • Hudi提供统一的访问Spark和Flink数据源
  • 外部通过不同引擎访问接口。
    Hudi学习笔记(一)_第1张图片
Hudi版本
  • Hudi 0.5版本
    支持Spark,将数据批量和流式写入

  • Hudi 0.6版本
    逐渐添加新特性和功能

  • Hudi 0.7.0版本
    Flink计算引擎成熟,Flink1.12

  • Hudi 0.8
    支持Flink SQL client操作Hudi数据

  • Hudi 0.9
    重构与Flink的集成,支持CDC的能力,数据流式入湖。流式查询Hudi数据。

  • Hudi 0.10
    支持更多的数据源:如Mysql和Kafka

你可能感兴趣的:(学习,笔记)