开发者学堂课程【2020版大数据实战项目之DMP广告系统(第四阶段):方案_技术方案】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/679/detail/11794
方案_技术方案
内容介绍:
一、回顾 DMP
二、技术方案
三、功能上使用的工具
四、从工程的角度看
五、真实开发的步骤
一、回顾 DMP
已经初步了解了 DMP ,在本小节开始之前,回顾一下 DMP 的主要作用。
DMP 的项目任务,第一个是收集数据,第二个是进行标签化,将和用户相关的数据标签化。简单来说,就是为用户打上对应的标签。但是对于业务系统,大数据的系统一般情况下还要进行策略的辅助,就是运营辅助。比如说大数据一整套框架,一些工具有什么作用,以往在做电商的公司当中,用大数据系统收集业务系统的数据,收集一些日志数据,收集一些 access log ,收集 access log 可以分析当前用户的行为,什么时候访问,哪个时间点访问的最多,收集到运营数据,收集到订单量,每日的同比增长,环比增长。可以把运营数字化,现在时代注重大数据相关内容。在 TNT 系统当中,明显需要策略上的数据辅助,并且自身所做的事情就是数据处理。整个技术方案应该是怎么样。
二、技术方案
首先明确三件事,第一件事就是库, DMP 系统要和 DSP进行交互,收集数据。第二件事,为用户打上标签。第三件事,为运营提供决策服务和数据化的服务。所以看三个灰色的端,第一个数据源,这是数据收集的部分。第二个,为运营提供策略辅助,叫做数据分析师。第三个,为 DSP 提供业务, DSP 通过 DSP 拿到对应的用户数据,这是三端。
三端的配合,首先数据员要经过 spark 做一次 ETL ,然后落地到库的 ODS 表里面,接下来 spark 读取 kudu 当中 ODS 表进行标签化处理,再放到 kudu 的某一张表当中,这张表有可能会同步给 elastic search , DSP 就可以通过 elastic search 进行相关数据检索服务,这时需要 elastic search 的原因也很简单,就是让访问更加的快速,所以首先收集数据,进行 ETL ,落地到 kudu,第四步 Spark 读取 kudu 中的 ODS 层表进行标签化。落地 kudu 放入 es 对外提供 API 访问,这就是路线一。还有其他路线。路线二的目标是对运营提供一些决策,这时候前三步是一样的,都是到 ODS 层的一个表。只是路线二当中读取 ODS的表是为了进行报表的生成和查询,落地到 kudu 当中,分析师就可以根据 kudu 等查询数据进行一系列的决策服务。这就是两条路线。从目的上来看,系统需要有两件事要去做。第一件事需要通过一些可视化的工具,以及在线的工具帮助探索数据,在做任何数据相关开发的时候,要先足够了解数据,通过一系列的查询,以及测试去确定功能该如何完成。
三、功能上使用的工具
zeppelin 是笔记工具,这张图是标准产品的界面,可以去编写 C 语句,编写 sequel 语句,能够把数据查询出来,以图表的形式展示。展示出来对数据的构成和理解就会更加的深刻了,这一步称为数据探索。探索性分析是现阶段比较常见的分析方式,就不是先去写功能,先看一看数据集应该是怎么样的,这是我们在系统当中第一件要做的事。为 DSP 提供服务,让 DSP 通过标签化数据进行查询,就要提供 HTTP 改口的接口给 DSP , DSP 调用接口来获取对应的数据, DSP 对接了很多客户和广告主,广告主向 DSP 发布需求, DSP 自身不具备数据,一方面要进行交互,还有一方面要进行竞价,这就是 RTB ,要和 RTB进行交互。竞价的过程当中,要去找 BMP 来去查询数据,中间这个接口怎么负责,就是 get 接口,比如说在 DNP当中提供 HTTP 服务, DSP 就可以调用某一个接口,向 DSP 提供数据服务,接下来去运营,让产品运营率越来越高,做一些调整,收集到更多的用户数据。
一般的电商网站,或者管理网站,都会有数据的后台,在这个数据后台当中,会有一个仪表盘。比如说当前的业务、当前的平均访问量、当前的负载、安全性或者最近的一些活动大概模式,接下来还有很多图标和数据的展示,这些展示是为了提供给分析师和决策层进行数据查看,假如公司做了 APP ,那么要看到 APP 每天新增的访客数, APP 每天的新增用户数, APP 哪一个区域今天新增了多少用户,要看到 APP 报错率是上升了还是下降等等,都可以通过后台,这就是要做的三件事。
第一件事数据探索,第二件事向 DSP 提供数据服务,第三件事要通过可视化内部正式运营的数据。
四、从工程的角度看
Dmp 类型: idea project 作用: dpm 项目的主工程,编写具体的代码
Dmp_report 类型: zepplelin notebook 作用: zepplilin的一个笔记,负责展示 dmp 进行数据探索和分析时所产生的报表
Dmp_analysis 类型: zepplelin notebook 作用: zepplelin 的一个笔记,负责进行 dmp 数据的探索,从中不断试探发展经验
DMP 分为三个过程,第一个要有 DMP 的主工程, DMP 的主工程在于 idea 的 project 内是独立的 spark 程序,这个工程的所做的事情就是编写具体的代码来去处理和分析数据,为用户数据打上标签。接下来对数据进行探索,使用两个产品的笔记。第一个笔记进行数据的发现,从其中探索经验。辅助理解数据时产生报表,这就是工程的划分,当前精力主要还是放在第一个工程上。
五、真实开发的步骤
环境:测试 储存: kudu 测试
Dmp_analysis 先对数据进行探索,得出规律
Dmp_report 归纳数据特征和规律,通过报表展示
环境:生产 储存: kudu 生产
IDEA dmp project 对数据充分理解后,编写代码进行 etl 操作,并使用 oozie 等工具进行调度执行,处理过的数据落地到 kudu 表中
IDEA dmp project 生产中的数据已经经过清洗,此时可以编写代码进行标签库等一系列的数据分析和挖掘任务,并将结果落地到 elasticsearch 中,向 dsp 提供服务
IDEA dmp project 在运营过程中,会产生一些运营指标,可以针对运营指标进行数据分析和可视化,提供给产品部分追踪运营状况,此步骤可以通过 echats 等工具在后台系统中进行可视化,使用 sql 分析数据
大概有以下几个步骤。第一步,对数据进行探索,使用 SAP 动态执行的程序,动态执行 SQL 的代码工具探索数据,归纳出数据的特征和规律,该怎么进行优先生成,对数据建立在充分理解的前提下,直接编写 etl 使用visit 等调度工具进行调度执行。比如说写 EtL 程序,每天执行一次,再写一个 etl程序,这个数据集当中,把 IP 转成省市信息,可能需要一到五点,接下来数据已经经过清洗,也经过 etl ,然后装载到 ODS 表当中,那么要进行数据的一系列挖掘和分析的任务。数据挖掘分析,为数据打上标签。为数据集当中所代表的独立用户打上标签,接下来为 DSP 提供服务。第五步,在运营的过程当中,会不断的产生运营的指标。对这些运营的指标进行量化,辅助我们的决策。比如说做了功能的更新,要看到这个功能的更新会带来什么样的影响,这就是知识开发时候的步骤,但是整个的步骤可能是循环的,比如数据不是一次性的,而是不断升级的。
所以数据是源源不断的,要源源不断的对数据来进行探索,然后要对数据的特征来进行归纳,对数据进行调度执行,进行 etl 处理,还要不断去分析。现在 ops 的任务是这样的数据,来执行数据挖掘,数据分析的任务。也就是前四步都是持续运行的,需要借助一些工具,能够调动 spark 程序或者其他的计算程序进行相应的处理,最终运营的数据也是要不断的分析,不断的去收集。这就是技术方案。技术方案大致分为了几个不同的策略。
第一个策略整体上的流程应该是怎么样,对外提供的两个服务应该是怎么样。第二步,探索使用什么样的工具,如何向 DSP 提供服务,内部的可视化运营的数据应该怎么展示。第二步其实就是功能上应该使用什么样的工具。第三步,从工程的角度上来看,划分了哪些工程。第四步支持的情况下该如何进行开发,这个步骤应该是怎么样的。这就是对于整个项目技术方案上的介绍,大家一定要有一个清晰的思路。从不同的侧面来去看同一件事情,比如说介绍技术方案时,不仅要从业务上角度,要从流程、工具、架构、构成角度分析。