为保证您可以顺利完成本次实验,请先了解实验业务背景并完成准备工作。
注意事项
本实验提供教程所需用户信息数据与网站访问测试数据,您可直接使用。
本实验提供数据仅作为阿里云大数据开发治理平台DataWorks数据应用实操使用,所有数据均为人工Mock数据。
本实验中,数据同步和数据加工部分的任务可以通过ETL工作流模板一键导入。在导入模板后,您可以前往目标空间进行操作,并自行完成后续的数据质量监控和数据可视化操作。
仅空间管理员角色可导入ETL模板至目标工作空间,为账号授权空间管理员角色详情请参见空间级模块权限管控。
导入ETL工作流模板,详情请参见ETL工作流快速体验。
ETL工作流模板快捷入口,请点击网站用户行为分析。
业务背景
为了更好的制定企业经营策略,现需要从用户网站行为中获取网站用户群体基本画像数据,例如,用户群体地理属性、社会属性等,实现定时定点进行画像分析,进而实现网站流量精细化运营操作。
步骤一:了解已有业务数据
实际操作前,请先了解该项目背景下企业已有的业务数据及其数据格式,以及业务背景分析需要的目标用户画像基本结构。
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 | 星座 |
步骤三:数据流与工作流设计
根据规范设计表名:
参考规范设计表名。本案例设计5张表。表命名规范详情请参见:ODS层设计规范。
用户基本信息表:ods_user_info_d
网站访问日志原始数据表:ods_raw_log_d
网站访问日志明细表:dwd_log_info_di
用户网站访问信息宽表:dws_user_info_all_di
用户画像数据:ads_user_info_1d
根据规范设计数据流:
本实验使用数据集成离线同步任务将用户信息数据与用户网站访问记录数据分别同步至MaxCompute各表,并通过ODPS SQL任务,基于MaxCompute计算引擎进行逐级加工处理,产出最终目标用户画像数据,具体逻辑参见图示。
根据规范设计节点名:
为更好地定位节点与产出表,当前实验将节点产出表默认作为节点名,建议实际开发时也保持该规范。
根据规范设计工作流(即业务流程):
当前案例基于DataWorks上游执行完成才会触发下游执行的背景,以及虚拟节点执行时,系统直接返回成功,不会真正执行的特性,将虚拟节点workshop_start作为同步任务ods_raw_log_d和ods_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_raw_log_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数据分析对用户画像数据进行可视化与分析展示。包括:
|