携程实时特征平台:基于Flink的构建与实践

0 下载量 88 浏览量 更新于2024-08-28 收藏 353KB PDF 举报
"携程构建了一套基于Flink的实时特征平台,旨在解决公司在实时特征开发过程中遇到的问题,如数据源不规范、开发运维复杂、需求定制化高等。平台选择了Flink作为计算引擎,并实现了与Aerospike存储系统的兼容,目标是提供统一的数据管理、简化逻辑开发、解决数据融合及校验纠错问题,同时保证低延迟和高容错性。平台采用Lambda架构,离线部分由SparkSQL和DataX协同工作,存储系统Aerospike利用SSD提高性能。" 携程的实时特征平台是在公司原有实时计算平台(如Storm、Spark、Flink)的基础上,根据性能指标(如延迟、吞吐量)选择Flink进行建设。平台开发的背景主要是因为原有的实时特征作业存在诸多痛点,包括非结构化的消息队列数据源、定制化的计算逻辑、离线作业的额外需求、数据校验和纠错的复杂性以及监控预警的定制化问题。 平台的目标主要包括以下几个方面: 1. 实时数据字典:提供统一的数据源管理和注册机制,支持不同结构的消息处理,以规范化数据源。 2. 逻辑抽象:通过将复杂的计算逻辑转换为SQL,降低开发难度,缩短测试周期。 3. 特征融合:设计融合功能,弥补实时数据不足时的缺失,减少离线作业的开发。 4. 数据校验和纠错:建立一套标准方案,利用离线数据对实时特征进行校验和纠错,提升数据质量。 5. 低延迟实时计算:追求毫秒级的计算延迟,提升服务响应速度。 6. 高容错性:实现端到端的exactly-once语义,确保数据处理的准确性。 7. 统一的监控预警:提供标准化的监控和预警机制,降低业务依赖个人能力的风险。 平台的架构采用Lambda架构,结合了SparkSQL和DataX用于离线部分,利用Aerospike作为KV存储系统,其SSD主存提供了高性能的存储能力。在实践中,Flink被用来处理各种典型应用场景,并在与Aerospike的集成中遇到了挑战,但最终成功解决了兼容性问题。 通过这个实时特征平台,携程旨在提升数据处理效率,降低运维成本,同时保证数据的准确性和实时性,以更好地服务于公司的业务需求和决策支持。未来,平台还将持续优化,可能包括扩展更多的功能、提升性能、优化用户体验等方面,以适应不断变化的业务环境和技术发展。