本实验以简单的用户画像分析为例,带您熟悉DataWorks的主要功能和常见任务。实验内容包括DataWorks+EMR、DataWorks+MaxCompute、DataWorks+StarRocks以及DataWorks+Spark四种不同版本。
实验目标
目标预期
实操该实验后,可对DataWorks的主要功能有所了解。
实操该实验后,可在DataWorks中独立完成数据同步、数据开发和任务运维等数据岗位常见任务。
目标人群
开发工程师、数据分析师、产品运营以及需要数仓数据获取与数据分析洞察人员。
实验设计
实验背景
为了更好地制定企业经营策略,现需要从用户网站行为中获取网站用户群体基本画像数据,例如,用户群体地理属性、社会属性等,实现定时定点进行画像分析,进而实现网站流量精细化运营操作,通过DataWorks在线学习的方式完成以下场景。
同步数据。
加工数据。
管理数据。
消费数据。
涉及产品
在用户画像分析任务流程中涉及到原始数据存储数据库、计算存储数据库以及对整个流程开发的平台,以下为在本实验中涉及到的不同的产品介绍。
原始数据存储产品。
云数据库RDS MySQL版。
在本实验中存储用户信息,默认提供实验用户信息数据源基本信息。
产品详情请参见什么是RDS MySQL。
对象存储OSS。
在本实验中存储日志信息,默认提供实验日志信息数据源基本信息。
产品详情请参见什么是对象存储OSS。
重要EMR版中接收实验用户信息与实验日志数据的OSS数据源、StarRocks版中存储需要在StarRocks中注册函数
.jar
包的OSS数据源,均需要自备。
计算存储产品。
开源大数据平台 E-MapReduce。
在本实验中加工处理原始数据以生成所需数据,并将其存储,本实验为EMR on ECS。
产品详情请参见什么是EMR on ECS。
云原生大数据计算服务MaxCompute。
在本实验中加工处理原始数据以生成所需数据,并将其存储。
产品详情请参见什么是MaxCompute。
开源全托管服务EMR Serverless StarRocks:
在本实验中加工原始数据以生成所需数据,并将其存储,本实验为EMR Serverless StarRocks。
产品详情请参见什么是EMR Serverless StarRocks。
开源全托管服务EMR Serverless Spark:
在本实验中加工原始数据以生成所需数据,并将其存储,本实验为EMR Serverless Spark。
产品详情请参见什么是EMR Serverless Spark。
重要该案例是基于DataWorks使用开源大数据平台 E-MapReduce、云原生大数据计算服务MaxCompute、开源全托管服务EMR Serverless StarRocks或开源全托管服务EMR Serverless Spark这四种产品其一为数据源操作的,确保拥有其一即可。
开发调度产品
一站式大数据开发治理DataWorks。
在本实验中对原始数据进行同步、加工、质量监控、数据消费等操作与使用任务调度的数据中台。
产品详情请参见什么是DataWorks。
工作流设计
在本实验中,您可以根据您现有不同引擎选择不同版本的用户画像分析实验流程进行操作,共提供了MaxCompute版、EMR版、StarRocks版以及Spark版,四种版本引擎的用户画像分析文档,流程的步骤如下。
通过数据集成获取不同数据源中的用户基本信息数据和用户访问日志信息至引擎中。
在引擎中将获取到的日志数据通过加工拆解为可分析的字段。
在引擎中将用户基本信息和初步加工后的日志数据进汇总加工。
进一步加工产出基本用户画像。
涉及模块
本实验涉及的DataWorks模块如下。
步骤 | 操作内容 | 阶段性目标 |
同步数据 | 对存储在MySQL中的用户信息数据及存储在OSS中用户访问日志数据配置同步链路同步至MaxCompute、EMR或StarRocks。 | 学习如下内容:
|
加工数据 | 使用数据开发概述模块,将日志数据通过函数、正则等方式拆解为可分析字段,并与用户信息表加工汇总产出基本的用户画像数据。 | 学习如下内容:
|
管理数据 | 通过数据地图概述模块,对源端表数据进行元数据管理与查看。以及对源端数据变更过程中产生的脏数据进行监控,监控不通则阻断任务执行,避免影响扩大。 |
|
消费数据 | 学习如何基于DataWorks将数据进行可视化展示和API服务创建。 |
实验数据
实验日志数据结构
实际操作前,请先了解该项目背景下企业已有的业务数据及其数据格式,以及业务背景分析需要的目标用户画像基本结构。
以下为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 | 星座 |