2022数据湖技术摘要
2022-04-10 本文已影响0人
冰菓_
DataFunSummit 2022 数据湖论坛 数据湖技术论坛 (xiaoe-tech.com)
1. 美团增量数仓的探索和实践
美团离线增量数据的探索和实践
Hadoop没有主键概念
hive没有主键概念
- upsert(replace),delete,MVCC(Multi Version concurrency Control)受限
- 有主键的数据在hive中,无法形成增量数据生产链路,必须全量数据参与
HDFS文件不支持修改
- Btree+覆盖写的方式行不通
- 只能增量+存量进行Merge产生最终数据集
架构选型-数据模型
- MOR架构 -- 降低生产成本:读数据时产生冗余IO + 离线compact
- 支持主键
- 支持复杂MVCC,不支持事物:同步任务模型:有调度的乱时间序写入
- sharding策略:1.差异化读写并发 2.弹性伸缩:hash主键前缀 + range打散
架构选型-HIDI
hadoop incremental dataformat implemtation
HFile + Bulkload + SnapshotinputFormat + 离线compact

美团实时增量数据的探索和实践
从增量数仓到批流融合
批计算和流计算

批流一体的数仓模型
- 开发模型融合 -- Flink
- 调度融合 1. 批到流 mini batch by kafka 2. 流到批 mini batch by hudi logfile
- 存储融合 1. 流join 2. 点 + 批 + 增量 + 全量 + 离线 + 实时
- 批流应能灵活切换
问题
- level0 和 level1 区别
- 为什么选取hudi
2. 实时数仓场景与架构搭建实战
数仓设计架构演进

实时数仓架构

是否需要实时计算
- 当前的业务场景是否需要
- 业务价值是什么
是否需要更轻的服务
- 更轻的运维
- 更好的弹性伸缩能力
- 更好的系统稳定性
- 成本节省
- 安全
- 减一点配置
Amazon Analytics Serverless
Amazon Analytics Serverless 服务
无服务器的实时数仓架构
还需要什么
Amazon Redshift 更强劲的云原生实时数仓架构
Redshift 架构
Redshift 实时数据摄入能力

Redshift 实时数仓
Redshift实时数仓与实时计算
Redshift实时数仓 + ML
3. Delta技术原理及其在EBAY的应用
Lakehouse架构

Delta Lake技术原理

4. Icebege在微视实时场景的应用
为何用Icebege
背景-数仓架构

- 实时数仓成本高
- 两套计算存储的数据一致性和成本问题
原因分析

Icebege与传统存储对比

如何用Icebege
落地结构

使用Icebege支持实时需求

- 使用Icebege基础核心模型建设,为更多业务落地打基础
- 成本降低超99%
数据回溯
- 新增指标
- 修改计算口径
- 数据修复

流转批场景
流体一体
维护Icebege
数据维护
- 清除过期数据
- 清除过期快照
- 小文件合并 1. binpack策略 2. sort策略:例如:使用用户ID做分组排序
- 元数据合并
- 清除孤儿文件
小文件合并原理

问题
- 每次维表更新率在万分之一在Icebege如何更新
- flink中的数据回溯功能是如何实现的
- Icebege底层和hive的区别,存储格式
- iceberg小文件合并占用多少资源
- upsert
5. Juice FS在数据湖存储架构上的探索
大数据存储架构概览
大数据存储架构的变迁

为什么要有数据湖
- 数据孤岛
- 多样的数据格式(结构化,半结构化,非结构化)
- 分散的数据管理
- 存储计算耦合,缺乏弹性
- 机器学习和深度学习
什么是数据湖
- A data lake is a system or repository of data stored in its natural / raw format ,usually object blobs or files
- 一个足够便宜,可靠且能支撑海量数据的底层存储(对象存储)
- everything in one place
- 后置ETL
- 存储计算分离,更加云原生
为什么要有湖仓一体
- 数据仓库依然存在,只是后置了
- 数据仓库的数据滞后性
- 机器学习和深度学习的问题依然存在
- 数据重复拷贝和重复ETL
- ACID事务,多版本数据,索引,零拷贝克隆等
什么是湖仓一体
- 开放统一的底层文件格式
- 开发的存储层
- 开发的计算引擎集成
- 与深度学习框架的结合
Juice FS与Lakehouse
Juice FS简介
简介

架构
Juice FS与HDFS,对象存储的比较

Juice FS与数据湖生态
6. Icebege在小红书的探索和实践
APM日志入湖
数据平台概览

日志数据入湖

- 动态分区流量极不均匀,keyby数据倾斜,不keyby小文件多
- 小文件多 1.distcp延迟 2. 下游读取效率差
Evenpartionshuffle
- 引入shuffle
- 流量动态变化
日志数据入湖
- 异步:下游ETL任务已触发
- 跨云读写,OI&OOM风险
Cloud Native Table

S3FileIO

下游集成

日志数据入湖
实时湖分析探索
实时分析链路
流批一体存储
IcebegeMergeTree
CDC实时入湖
Mysql全量入仓

CDC增量入仓

CDC实时入湖
Exactly once语义

MoR
Deduper
Hidden Partition

问题
- CDC入湖方案
- 美团DB数据同步到数据仓库的架构与实践