数据湖学习笔记

2021-10-13 

1.三个开源数据湖技术框架比较

缺点:

Delta:1.抽象程度不高,需要绑定spark  2.功能不完善

Hudi:1.新版本已经完善支持python和flink,但对flink支持没那么好,和flink集成有一些bug

Iceberg:1.功能没有Hudi完善,做不到小文件合并

2.Apache Hudi核心概念介绍

特性:

 index:索引,快速找到想要的内容

文件格式:支持parquet(列式存储),avro(行式存储)

Timeline时间轴:增量的去管理时间版本,用于数据回溯

写入方式:

COW(copy on write): 读写分离,写时先将原文件复制一个副本,然后写入副本,读时读原文件

MOR(merge on read): 读时合并,写时先写到日志文件中,读数据时候做原文件和log(新增数据)合并

读方式:

读优化: 只查询指定的commit之前所限定范围的最新数据

增量:可以查询到最新写入到这个文件里的数据(可以查到commit之后的数据)

快照查询:可以查询commit之后不同历史版本的数据

views视图 提供读取数据的方式(hive,spark)

Hudi原语(一旦开始就不能停止,原子性):

1. 支持update/Delete(删除是新插入一条数据,是否删除字段显示true;update插入两天数据,一条delete,一条字段是否插入显示true):

Hudi使用细粒度的文件/记录级别索引来支持 Update/Delete记录,同时还提供写操作的事务保证。查询会处理最后一个提交的快照,
并基于此输出结果。

2.变更流:

Hudi对获取数据变更提供了一流的支持:可以从给定的时间点获取给定表中已
updated/inserted/deleted的所有记录的增量流,并解锁新的查询姿势(类别)。把
Hudi当作kafka用。

Hudi表设计--时间

Arrival time: 数据到达Hudi时间,注入时间

commit time:提交时间,处理时间

Event time: record中记录时间,事件时间

Hudi表设计--有序的时间轴元数据

1.只要对数据有一些操作,Hudi把这些操作对应的元数据用时间轴Timeline维护起立,

建instant(Action,Time,State)

2.Hudi保证了在时间轴上原子性和一致性

 Hudi表设计--数据文件

Hudi表设计--数据文件

 Hudi表设计--Hoodie key

Hudi为了实现数据的CRUD,需要能够唯一标识一条记录。hudi将把数
据集中的 唯一字段(record key ) + 数据所在分区 (partitionPath) 联合
起来当做数据的唯一键
Hudi表设计--索引

 Hudi写时架构参考Hbase架构

3.Apache Hudi的特性和功能

4.Hudi的存储格式和查询类型

5.基于Hudi构建企业级数据湖

数仓体系痛点

可靠性低,高延时,小文件问题,数据版本缺失,不支持增量处理

 数据湖解决痛点方式:

 AA出行案例:

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值