概述
Pora是Personal Offline Realtime Analyze的简称。
几年前,淘宝的搜索结果已经不再千人一面的商品排序,而是深度融合了用户的个性化偏好的搜索结果。而实时变化的用户行为,能帮助算法更好地预测用户接下来的个性化偏好。为此需要一个系统能实时地获取用户行为,并支持算法实时修改用户或商品的个性化信息。这个系统开始了,叫做Pora。
整个搜索pipeline上看,Pora位于引擎的离线部分。设计Pora的一个目标是实时处理流数据。因此Pora必须同时具备海量数据处理(高吞吐)和实时(低延迟)。除此之外,Pora还需要成为一个平台。众多算法模块可以运行、灵活调整和实时生效。
Pora在搜索实时计算体系的位置,见图1:
图1.搜索实时计算体系

Pora总体架构
从诞生以来,Pora经过了多次演变。 最初是storm集群上开发的应用。2014年迁移到Yarn集群,IStream作为流计算框架。2015年,Pora做了Tec重构。业务不断扩展,从简单的用户维度性别个性化到商品维度个性化,再到如今同时支持用户和商品两个维度多个场景的个性化,支持实时反作弊、推荐、赛马等业务。2015年开始有在线学习框架,现有LR/FTRL算法和实时矩阵分解算法。
目前的Pora总体架构,如下图2:

2015年Pora的重要改动
1. 基于Tec重构
原有 Pora 的核心层独立出来,称为Tec项目。Pora定位业务逻辑和算法接口,开发更简洁。Tec是轻量级实时计算框架,支持快速开发高吞吐、低延迟的实时应用。例如AliExpress(AE)搜索的离线数据库Dump业务,基于Tec实现了小时批量到秒级实时的跨越。
图3. Pora的技术堆栈

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/34099.html