本文整理自火山引擎云原生计算研发工程师刘纬在 DataFunCon 2022 上的演讲。随着业务的发展,字节跳动特征存储已到达 EB 级别,日均增量 PB 级别,每天训练资源量级为百万 Core。随之而来的是内部业务方对原始数据存储、特征回填需求、降低成本、提升速度等需求的期待。本次分享将围绕问题背景、选型& Iceberg 简介、基于 Iceberg 的实践及未来规划展开。
作者:刘纬
整理:王吉东,于惠
问题背景
用户使用流程
如我们所知,字节跳动是一家擅长做 A/B test 的公司。以特征工程调研场景为例,流程如下:
- 首先由算法工程师进行在线特征抽取;
- 将抽取到的特征,使用 Protobuf 的格式按行存至 HDFS;出于存储成本的考量,一般只存储抽取后的特征,而不存储原始特征
- 将 HDFS 存储的特征交由字节自研的分布式框架( Primus )进行并发读取,并进行编码和解码操作,进而发送给训练器。
- 由训练器对模型进行高效训练如果模型训练效果符合算法工程师的预期,说明该调研特征生效,进而算法工程师对调研特征进行回溯,通过 Spark 作业将特征回填到历史数据中,分享给其他算法工程师,进而迭代更多的优质模型如果模型训练效果不符合算法工程师的预期,则调研特征不对原有特征集合产生影响