首页天道酬勤阿里云地球引擎(阿里巴巴开发的收索引擎)

阿里云地球引擎(阿里巴巴开发的收索引擎)

admin 12-06 19:48 249次浏览

导读:各位朋友大家好,我是满衣,来自阿里巴巴的广告数据平台部,主要负责广告数据计算引擎的研发。本文主要与大家分享高性能分布式计算引擎FAE。FAE主要侧重于用户行为分析和广告归因分析。在这些场景下,FAE的计算性能可以达到一般OLAP发动机的一两个数量级。具体内容包括:

用户行为分析领域的技术挑战FAE数据模型和系统架构应用场景和优化思路简介01用户行为分析领域的技术挑战

用户行为包括用户增强域和归属域。

1.营销领域的用户归因分析

事件序列发生时,用户的归因行为是什么?在这个归因过程中,要分清因果。

原因:比如在做营销活动的时候,用户通常会看到广告联系人,包括曝光、点击或者其他任何接触用户的方式。结果:指广告主预期的事件,如注册、关闭、收款、购物车添加或广告主预期的任何其他类似行为。归因分析的结果是将这些广告的转换结果分发给适当的广告联系人。这种分配方式被称为属性模型,它有多种,如数据驱动、一键点击等。归因分析一般用于衡量广告或营销活动的有效性,如渠道ROI、创造力、人群定向准确性,以及制定广告预算分配。

2.增加使用领域的用户行为分析

用户增长领域的用户行为分析主要回答以下问题:

时间:什么时间段和地点:在什么渠道,在什么设备上,在什么活动中:有多少人,谁,性别,新老客户,访客标签事件:发生了什么?注册、浏览、咨询和交易用户行为分析的模型包括漏斗模型、保留模型、路径模型、画像模型、分布模型等。应用场景一般用于产品流程设计与优化、用户增长与运营、高层业务决策等。

3.营销归因领域的技术挑战

归因过程可以分为几个步骤:

第一步是条件的筛选,比如归属过程是采用所有广告联系人,还是只采用曝光归属,还是点击归属?第二步是行为之间的关联,在关联过程中有很多不同的选择,比如你点击的产品和你转换的产品是产品吗?如果是,就叫同一个产品属性,还有同一个品牌属性,同一个店铺属性,这就叫关联规则。第三步是权重分配,体现在模型选择的多样性上。第四步是维度聚合,例如,根据各种其他维度,如活动和商店。第五步是结果筛选,比如筛选新客户还是老客户。在这个过程中,用户几乎可以在每个环节配置不同的条件,所以参数无法预测。公司之前也尝试过使用通用的OLAP系统,但是效果非常不理想。对于复杂的操作,基本上不可能秒输出。

4.用户行为分析的特点

用户行为分析主要分为以下特征:

第一个特点是必须以人为本,分析的对象是来访者,分析的过程集中在一个来访者的内心,而来访者之间没有任何联系。第二个特点是时机。无论是过程分析、漏斗分析还是归因分析,都要有时间序列。第三个特点是查询方式灵活。第四个特点是数据量巨大。例如,一个广告商通常有数百亿的曝光数据,以及数千亿的行为接触和数十亿的转换订单。第五个特点是交互分析,需要尝试各种条件。比如用户有时候想看品牌,有时候想看店铺的规则,有时候想看时间等等。这些条件的组合是巨大的,查询延迟要求在秒或毫秒级别。02FAE简介

基于以上特点,阿里巴巴设计了FAE计算引擎,称为快速归因引擎。后来扩展到支持基于用户增长领域的模型。所以现在它被称为快速分析引擎。

FAE是一个分布式MPP计算引擎,专注于用户行为分析和广告归因分析,由阿里妈妈独立开发。FAE可以在十秒钟内完成数百亿条广告的归属分析,内置很多。

种模型并支持用户自主扩展分析模型。主要特点包括:灵活、高性能、扩展性等;计算模式支持即席、离线和近实时三种模式。

与类似系统对比,例如Google解在决这个问题时,使用mesa + shasta系统;使用的技术存储结构是时间分片增量模型加预聚合;特点是近实时、物化视图、秒级,灵活性一般。百度使用的是Palo系统;使用的存储结构类似mesa;特点是查询基于impala、秒级等。还有一些开源的其他系统。FAE的存储结构是AFile,FAE的特点是数据量非常的大(百亿级),内置了很多模型,能支持较低的QPS,扩展性较强。

03FAE的数据模型

FAE的数据模型是这个系统最关键的地方。这个数据模型称为AFile,全称Attribution File,已经申请了专利。用户行为分析的计算过程可以分为以下几步:

第一步,把数据存到Mysql,或者存到任何其他的数据库中。例如第一条数据用户ssdhf3月1号注册,表中还有很多其他的属性,这是他的行为事件。第二步,抽取用户数据。第三步,基于表中的事件,用户在做行为分析时,要先把数据按照用户的ID进行分组。例如要把ssdhf的行为分一个组、默默的便当的行为也要分成组。第四步,在ID内部要按照时间排序。比如3月1号、3月2号,按时间的升序或者降序进行排列。第五步,做udaf或者Map Reduce操作,然后基于这样的一个排好序的数据,就可以做上面提到的规律模型。

通常在大数据平台上,数据开发者在设计用户表时,按照用户ID把ssdhf分布到一个节点上。但是ssdhf的数据与默默的便当的数据还是有可能混杂在一起。所以还是需要按照用户ID在计算时,把它们单独拆开。阿里巴巴想到的一个最基础的方法就是上述过程实际上没有必要在计算时完成,可以在数据导入时,作为导入的一部分。由此,设计了AFile存储结构,这样的存储结构,可以把事件预先存储起来,快速的定位因与果。

04FAE的系统架构

FAE是围绕AFile数据结构来设计的,引入了四个不同的模块,如下:

第一个模块叫master,master是对外的一个出口,matter可以部署很多个,相互之间没有任何的耦合关系,即完全是无状态的。第二个模块叫importer,importer是一个导入器,它可以从外部的ODPS导入数据。当用户发起导入任务时,首先由master发消息给importer,importer完成导入任务。同样一个任务可以分配多个importer来完成。第三个模块叫merger,在importer导入完成之后,会对数据进行分片,分片会被发送到各个节点上,每一个节点上部署一个merger。第四个模块叫worker,worker是一个计算节点。计算节点是指当用户来了一个query时,这个query将会由master分配给各个worker。worker加载本地的AFile进行快速的运算,运行相应的模型运算得到结果。最后进行一个按照树形的聚合结构发送到master,最后返回给用户。整个查询的过程在毫秒级或者几秒。

除了这四个主要的开发的模块之外,FAE还依赖Redis。Redis主要做元数据管理,有效利用资源。另外一个依赖是Mysql,Mysql主要是用来存储日志等辅助信息。辅助模块包括监控器以及与运维相关的模块。所以整体的架构是一个较为传统的MPP架构。

FAE现在支持两种模式。第一种模式是本地磁盘的模式,本地盘各个节点之间独自访问自己的磁盘,绝不会去访问别人的盘。同时还支持另外一种分布式的存储架构。在阿里巴巴内部这种分布式存储就叫盘古,在业界通常叫Network Attached Storage(NAS)。基于NAS的好处是节点数可以进行分组,并且是无限扩展。

05FAE的应用场景与优化思路

1. 行为频次分析

行为频次分析场景主要是统计每个用户行为的次数。FAE中数据直接在导入时就已经按照用户ID分离,故其处理速度,通常能快十几到一百倍。

2. 人群流转模型

人群流转是指把用户做一个分层,即指现在一个用户是一个比较浅的接触层,接下来我要让他跟我有一定的关系,最后要变成一个购买之类的行为。那这种多种分层之间的流转的数据量级是非常大的,无法使用普通的机器做运算。所以阿里巴巴就做了一种压缩的数据结构。就是说在这种的基础之上,并不存储全量,只存储增量数据。增量数据是指相对于原始状态发生变化的数据。通过这样的方式,数据量级就可以压缩十倍或者几十倍了。

3. 路径分析

路径分析是指淘宝有很多广告渠道,比如有明星店铺、品专店铺等渠道。假设用户的广告投了一个明星店铺,又投了一个其他的品专店铺,可以看到具体的流转路径。

4. 留存分析

假设某天有一千三百个人浏览了我们的页面。在接下来第一天、第二天、第三天之后,这些人的后续行为有没有做点击或者其他行为。

5. 漏斗分析

漏斗分析,假设你要想分析一个商品,从时间轴上看,访问主页、访问详情页、产生购买行为的各个阶段的转化率是多少。

6. 基于行为的访客圈选

圈选是指把符合条件的访客给圈出来,圈出来之后做分析或者说做投放。基于行为的访客圈选指基于访客的行为圈选符合条件的访客。

06问答环节

问:导入数据时,是增量导入还是全部导入?

答:增量导入,目前我们有实时导入与离线导入两个部分。离线导入是每天只导一次,但是每次需要导入百亿级数据;实时导入是持续导入,数据持续导入但每隔五分钟更新一次。

问:AFile中的时间顺序是在插入时保证的吗?

答:是的,插入时保证。AFile中有两份数据,一份是离线数据,一份是实时数据,然而这两份AFile数据不会重复,因为在更新离线数据时,会自动删除旧的实时数据,因为实时数据永远保留最新数据。

问:FAE是倾向于CPU密集型还是IO密集型?

答:这需要看FAE的查询是冷查询还是热查询,冷查询是IO密集型,热查询是CPU型查询。

今天的分享就到这里,谢谢大家。

分享嘉宾:

分享嘉宾:饱满的外套 阿里 高级技术专家

编辑整理:杨丽 大连理工大学

出品平台:DataFunTalk

openjdk与Oraclejdk的区别linux魔法键HTML的p标签可不可以不用alignDeepRust匹配:有更好的方法吗?C++构造析构赋值运算函数怎么应用Python Scala中怎么使用def语句定义方法雷士灯具管理系统
2021年日历全年表(回顾2019展望2020) 冒险与挖矿2(一键挖矿)
相关内容