天天看点

DataWorks 基本操作演示|学习笔记

开发者学堂课程【DataWorks 使用教程:DataWorks 基本操作演示】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:

https://developer.aliyun.com/learning/course/107/detail/1866

DataWorks 基本操作演示

内容简介:

一、开发流程

二、创建工作空间

三、新建 OSS 数据源

四、新建 RDS 数据源

五、创建业务流程

六、配置 workshop_start 节点

七、新建表

八、配置离线同步节点

九、提交业务流程

十、运行业务流程

十一、确认数据是否成功导入 MaxCompute

十二、配置 ODPS SQL 节点

十三、业务流程

十四、配置数据质量监控

十五、数据可视化展现

十六、通过向导模式生成 API

Workshop 教程涉及的具体开发流程如下:

1. 环境准备:

准备操作过程中需要的 MaxCompute、DataWorks 等环境。详情请参见

准备环境

2. 数据采集:

学习如何从不同的数据源同步数据至 MaxCompute 中、如何快速触发任务运行、如何查看任务日志等。详情请参见

采集数据

3. 数据加工:

学习如何运行数据流程图、如何新建数据表、如何新建数据流程任务节点、如何配置任务的周期调度属性。详情请参见

加工数据

4. 数据质量监控:

学习如何给任务配置数据质量的监控规则,以保证任务运行的质量问题。详情请参见

配置数据质量监控

5. 数据可视化展现:

学习如何通 过 Quick BI 创建网站用户分析画像的仪表板,实现所需数据的可视化展现。详情请参见

数据可视化展现

6. 通过 Function Studio 开发 UDF:

学习如何通过 Function Studio 开发 UDF,并将其提交至 DataStudio 的开发环境。

1.使用主账号登录 DataWorks 控制台。

2.在概览页面,单击右侧的快速入口>创建工作空间。

您也可以单击左侧导航栏中的工作空间列表,切换至相应的区域后,单击创建工作空间。

3.配置创建工作空间对话框中的基本配置,单击下—步。

4.进入选择引擎界面,勾选 MaxCompute 引擎后,单击下—步。

DataWorks 已正式商用,如果该区域没有开通,需要首先开通正式商用的服务。

默认选中数据集成、数据开发、运维中心和数据质量。

5.进入引擎详情页面,配置选购引擎的参数。

实例显示名称:

实例显示名称不能超过 27 个字符,仅支持字母开头,仅包含字母、数字和下划线(_)。

Quota 组切换:

Quota 用于实现计算资源和磁盘配额。

Maxcompute 数据类型:

该选项设置后,将在 5 分钟内生效。详情请参见数据类型版本说明。

Maxcompute 项目名称:

默认与 DataWorks 工作空间的名称—致。

Maxcompute 访问身份:

包括阿里云主账号和任务负责人。

6.配置完成后,单击创建工作空间。

工作空间创建成功后,即可在工作空问列表页面查看相应内容。

1.进入数据源管理页面。

i.登录 DataWorks 控制台。

ii.在左侧导航栏,单击工作空间列表。

iii.单击相应工作空间后的进入数据集成。

如果您已在 DataWorks 的某个功能模块,请单击左上方的目图标,选择全部产品>数据汇聚>数据集成,进入数据集成页面。

iv.在左侧导航栏,单击数据源,进入工作空间管理>数据源管理页面。

2.在数据源管理页面,单击右上方的新增数据源。

3.在新增数据源对话框中,选择数据源类型为 OSS。

4.在新增OSS数据源对话框,配置各项参数。

DataWorks 基本操作演示|学习笔记

数据源名称:输入 oss_workshop_log。

数据源描述:对数据源进行简单描述。

适用环境:勾选开发。

说明:开发环境的数据源创建完成后,需要勾选生产,以同样方式创建生产环境的数据源,否则任务生产执行会报错。

Endpoint:输入

http://loss-cn-shanghai-internal.aliyuncs.com

.

Bucket:输入 new-dataworks-workshop.

AccessKey ID:输入 LTAl4FvGT3iU4xjKotpUMAjs.

AccessKey Secret:输入 9RSUoRmNxpRC9EhC4m9PjuG7Jzy7px.

5.在资源组列表,单击相应资源组后的测试连通性。

数据同步时,一个任务只能使用—种资源组。您需要测试每种资源组的连通性,以保证同步任务使用的数据集成资源组能够与数据源连通,否则将无法正常执行数据同步任务。

如果您需要同时测试多种资源组,请选中相应资源组后,单击批量测试连通性。详情请参见选择网络连通方案。

1. 连通性测试通过后,单击完成。

1.单击当前页面左上角图标,选择全部产品数据汇聚>数据集成。

2.在左侧导航栏,单击数据源>数据源列表,进入工作空间管理>数据源管理页面。

3.在数据源管理页面,单击右上方的新增数据源。

4.在新增数据源对话框中,选择数据源类型为 My SQL

5.在新增 MySQL 数据源对话框中,配置各项参数。

DataWorks 基本操作演示|学习笔记

数据源类型:选择阿里云实例模式。

数据源名称:输入 rds_workshop_log.

数据源描述:输入 RDS 日志数据同步。

地区:选择 RDS 实例所在的区域。

RDS 实例 ID:输入 rm-bp1z69dodhh85z9qa.

RDS 实例主账号 ID:输入 1156529087455811。

数据库名:输入 workshop.

用户名:输入 workshop.

密码:输入 workshop#2017。

6.在资源组列表,单击相应资源组后的测试连通性。

数据同步时,一个任务只能使用—种资源组。

您需要测试每种资源组的连通性,以保证同步任务使用的数据集成资源组能够与数据源连通,否则将无法正常执行数据同步任务。

7.测试连通性通过后,单击完成。

1.单击当前页面左上方的图标,选择全部产品>数据开发> DataStudio(数据开发)。

2.在数据开发面板,右键单击业务流程,选择新建业务流程。

3.在新建业务流程对话框中,输入业务名称和描述。

注意:业务名称不能超过 128 个字符,且必须是大小写字母、中文、数字、下划线(_)以及小数点(.)。

4.单击新建。

5.进入业务流程开发面板,鼠标单击虚拟节点并拖拽至右侧的编辑页面。

6.在新建节点对话框中,输入节点名称为 workshop_start,单击提交。

DataWorks 基本操作演示|学习笔记

以同样的方式新建两个离线同步节点,节点名称分别为 oss 数据同步和 rds 数据同步。

7.通过拖拽连线,将 workshop_start 节点设置为两个离线同步节点的上游节点。

DataWorks 基本操作演示|学习笔记

1. 在数据开发页面,双击相应业务流程下的虚拟节点。打开该节点的编辑页面,单击右侧的调度配置。

2. 在调度依赖区域,单击使用工作空间根节点,设置 workshop_start 节点的上游节点为工作空间根节点。

由于新版本给每个节点都设置了输入输出节点,所以需要给 workshop_start 节点设置一个输入。此处设置其上游节点为工作空间根节点,通常命名为工作空间名称_root

DataWorks 基本操作演示|学习笔记

1. 在数据开发页面打开新建的业务流程,右键单击 MaxCompute,选择新建>表。

2.在新建表对话框中,输入表名,单击提交。

此处需要创建两张表 (ods_raw_log_d和ods_user_info_d),分别存储同步过来的OSS 日志数据和 RDS 日志数据。

注意:表名必须以字母开头,不能包含中文或特殊字符,且不能超过 64 个字符。

3.通过 DDL 模式新建表。

新建 ods_raw_log_d 表。

在表的编辑页面单击 DDL 模式,输入下述建表语句。

DataWorks 基本操作演示|学习笔记

--创建 OSS 日志对应目标表

CREATE TABLE IF NOT EXISTS  ods_raw_log_d (

col STRING

)

PARTITIONED BY (

dt STRING

);

新建 ods_user_info_d 表。

--创建 RDS 对应目标表

CREATE TABLE IF NOT  EXISTS ods_user_info_d (

uid STRING COMMENT '用户ID',

gender STRING COMMENT '性别',

age_range STRING COMMENT '年龄段',

zodiac STRING COMMENT '星座'

)

PARTITIONED BY (

dt STRING

);

4.单击生成表结构,并确认覆盖当前操作。

5.返回建表页面,在基本属性中输入表的中文名。

6.完成设置后,分别单击提交到开发环境和提交到生产环境。

1.配置 oss_ 数据同步节点。

(1)在数据开发页面,双击 oss_ 数据同步节点,进入节点配置页面。

(2)选择数据来源。

DataWorks 基本操作演示|学习笔记

数据源:选择 Oss > oss_workshop_log 数据源。

Object前缀:输入 OSS 文件夹的路径,请勿填写 Bucket 的名称。示例为user_log.txt。

文本类型:选择 text 类型。

列分隔符输入列分隔符为 |。

编码格式:默认为 UTF-8 格式。

null 值:表示 null 值的字符串。

压缩格式:包括 None、Gzip、Bzip2 和 Zip 四种类型,此处选择 None。

是否包含表头:默认为 No。

(3)选择数据去向。

数据源:选择 ODPS > odps_first 数据源。

表:选择数据源中的 ods_raw_log_d 表。

分区信息:默认配置为$ {bizdate}.

清理规则:默认为写入前清理已有数据。

空字符串作为 null:此处勾选否。

(4)配置字段映射。​

DataWorks 基本操作演示|学习笔记

(5)配置通道控制。

DataWorks 基本操作演示|学习笔记

(6)单击页面右侧的调度配置,在调度依赖>本节点的输出区域,输入本节点的输出名称为工作空间名称 . ods_raw_log_d。

DataWorks 基本操作演示|学习笔记

(7)确认当前节点的配置无误。

(8)关闭当前任务,返回业务流程配置面板。

2.配置 rds_ 数据同步节点。

(1)在数据开发页面,双击 rds_ 数据同步节点,进入节点配置页面。

DataWorks 基本操作演示|学习笔记
DataWorks 基本操作演示|学习笔记

(4)配置字段映射。

(6)单击页面右侧的调度配置,在调度依赖>本节点的输出区域,输入本节点的输出名称为工作空间名称 .ods_user_info_d。

添加成功后,您可以删除不规范的输出名称。

DataWorks 基本操作演示|学习笔记

1. 在数据开发页面,双击相应的业务流程打开编辑页面。

DataWorks 基本操作演示|学习笔记

2.选择提交对话框中需要提交的节点,输入备注,勾选忽略输入输出不一致的告警。

3.单击提交,待显示提交成功即可。

DataWorks 基本操作演示|学习笔记

2.右键单击 rds_ 数据同步节点,选择查看日志。

当日志中出现如下字样,表示同步节点运行成功,并成功同步数据。

DataWorks 基本操作演示|学习笔记

2.右键单击 rds_ 数据同步节点,选择查看日志。

DataWorks 基本操作演示|学习笔记

十​一、确认数据是否成功导入 MaxCompute

1.在数据开发页面的左侧导航栏,单击临时查询,进入临时查询面板。

2.右键单击临时查询,选择新建节点 >ODPS SQL。

3.编写并执行 SQL 语句,查看导入 ods_raw_log_d和ods_user_info_d 的记录数。

DataWorks 基本操作演示|学习笔记

设计业务流程:

业务流程节点间依赖关系的配置请参见采集数据。

双击新建的业务流程打开编辑页面,鼠标单击 ODPS SQL 并拖拽至右侧的编辑页面。在新建节点对话相中,输入节点名称,单击提交。

此处需要新建三个 ODPS SQL 节点,依次命名为 ods_log_info_d、 dw_user_info_all_d 和 rpt_user_info_d,并配置如下图所示的依赖关系。

DataWorks 基本操作演示|学习笔记

创建用户自定义函数

1.新建资源。

(1)下载 ip2region.jar.

(2)在数据开发页面打开业务流程,右键单击 MaxCompute,选择新建>资源>JAR。

(3)在新建资源对话框中,输入资源名称,并选择目标文件夹。

DataWorks 基本操作演示|学习笔记

(4)单击点击上传,选择已经下载至本地的 ip2region.jar,单击打开。

(5)单击确定。

(6)单击工具栏中的图标。

2.注册函数。

(1)在数据开发页面打开业务流程,右键单击 MaxCompute,选择新建>函数。

(2)在新建函数对话框中,输入函数名称(示例为 getregion),单击提交。

(3)在注册函数对话框中,配置各项参数。

DataWorks 基本操作演示|学习笔记

1.配置 ods_log_info_d 节点。

(1)双击 ods_log_info_d 节点,进入节点配置页面。

(2)在节点编辑页面,编写如下SQL语句。

INSERT OVERWRITE TABLE ods_log_info_d PARTITION (dt=${bdp.system.bizdate})

SELECT ip

  , uid

  , time

  , status

  , bytes

  , getregion(ip) AS region --使用自定义UDF通过IP得到地域。

  , regexp_substr(request, '(^[^ ]+ )') AS method --通过正则把request差分为3个字段。

  , regexp_extract(request, '^[^ ]+ (.*) [^ ]+$') AS url

  , regexp_substr(request, '([^ ]+$)') AS protocol

  , regexp_extract(referer, '^[^/]+://([^/]+){1}') AS referer --通过正则清晰refer,得到更精准的URL。

  , CASE

    WHEN TOLOWER(agent) RLIKE 'android' THEN 'android' --通过agent得到终端信息和访问形式。

    WHEN TOLOWER(agent) RLIKE 'iphone' THEN 'iphone'

    WHEN TOLOWER(agent) RLIKE 'ipad' THEN 'ipad'

    WHEN TOLOWER(agent) RLIKE 'macintosh' THEN 'macintosh'

    WHEN TOLOWER(agent) RLIKE 'windows phone' THEN 'windows_phone'

    WHEN TOLOWER(agent) RLIKE 'windows' THEN 'windows_pc'

    ELSE 'unknown'

  END AS device

  , CASE

    WHEN TOLOWER(agent) RLIKE '(bot|spider|crawler|slurp)' THEN 'crawler'

    WHEN TOLOWER(agent) RLIKE 'feed'

    OR regexp_extract(request, '^[^ ]+ (.*) [^ ]+$') RLIKE 'feed' THEN 'feed'

    WHEN TOLOWER(agent) NOT RLIKE '(bot|spider|crawler|feed|slurp)'

    AND agent RLIKE '^[Mozilla|Opera]'

    AND regexp_extract(request, '^[^ ]+ (.*) [^ ]+$') NOT RLIKE 'feed' THEN 'user'

    ELSE 'unknown'

  END AS identity

  FROM (

    SELECT SPLIT(col, '##@@')[0] AS ip

    , SPLIT(col, '##@@')[1] AS uid

    , SPLIT(col, '##@@')[2] AS time

    , SPLIT(col, '##@@')[3] AS request

    , SPLIT(col, '##@@')[4] AS status

    , SPLIT(col, '##@@')[5] AS bytes

    , SPLIT(col, '##@@')[6] AS referer

    , SPLIT(col, '##@@')[7] AS agent

  FROM ods_raw_log_d

  WHERE dt = ${bdp.system.bizdate}

) a;

2.配置 dw_user_info_all_d 节点。

(1)双击 dw_user_info_all_d 节点,进入节点配置页面。

(2)在节点编辑页面,编写如下 SQL 语句。

INSERT OVERWRITE TABLE dw_user_info_all_d PARTITION (dt='${bdp.system.bizdate}')

SELECT COALESCE(a.uid, b.uid) AS uid

  , b.gender

  , b.age_range

  , b.zodiac

  , a.region

  , a.device

  , a.identity

  , a.method

  , a.url

  , a.referer

  , a.time

FROM (

  SELECT *

  FROM ods_log_info_d

  WHERE dt = ${bdp.system.bizdate}

) a

LEFT OUTER JOIN (

  SELECT *

  FROM ods_user_info_d

  WHERE dt = ${bdp.system.bizdate}

) b

ON a.uid = b.uid;

3.配置 rpt_user_info_d 节点。

(1)双击 rpt_user_info_d 节点,进入节点配置页面。

INSERT OVERWRITE TABLE rpt_user_info_d PARTITION (dt='${bdp.system.bizdate}')

SELECT uid

  , MAX(region)

  , MAX(device)

  , COUNT(0) AS pv

  , MAX(gender)

  , MAX(age_range)

  , MAX(zodiac)

FROM dw_user_info_all_d

WHERE dt = ${bdp.system.bizdate}

GROUP BY uid;

1、提交业务流程

(1)在业务流程的编辑页面,单击国图标,提交业务流程中已配置完成的节点。

(2)在提交对话框中,选择需要提交的节点,选中忽略输入输出不—致的告警。

(3)单击提交。

2、运行业务流程

(1)在业务流程的编辑页面,验证代码逻辑。

(2)待所有任务运行完成显示绿色箭头后,在左侧导航栏,单击临时查询。

(3)在临时查询面板,右键单击临时查询,选择新建节点 >ODPS SQL。

(4)编写并执行SQL语句,查询任务运行结果,确认数据产出。

3、发布业务流程

提交业务流程后,表示任务已进入开发环境。由于开发环境的任务不会自动调度,您需要发布配置完成的任务至生产环境。

(1)在业务流程的编辑页面,进入发布页面。

(2)选择待发布任务,单击添加到待发布。

DataWorks 基本操作演示|学习笔记

(3)单击右上角的待发布列表,进入列表后,单击全部打包发布。

(4)在确认发布对话框中,单击发布。

(5)在左侧导航栏,单击发布包列表,查看发布状态。

4、在生产环境运行任务

(1)任务发布成功后,单击右上角的运维中心。

您也可以进入业务流程的编辑页面,单击工具栏中的前往运维,进入运维中心页面。

(2)在左侧导航栏,单击周期任务运维>周期任务,进入周期任务页面,单击workshop 业务流程。

(3)双击 DAG 图中的虚节点展开业务流程,右键单击 workshop_start 节点,选择补数据>当前节点及下游节点。

DataWorks 基本操作演示|学习笔记

(4)选中需要补数据的任务,输入业务日期,单击确定,自动跳转至补数据实例页面。

(5)单击刷新,直至 SQL 任务全部运行成功即可。

配置表 ods_raw_log_d 的监控规则。

1.在已添加的分区表达式模块,单击+,添加分区表达式。

ods_raw_log_d 表的数据来源为 oss_workshop_log,数据是从 OSS 中获取到的日志数据,其分区格式为 ${bdp.system.bizdate}( 获取到前—天的日期)。

对于此类每天产出的日志数据,您可以配置表的分区表达式。在添加分区对话框中,选择 dt=$lyyyymmdd-1],单击确认。分区表达式的详情请参见基础属性:调度参数。

2.单击创建规则,默认在模板规则对话框。

3.单击添加监控规则,选择规则模板为表行数,固定值,设置规则的强度为强、比较方式为期望值大于 0。

表 ods_raw_log_d 的数据来源于 OSS 上传的日志文件,作为源头表,您需要尽早判断该表的分区中是否存在数据。如果该表没有数据,则需要阻止后续任务运行。如果来源表没有数据,后续任务运行无意义。

配置完成后,单击批量保存。

4.单击试跑,在试跑对话框中,选择调度时间,单击试跑。

试跑可以立即触发数据质量的校验规则,对配置完成的规则进行校检。试跑完成​后,单击试跑成功!点击查看试跑结果,即可跳转至试跑结果页面。

5.进行关联调度。

数据质量支持和调度任务关联。在表规则和调度任务绑定后,任务实例运行完成都会触发数据质量的检查。您可以通过以下两种方式进行表规则和任务的关联调度:

(1)在运维中心页面关联表规则

单击左上方的目图标,选择全部产品>运维中心。

在左侧导航栏,单击周期任务运维>周期任务。在 DAG 图中,右键单击 oss_ 数据同步任务,选择配置质量监控。

在配置质量监控对话框中,选择表名 (ods_raw_log_d) 和分区表达式dt=$[yyyymmdd-1]),单击添加。

(2)在数据质量页面关联表规则

在表的监控规则页面,单击关联调度,配置规则与任务的绑定关系。

单击关联调度,可以与已提交到调度的节点任务进行绑定,系统会根据血缘关系给出推荐绑定的任务,也支持自定义绑定。

在关联调度对话框中,输入节点 ID 或节点名称,单击添加。添加完成后,即可完成与调度节点任务的绑定。

DataWorks 基本操作演示|学习笔记

6. 订阅任务。

在表的监控规则页面,单击订阅管理,设置接收人以及订阅方式。数据质量支持邮件通知、邮件和短信通知、钉钉群机器人和钉钉群机器人 @ALL。

订阅管理设置完成后,在左侧导航栏,单击我的订阅,查看和修改已订阅的任务。

操作步骤

1. 单击进入默认空间,您也可以使用自己的个人空间。

DataWorks 基本操作演示|学习笔记

2. 选择数据源≥新建数据源>云数据库> Maxcompute。

DataWorks 基本操作演示|学习笔记

3.输入您的 MaxCompute 项目名称以及您的 AcessKey 信息,数据库地址使用默认地址即可,关于数据库地址详情请参见 Endpoint​。

完成填写后,单击连接测试,待显示数据源连通性正常后单击添加即可。

DataWorks 基本操作演示|学习笔记

4.找到您刚添加的数据源的 rpt_user_info_d 表,单击创建数据集。

DataWorks 基本操作演示|学习笔记

5. 进入数据集列表页,单击您刚刚创建的数据集,对数据集进行编辑。

常见的数据集加工包括:维度、度量的切换、修改维度的类型、增加计算字段、创建层次结构、修改字段的数据类型、更改度量聚合方式、制作关联模型。

6.转换字段的维度类型。完成转换后,您可以根据字段中具体的数值进行过滤筛选。

(1)转换日期字段的维度类型。

右键单击 dt 字段,选择维度类型切换>日期(源数据格式)> yyyyMMdd。

(2)转换地理信息字段的维度类型。

右键单 击 region 字段,选择维度类型切换>地理信息>省/直辖市。转换成功后,在左侧维度栏中会看到亨段前多—个地理位詈图标。

7.制作仪表板。

随着数据的更新,让报表可视化地展现最新数据,这个过程叫制作仪表板。仪表板的制作流程为:确定内容、布局和样式,制作图表,完成动态联动查询。

(1) 单击 rpt_user 数据集后的新建仪表板,选择常规模式,进入仪表板编辑页。

(2)从仪表板空间中向空白区拖 入 1 个指标看板。

选择数据来源为数据集 rpt_user,选择度量为 pv。

(3)制作趋势图:将图表区域内的线图拖拽到左侧画布。参数配置如下,完成之后单击更新:

值轴/度量: pv

类别轴/维度:dt (day)

颜色图例/维度:age_range

过滤器: dt (year)

(4)制作色彩地图:单击图表区域内的色彩地图,并选择数据源来源为数据集rpt_user,选择地理区域/维度为 region、色彩饱和度/度量为 pv,选择完成后单击更新,结果如下。

DataWorks 基本操作演示|学习笔记

(5)完成配置后,单击保存及预览,即可看到展示效果。

生成 API:

1.在服务开发页面,鼠标悬停至图标,单击 API> 生成 API。

也可以打开相应的业务流程,右键单击 API,选择新建>生成 API。

2.在生成 API 对话框中,配置各项参数。

3、单击确定。

配置 API:

1. 双击打开 API 的编辑页面,在选择表区域,选择数据源类型、数据源名称和数据表名称。

DataWorks 基本操作演示|学习笔记

2.在环境配置区域,设置内存和超时时间。

DataWorks 基本操作演示|学习笔记

3.在选择参数区域,设置请求参数和返回参数。

您选择数据表后,选择参数区域会自动显示该表的所有字段。根据自身需求,分别选中相应的字段设为请求参数和设为返回参数,添加至请求参数和返回参数列表中。

DataWorks 基本操作演示|学习笔记

如果您需要对字段进行排序,单击相应字段后的添加到字段排序,将其添加至排序字段列表中。

DataWorks 基本操作演示|学习笔记

您可以根据数据表中的指定字段对API的返回结果进行排序。当您的排序列表中有多个字段时,序号越小的字段,排序的优先级超高,您可以通过上移和下移操作来调整排序字段的优先级。对于每个排序字段,均可以选择升序或降序的方式进行排序。

4.单击 API 编辑页面右侧的请求参数,配置各项参数。

DataWorks 基本操作演示|学习笔记

5.单击 API 编辑页面右侧的返回参数,配置各项参数

DataWorks 基本操作演示|学习笔记

测试 API

在 API 的编辑页面,单击右上方的测试。