特征配置角度:平台根据每个特征配置,单独启动任务进行特征拉取 。
上游Hive表角度:Hive表中多个特征字段,统一放至同一任务中拉取 。
上述两种方案都存在各自问题,不能很好满足业务需求 。因此,特征平台结合两个方案的优点,并经过探索分析,提出了特征语义的概念:
特征平台对特征语义的处理分为两个阶段:语义抽取和语义合并,如下图所示:
3.1.2 特征多任务调度为了保证每天数十TB数据量的快速同步,特征平台首先按照特征的处理流程:获取、聚合和同步,分别制定了特征语义任务、特征聚合任务和特征同步任务:
同时,特征平台搭建了多任务调度机制,将不同类型的任务进行调度串联,以提升特征同步的时效性,如下图所示:
Protobuf的常规使用方式是通过Proto文件维护特征配置 。新增特征需编辑Proto文件,并编译生成新版本JAR包,在离线&在线同时发布更新后,才能生产解析新增特征,导致迭代成本较高 。Protobuf也提供了动态自描述和反射机制,帮助生产侧和消费侧动态适配消息格式的变更,避免静态编译带来的JAR包升级成本,但代价是空间成本和性能成本均高于静态编译方式,不适用于高性能、低时延的线上场景 。
针对该问题,特征平台从特征元数据管理的角度,设计了一种基于Protobuf的特征动态序列化机制,在不影响读写性能前提下,做到对新增特征读写的完全配置化 。
为方便阐述,先概述下Protobuf编码格式 。如下图所示,Protobuf按“键-值”形式序列化每个属性,其中键标识了该属性的序号和类型 。可以看出,从原理上,序列化主要要依赖键中定义的字段序号和类型 。
文章插图
因此,特征平台通过从元数据管理接口查询元数据,来替换常规的Proto文件配置方式,去动态填充和解析键中定义的字段序号和类型,以完成序列化和反序列化,如下图所示:
3.1.3.2 特征多版本特征数据存储于KV系统中,为在线服务提供特征的实时查询 。业界常见的特征在线存储方式有两种:单一版本存储和多版本存储 。
因此,特征平台选择特征多版本作为线上数据存储方式 。
传统的多版本方式是通过全量数据的切换实现,即每天在全量数据写入后再进行版本切换 。然而,特征平台存在增量和全量两种更新方式,不能简单复用全量的切换方式,需考虑增量和全量的依赖关系 。因此,特征平台设计了一种适用于增量&全量两种更新方式下的版本切换方式(如下图所示) 。该方式以全量数据为基础,白天进行增量更新,版本保持不变,在增量更新结束后,定期进行全量更新(重写),并进行版本切换 。
3.2 特征获取计算:高性能的特征获取计算能力特征获取计算为模型服务、业务系统、离线训练提供特征的实时获取能力和高性能的计算能力,是特征平台能力输出的重要途径 。
- 外卖代运营靠谱吗,外卖代运营的详细介绍?
- 什么网站可以免费推广,做的比较好的软文推广平台有哪些?
- 转让店铺哪个平台最好,个人网店转让平台哪家好?
- 淘宝所有类目列表,淘宝所有类目列表有哪些?
- 淘宝二手交易平台,淘宝二手交易平台哪个靠谱?
- 论坛推广平台有哪些,论坛推广平台有哪些渠道?
- 淘宝如何上架,淘宝如何上架商品?
- 淘宝兼职平台,淘宝兼职平台有哪些?
- 外卖平台防暑药搜索量暴涨:销量跟着水涨船高
- 京东众筹靠谱吗,京东众筹靠谱吗平台怎么进?