小米数据湖架构演进:Iceberg、Paimon与 AI 场景下的实践

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1. 李培殿
2.
3. 目录 1. 小米数据湖架构及上云实践 2. 从离线湖仓到实时湖仓 3. 数据湖在AI场景实践 4. 未来规划
4.
5. 信息化 互联网  手机研产供  新零售  IOT设备  互联网广告  互联网应用  信息流推荐 汽车  智能座舱  自动驾驶 AI  基座大模型  小爱同学
6. 数据工场 平台 计算引擎 Flink Spark 存储层 Doris Ray Gravitino 元数据 数据湖 Trino Hive Iceberg HDFS Paimon Fileset JuiceFS
7. 表数量 7W+ 存储量 100PB+ 集团 数仓标准
8. 成本  云上存储成本 相比IDC成本 更低  运维成本更低 容量  云上对象存储 无限容量  IDC机房扩容 周期长 性能  HDFS 慢节点 问题严重  HDFS 对小文 件不友好
9. 对象存储 JuiceFS(自建) QPS 限制 同一个前缀存在 QPS 限制 前缀散列存储,避免 QPS 限制 读性能 一般 预读机制、分布式缓存提升读性能 调用费用 在可接受范围内 预读导致调用费用上涨, 但可通过缓存缓解 Bucket 带宽 大吞吐作业易打满带宽 分布式缓存可缓解带宽问题 租户隔离(审计与计费) 平台侧一般使用单个桶, 难以做租户隔离 自建 JuiceFS 集群 接入内部 IAM 体系做用户隔离
10. 温数据上云 热数据上云 存量分区 新增分区 自建HDFS 自建HDFS Iceberg Full Compaction 异步转储上云 云上对象存储 JuiceFS Cache 热数据上云 JuiceFS 存量分区 新增分区 自建HDFS 云上对象存储 云上对象存储
11. Ranger 鉴权服务 表鉴权 个人 凭证 认证鉴权 Gravitino ak/sk 请求凭证 ak/sk Secret Management
12.
13. equality delete file position delete file datafile.parquet id (PK) data file_path position id 1 a datafile.parque t 1 2 1 b 2 c merge datafile.parquet id (PK) data 1 a • 并发更新场景下难以 保证主键唯一 • Overwrite 语义无法保 证主键唯一 • upsert 语义下生成太 多 equality delete 记 录,导致查询缓慢
14. equality delete file position delete file datafile.parquet id (PK) data file_path position id 1 a datafile.parque t 1 2 1 b 2 c changelog rowkin d id data rowkin d id data -D 2 null +I 1 a • changlog 不完整:如对于 -D 记录只有主键字段,当根据非 主键字段聚合操作时会导致数 据错误 • 只有 -D,+I 操作,无法正确的 反映出 -U,+U • 无效的 equality delete:增多 时导致下发过多的 -D 操作导 致聚合错误 • 数据乱序:读取 data file 时分 片策略导致数据乱序
15. 把复杂留给自己,把简单留给用户 vs 复杂的聚合逻辑及调优由「用户」完成 聚合逻辑及调优由「Paimon」来完成
16. • • • • 100GB 广告请求特征 100GB 广告计费数据 天级链路延迟 离线计算,失败后重试代价高 每次拼接 shuffle 数据量翻倍 激活数据延迟时需回溯理历史分区 200GB 中间数据 100GB 广告转化数据 300GB 样本数据
17. • • • • 100GB 分钟级链路延迟 增量计算,重试代价小 无需 Join 拼接数据,由 Paimon 聚合 转化数据延迟时也可自动关联 广告请求特征 300GB 100GB 广告计费数据 100GB 广告转化数据 union 样本数据
18.
19. • 非表格数据的管理和治理 • 大模型训练数据预处理 • AI场景数据挖掘
20. 非表格数据的管理和治理  缺乏资产定义:非表格数据一般以文件方式存储,(文件归属、文件描述等)  生命周期治理困难:非表格数据目录不规范,难以做生命周期有效治理  审计困难:算法团队共享账号访问目录,导致审计困难  共享困难:目录方式难以进行权限管控和数据分享
21. 资产标识: fileset_catalog.raw_data.common_crawl 虚拟访问目录: gvfs://fileset/fileset_catalog/raw_data/common_crawl 实际存储目录: jfs://volume/raw_data/common_crawl gvfs://fileset/fileset_catalog/xxx Fileset Catalog
22. Flink/Spark  资产管理  数据治理:生命周期管理等  统一认证和鉴权  屏蔽底层存储细节  无需入湖直接分析 Tensorflow/Pytorch/Pandas/Ray Gravitino Fileset Java GravitinoVirtualFilesystem Python GravitinoVirtualFilesystem Hadoop Filesystem fsspec HDFS JuiceFS OSS
23.
24. 网页抽取 数据过滤 URL 去重 • 网页抽取:抽取网页数据元数据 • 数据过滤:过滤低质量网页 • URL 去重:根据网页 URL 去重,去掉重复文档 • 文本相似度去重:根据文本的相似度,使用 minhash 算法去重 文本相似度去重
25. 1. 使用 pySpark 进行分布式抽取 2. 使用 gvfs 协议写入到 JuiceFS 3. JuiceFS 挂载到开发机提供本地实验 4. Fileset 管理数据集 原始数据(warc) Fileset on JuiceFS 抽取数据 (parquet) Fileset on JuiceFS
26. 1. datatrove 是 Hugging Face 开源的 Python 库,用 于大规模文本数据处理、过滤和去重。提供预置 函数,支持在本地和 Slurm 集群运行。 2. datatrove 的io 模块为 fsspec,和 fileset 很好结合 抽取数据 (parquet) Fileset on JuiceFS 过滤数据 (parquet) Fileset on JuiceFS
27. 1. 将 URL 作为主键,使用 Paimon 主键表直接去重 2. 设置 sequence.field 特性保留长度最长的文档 过滤数据 (parquet) Fileset on JuiceFS 去重后数据 Paimon
28. • • • Paimon Spark 计算文档签名 长周期作业(20+h)拆分多阶段执行 优先使用 Table, 无需 list 和 rename 目录 根据场景选择,需要主键或聚合模型则使用 paimon Iceberg Spark 计算相似对 Iceberg Spark连通图 计算相似文档 Iceberg Spark 文档去重 JuiceFS
29. 背景:构建标签库,根据标签挖掘帧数据 需求: • 根据唯一的帧 id 和 tag 进行查询 • 上千的标签列,且不定时增加 • 实时入湖 Talos Flink 实时入湖 Iceberg merge into 更新 Iceberg schema evolution Talos Flink 实时入湖 Paimon 主键表 aggration 模型
30. 文件 webdataset Paimon 优点 • 存储方式简单,便于访问 • 文件打包存储,缓解元数据压力 • Parquet 格式存储 • 以 binary 方式存储,可进一步压 缩 • 随机访问性能好 • 图片及文本混合存储,便于检索 缺点 • 数据量大时元数据压力较大 • 随机访问性能差 • • webdataset 图片入湖 数据湖表存储 • Schema evolution 时有存储放大 原始数据以 webdataset 方式进行存储,以 Fileset 进行管理 Schema evolution 方便扩展图片元数据信息, 如标签、图片描述
31.
32. 云原生 湖仓 元数据 统一 多模态 数据湖
33.
34. 大模型正在重新定义软件 Large Language Model Is Redefining The Software

inicio - Wiki
Copyright © 2011-2025 iteam. Current version is 2.147.0. UTC+08:00, 2025-10-27 16:03
浙ICP备14020137号-1 $mapa de visitantes$