1.数据湖是干什么的?
为了解决当前 数仓 平台的痛点
2.当前数仓平台的痛点
2.1 传统数仓(批式处理,离线)
- T+1时效低
- 数据故障回复代价高(长时间、全链路重算)
- 数据去重、exactly-once实现困难
- 架构复杂,设计多个系统协调。靠调度系统来构建任务依赖关系
2.2 lamda架构(批式处理+流式处理,离线+实时)
- 同时维护实施平台、离线平台,运维成本高
- 框架不同,但逻辑相同的两套代码,开发成本高
- 两条数据链路,容易导致数据不一致
- 数据更新成本高,需要重跑链路
2.3 kappa架构(流式处理,实时)
- 对消息队列存储要求高,消息队列的回溯能力不及离线存储
- 消息对列本身对数据存储有时效性,且无法使用OLAP引擎分析消息队列中的数据
- 全链路依赖消息队列的实时计算可能因为数据的时序性导致结果不正确
3. 数据湖解决了什么问题
- 支持数据高效回溯
- 支持数据更新
- 数据的流批读写
- 分钟级到秒级的数据接入
- ACID语义
- schema变更
4.什么是iceberg
- 一种表格式
- 基于计算层(flink、spark)和存储层(ORC、Parqurt,Avro)的一个中间层
- 用flink或spark或其他支持的工具将数据写入iceberg,然后再通过其他方式来读取(spark、flink、presto等)
- 向下管理在存储系统上的文件,向上为计算层提供一些接口
- 通过Metastore存储表相关的信息
5.