文档

需求分析

更新时间:

为保证您可以顺利完成本次实验,请先了解实验业务背景并完成准备工作。

注意事项

  • 本实验提供教程所需用户信息数据与网站访问测试数据,您可直接使用。

  • 本实验提供数据仅作为阿里云大数据开发治理平台DataWorks数据应用实操使用,所有数据均为人工Mock数据。

业务背景

为了更好的制定企业经营策略,现需要从用户网站行为中获取网站用户群体基本画像数据,例如,用户群体地理属性、社会属性等,实现定时定点进行画像分析,进而实现网站流量精细化运营操作。

步骤一:了解已有业务数据

实际操作前,请先了解该项目背景下企业已有的业务数据及其数据格式,以及业务背景分析需要的目标用户画像基本结构。

OSS原始日志数据分析(user_log.txt)

以下为OSS中存储的user_log.txt文件原始数据。

$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent"$http_referer" "$http_user_agent" [unknown_content];

可根据原始日志数据获取到如下有效信息。

字段名称

字段说明

$remote_addr

发送请求的客户端IP地址。

$remote_user

客户端登录名。

$time_local

服务器本地时间。

$request

请求,包括HTTP请求类型+请求URL+HTTP协议版本号。

$status

服务端返回状态码。

$body_bytes_sent

返回给客户端的字节数(不含header)。

$http_referer

该请求的来源URL。

$http_user_agent

发送请求的客户端信息,如使用的浏览器等。

MySQL用户信息数据结构(ods_user_info_d)

字段名称

字段说明

uid

用户名

gender

性别

age_range

年龄分段

zodiac

星座

步骤二:分析产出目标用户画像数据结构

根据原始数据分析可获得的有效数据,并基于业务需求确认最终数据表结构。

字段名称

字段说明

uid

用户名

region

地域

device

终端类型

pv

浏览量

gender

性别

age_range

年龄分段

Zodiac

星座

步骤三:数据流与工作流设计

image.png
  1. 根据规范设计表名

    参考规范设计表名。本案例设计5张表。表命名规范详情请参见:ODS层设计规范

    • 用户基本信息表:ods_user_info_d

    • 网站访问日志原始数据表:ods_raw_log_d

    • 网站访问日志明细表数:dwd_log_info_di

    • 用户网站访问信息宽表:dws_user_info_all_di

    • 用户画像数据:ads_user_info_1d

  2. 根据规范设计数据流

    本实验使用数据集成离线同步任务将用户信息数据与用户网站访问记录数据分别同步至MaxCompute各表,并通过ODPS SQL任务,基于MaxCompute计算引擎进行逐级加工处理,产出最终目标用户画像数据,具体逻辑参见图示。

  3. 根据规范设计节点名

    为更好的定位节点与产出表,当前实验将节点产出表默认作为节点名,建议实际开发时也保持该规范。

  4. 根据规范设计工作流(即业务流程):

    • 基于数据流设计工作流:DataWorks上任务上下游关系遵循节点名与表名一一对应原则,基于数据流设计工作流。节点命名规范详情请参见:配置同周期调度依赖

    • 新增业务流程管理设计:由于OSS同步任务(ods_raw_log_d)与MySQL同步任务(ods_user_info_d)为原始业务数据写入数仓,数仓侧均没有实际血缘依赖,且两个任务间没有统一的根节点,所以需要新增虚拟节点WorkShop_Start用于统筹管理该用户画像分析业务流程。

      本案例中,通过将虚拟节点WorkShop_Start的定时时间设置为每日00:15执行,实现整个用户画像分析每日00:15分开始调度执行的需求。

说明

当前案例基于DataWorks上游执行完成才会触发下游执行的背景,以及虚拟节点执行时,系统直接返回成功,不会真正执行的特性,将虚拟节点WorkShop_Start作为同步任务ods_raw_log_dods_user_info_d的上游节点,从而达到虚拟节点WorkShop_Start统筹管理整个用户画像分析业务流程的目的。

步骤四:汇总需求

阶段

操作对象

说明

数据采集阶段

ods_user_info_d

将MySQL中的用户数据ods_user_info_d同步至MaxCompute的ods_user_info_d表。

ods_raw_log_d

将OSS中的网站访问日志user_log.txt同步至MaxCompute的ods_raw_log_d表。

数据加工阶段

dwd_log_info_di

通过函数正则等方式对MaxCompute日志数据的表ods_user_info_d进行加工,拆解为可分析字段(例如根据IP获取地域信息),写入dwd_log_info_di表中。

dws_user_info_all_di

通过将用户基本信息ods_user_info_d和初步加工后的日志数据dwd_log_info_di进行汇总产出用户信息宽表 dws_user_info_all_di。

ads_user_info_1d

通过对用户信息宽表dws_user_info_all_di进一步加工产出目标用户画像数据。

数据质量监控阶段

ods_raw_log_d

对每日同步的原始日志数据进行表行数非0监控,避免后续无效加工,及时止损。

ods_user_info_d

对每日同步的用户信息数据进行表行数非0校验(强规则)和业务主键唯一性校验(弱规则),避免后续无效加工,及时止损。

ads_user_info_1d

对每日用户数据进行表行数波动监测(弱规则)及业务主键唯一性校验(强规则),以此观察每日UV的波动,以便及时了解应用动态。

数据可视化阶段

ads_user_info_1d

通过DataWorks数据分析对用户画像数据进行可视化与分析展示。包括:

  • 城市注册人数排行榜分析

  • 注册会员访问次数年龄分布

  • 注册会员访问次数性别分布

  • 男女星座访问次数分布