1、DataFunSummit#2024面向Data+AI时代的数据湖优化与实践演讲人:李志方 腾讯 高级工程师01AI时代下数据湖面临的挑战02基于PyIceberg的AI训练/推理链路03Apache Iceberg 简介04Iceberg向量表与向量查询目录 CONTENTDataFunSummit#202401AI时代下数据湖面临的挑战数据湖的发展趋势 第一代数据湖(03)只支持分区粒度重写集中式元数据(HMS)HDFS存储数据 第二代数据湖(18)支持行级事务(upsert)分散式元数据(Mainfest)云存储S3/GCS/etcIceberg数据组织离线T+1大数据存储&查询近实时大
2、数据存储&查询第三代数据湖?关系型数据多媒体数据向量数据图数据实时入湖数据加工、离线查询数据科学模型训练/推理向量查询AI任务Data任务数据湖在湖上管理AI数据AI场景的数据管理痛点source:https:/ column)数据版本难以管理,尤其是跨系统的一致性难以保证AI数据读写性能差不同文件格式的重复序列化/反序列化不同存储介质的重复读写I/OAI数据管理的前沿探索https:/www.deeplake.aiDeepLake:版本管理&可视化https:/ Alpha:基于ORC的AI列存格式Apple HQI(SIGMOD 23):Batch向量查询优化MSRA VBase(OSDI
3、 23):标量/向量混合查询阿里云 ABDV(VLDB 20):标量/向量混合查询近期的重要论文DataFunSummit#202402Apache Iceberg 简介Iceberg表存储结构https:/iceberg.apache.org/spec/可插拔Storage Local FS HDFS S3 GCS COS 可插拔Catalog Hive Rest Hadoop 可插拔Format Parquet ORC AVROCatalog层存储 tablemetadata location的映射关系,并提供原子更新能力Metadata层Metadata File:存储表的历史快照(sn
4、apshot)信息Manifest List:代表单个快照(snapshot),表示表的某个时刻状态,可以通过partition range进行过滤Mainfest File:包含一组DataFile的集合,以及partition value,列级min-max等统计信息用于过滤Data 层Data File:存储表的底层数据Delete File(可选):记录表中被删除的数据12345Iceberg支持数据更新IdNameAge1AAA302BBB403DDD504EEE20IdNameAge1AAA302BBB403ccc50文件重写IdNameAge1AAA302BBB403ccc50文
5、件不重写x.parquetx1.parquetIdNameAge1AAA302BBB403ccc50Delete File+filepositionx.parquet2id3Posistion DeleteEquality DeleteIdNameAge4EEE20+Read Task读时合并Copy-on-Write表(读优化)Merge-on-Read表(写优化)单个DataFile 本身是immuatable的x.parquety.parquetIceberg支持多引擎/多语言开放式 Table Spec社区实现AI生态圈(基于Python)无缝交互引入序列化开销(JVMPython w
6、orker)DataFunSummit#202403基于PyIceberg的AI训练/推理链路PyIceberg 编程API介绍import pyicebergfrom pyiceberg.catalog import load_catalogcatalog=load_catalog(”foo)t1=catalog.load_table(”default.t1)plan=t1.scan()df=session.sql(select*from t1)df.show()torch_dataset=plan.to_torch_dataset()tf_dataset=plan.to_tf_datase