千家信息网

携程基于Flink的实时特征平台

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,作者:刘康本文来自7月26日在上海举行的 Flink Meetup 会议,分享来自于刘康,目前在大数据平台部从事模型生命周期相关平台开发,现在主要负责基于flink开发实时模型特征计算平台。熟悉分布式
千家信息网最后更新 2026年11月01日携程基于Flink的实时特征平台

作者:刘康

本文来自7月26日在上海举行的 Flink Meetup 会议,分享来自于刘康,目前在大数据平台部从事模型生命周期相关平台开发,现在主要负责基于flink开发实时模型特征计算平台。熟悉分布式计算,在模型部署及运维方面有丰富实战经验和深入的理解,对模型的算法及训练有一定的了解。

本文主要内容如下:

  • 在公司实时特征开发的现状基础上,说明实时特征平台的开发背景、目标以及现状

  • 选择Flink作为平台计算引擎的原因

  • Flink的实践:有代表性的使用示例、为兼容Aerospike(平台的存储介质)的开发以及碰到的坑

  • 当前效果&未来规划

一、在公司实时特征开发的现状基础上,说明实时特征平台的开发背景、目标以及现状

1、原实时特征作业的开发运维;

1.1、选择实时计算平台:依据项目的性能指标要求(latency,throughput等),在已有的实时计算平台:Storm Spark flink进行选择

1.2主要的开发运维过程:

  • 80%以上的作业需要用到消息队列数据源,但是消息队列为非结构化数据且没有统一的数据字典。所以需要通过消费对应的topic,解析消息并确定所需的内容

  • 基于需求中的场景,设计开发计算逻辑

  • 在实时数据不能完全满足数据需求的情况,另外开发单独的离线作业以及融合逻辑;

    例如:在需要30天数据的场景下,但消息队列中只有七天内的数据时(kafka中消息的默认保留时间),剩下23天就需要用离线数据来补充。

  • 设计开发数据的校验和纠错逻辑

    消息的传输需要依赖网络,消息丢失和超时难以完全避免,所以需要有一个校验和纠错的逻辑。

  • 测试上线

  • 监控和预警

2、原实时特征作业的开发痛点

  • 消息队列数据源结构没有统一的数据字典

  • 特征计算逻辑高度定制化,开发测试周期长

  • 实时数据不能满足需求时,需要定制离线作业和融合逻辑

  • 校验和纠错方案没有形成最佳实践,实际效果比较依赖个人能力

  • 监控和预警方案需要基于业务逻辑定制

3、基于整理的痛点,确定下来的平台目标

  • 实时数据字典:提供统一的数据源注册、管理功能,支持单一结构消息的topic和包含多种不同结构消息的topic

  • 逻辑抽象:抽象为SQL,减少工作量&降低使用门槛

  • 特征融合:提供融合特征的功能,解决实时特征不能完全满足数据需求的情况

  • 数据校验和纠错:提供利用离线数据校验和纠错实时特征的功能

  • 实时计算延迟:ms级

  • 实时计算容错:端到端 exactly-once

  • 统一的监控预警和HA方案

4、特征平台系统架构

cdn.xitu.io/2019/4/26/16a58bda2256a5fc?w=865&h=525&f=png&s=57691">

现在的架构是标准lamda架构,离线部分由spark sql + dataX组成。现在使用的是KV存储系统Aerospike,跟redis的主要区别是使用SSD作为主存,我们压测下来大部分场景读写性能跟redis在同一个数据量级。

实时部分:使用flink作为计算引擎,介绍一下用户的使用方式:

  • 注册数据源:目前支持的实时数据源主要是Kafka和Aerospike,其中Aerospike中的数据如果是在平台上配置的离线或者实时特征,会进行自动注册。Kafka数据源需要上传对应的schemaSample文件

  • 计算逻辑:通过SQL表达

  • 定义输出:定义输出的Aerospike表和可能需要的Kafka Topic,用于推送Update或者Insert的数据的key

用户完成上面的操作后,平台将所有信息写入到json配置文件。下一步平台将配置文件和之前准备好的flinkTemplate.jar(包含所有平台所需的flink功能)提交给yarn,启动flink job。

5、平台功能展示

1)平台功能展示-数据源注册

2)实时特征编辑-基本信息

3)实时特征编辑-数据源选择

4)实时特征编辑-SQL计算

5)实时特征编辑-选择输出

二、选择Flink的原因

我们下面一个我们说一下我们选择flink来做这个特征平台的原因。

分为三个维度:最高延迟、容错、sql功能成熟度

  • 延迟:storm和flink是纯流式,最低可以达到毫秒级的延迟。spark的纯流式机制是continuous模式,也可以达最低毫秒级的延迟

  • 容错:storm使用异或ack的模式,支持atLeastOnce。消息重复解决不。spark通过checkpoint和WAL来提供exactlyOnce。flink通过checkpoint和SavePoint来做到exactlyOnce。

  • sql成熟度:storm现在的版本中SQL还在一个实验阶段,不支持聚合和join。spark现在可以提供绝大部分功能,不支持distinct、limit和聚合结果的order by。flink现在社区版中提供的sql,不支持distinct aggregate

    三、Flink实践

    1、实⽤示例

2、兼容开发:flink现在没有对Aerospike提供读写支持,所以需要二次开发

3、碰到的坑

四、平台当前效果&未来规划

当前效果:将实时特征上线周期从原平均3天-5天降至小时级。未来规划:

  • 完善特征平台的功能:融合特征等

  • 简化步骤,提高用户体验

  • 根据需求,进一步完善SQL的功能例如支持win的开始时间offset,可以通过countTrigger的win等

下一步的规划是通过sql或者DSL来描述模型部署和模型训练

更多资讯请访问 Apache Flink 中文社区网站

数据 实时 特征 平台 开发 消息 功能 逻辑 数据源 支持 选择 模型 需求 作业 延迟 效果 现状 结构 统一 原因 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 江苏根荣互联网科技 科技和互联网公司 互联网科技深圳 河南真二互联网科技有限公司 科技服务与互联网 杭州互联网科技公司 菲比寻常互联网科技 人人互联网科技是培训 居家互联网科技有限公司 中国科技互联网公司收入 常德市电业局互联网科技部 移动互联网科技公司 晋城互联网科技 朱啸虎曾投资哪些互联网科技企业 互联网公司高科技产品 有人说阿里系是互联网科技企业 陕西云淼互联网科技公司 山东蛋芒互联网科技有限公司 平安好医生打造互联网科技医疗 知域互联网科技有限公司官网 互联网科技公司经营范围 互联网金融监管科技数据 互联网前沿科技 恒银科技与互联网金融 创业天下互联网科技有限公司 浙江互联网科技研学营 语蝶互联网科技有限公司 陕西九四连强互联网科技有限公司 中国互联网公司的科技投入 科技互联网专业务虚会材料
0