本案例将指引您快速完成一个简单完整的购房群体分析教程,以快速了解DataWorks的数据开发、数据分析、数据运维流程。
案例介绍
本案例基于用户买房数据分析不同群体的购房情况,演示DataWorks的数据开发和分析流程。将本地数据通过DataWorks映射到MaxCompute的bank_data表,通过ODPS SQL任务节点分析用户群体,得到result_table表。基于result_table表做简单可视化展示分析,得到群体画像。最后,将结果通过同步任务写入RDS MySQL数据源。
本案例仅做功能的学习演示,不具实际业务参考价值。本示例使用的数据为模拟数据,仅供演示使用。
本案例的数据流转和数据开发的业务流程图如下所示。
完成数据分析之后,您将从购房数据中得到如下群体分析画像:贷款买房单身人士中的受教育水平以university.degree
和high.school
为主。
准备工作
本案例使用旧版数据开发演示。
本案例在标准模式的工作空间下进行。若您使用的是简单模式的工作空间,在提交任务时不会区分开发环境和生产环境,其他操作步骤同标准模式。
准备DataWorks环境
工作空间已绑定Serverless资源组,并在系统管理中配置引擎使用的资源组,详情请参见系统管理。
若未在系统管理中配置引擎所使用的资源组,您将收到错误提示:
当前文件来源或者目标引擎需要配置资源组进行数据上传,请联系空间管理员进行资源组的配置
。
(可选)准备RDS MySQL数据源
若您只需体验数据开发和分析能力,操作至步骤三即可,无需准备RDS MySQL数据源。
通过RDS控制台创建MySQL实例,获取RDS实例ID,并在RDS控制台添加白名单。详情请参见创建RDS MySQL实例和添加白名单。
通过Serverless资源组调度RDS的数据同步任务时需注意:
通过内网访问,请将资源组绑定的交换机网段IP添加到数据源的白名单列表。
通过公网访问,将Serverless资源组绑定VPC配置的EIP添加至数据源的白名单列表。
通过DMS登录RDS数据库,并在RDS MySQL数据库中创建表odps_result,建表语句如下所示。
CREATE TABLE `odps_result` ( `education` varchar(255) NULL , `num` int(10) NULL );
建表完成后,您可以执行
desc odps_result;
语句,查看表详情。
步骤一:建表并上传数据
本节以创建表bank_data和result_table为例,为您介绍如何通过DataWorks创建表并上传数据。其中,表bank_data用于存储业务数据,表result_table用于存储数据分析后产生的结果。
创建MaxCompute表
进入数据开发页面。
登录DataWorks控制台,切换至目标地域后,单击左侧导航栏的 ,在下拉框中选择对应工作空间后单击进入数据开发。
在数据开发页面,鼠标悬停至
图标,单击 。
在新建表对话框中,选择相应的路径,输入名称为bank_data,单击新建。
在表的编辑页面,单击左上角的DDL按钮。在DDL对话框中输入如下建表语句,单击生成表结构。
生成表结构后,在基本属性模块输入表的中文名,并分别单击提交到开发环境和提交到生产环境。
本示例以标准模式的工作空间为例。如果您使用的是简单模式的工作空间,仅需单击提交到生产环境即可。
以相同方式,创建表result_table,DDL建表语句如下。
CREATE TABLE IF NOT EXISTS result_table ( education STRING COMMENT '教育程度', num BIGINT COMMENT '人数' );
在左侧导航栏,单击
图标进入表管理页面。双击打开相应的表名,即可查看表信息。
上传数据至bank_data表
导入本地文件banking.txt至DataWorks中,并将数据写入bank_data表。
确认数据成功上传
在左侧导航栏,单击
图标进入临时查询面板,右键单击临时查询,选择 。
在新建节点中输入SQL语句查询数据,并单击
运行。
SELECT * FROM bank_data limit 10;
运行MaxCompute任务时,会展示费用预估,该费用由MaxCompute侧收取,仅作为预估费用,实际费用请以账单为准。具体计费细节,请参见MaxCompute计费项与计费方式。
运行成功之后,在页面下方您将获得bank_data的前10条记录。此时,表示您成功上传本地数据至bank_data表。
步骤二:搭建数据加工链路
本节为您介绍如何创建业务流程,在业务流程中创建节点并配置依赖关系。
创建业务流程
在页面左导航栏侧,切换至数据开发页面,鼠标悬停至
图标,单击新建业务流程。
在新建业务流程对话框中,输入业务名称和描述,单击新建完成业务流程创建。本示例名称为买房群体分析。
创建节点并配置依赖
在业务流程中创建一个虚拟节点(start)和ODPS SQL节点(insert_data),并配置依赖关系为insert_data依赖于start。
双击业务流程名称进入开发面板,单击左上角的
,在节点列表中单击 。
在新建节点对话框中,选择相应的路径,输入节点名称为start,单击确认。
以同样的操作新建一个
节点,命名为insert_data。(可选)以同样的操作新建一个write_result。
节点,命名为双击业务流程名称进入开发面板,通过拖拽连线,形成如下图数据加工链路。
步骤三:加工数据
本节为您介绍如何配置虚拟节点和ODPS SQL节点对数据进行加工处理。
配置虚拟节点
在业务流程中,虚拟节点通常作为整个业务流程的起始点,是业务流程中所有节点的间接上游节点。通常使用工作空间根节点作为虚拟节点依赖的上游节点。
双击虚拟节点名称,进入节点的编辑页面。
单击节点编辑页面右侧的调度配置。
在调度依赖区域,单击使用工作空间根节点,设置虚拟节点的上游节点为工作空间根节点。同时,设置重跑属性为任一选项。
点击左上角工具栏中的
按钮,保存节点。
配置数据处理节点
本节将在ODPS_SQL节点insert_data中,通过SQL代码,查询单身人士贷款买房的受教育水平分布数量并保存结果,以便后续节点继续分析或展现。
双击业务流程名称进入开发面板,双击insert_data节点进入编辑页面,输入下述SQL语句。
INSERT OVERWRITE TABLE result_table --插入数据至result_table中。 SELECT education , COUNT(marital) AS num FROM bank_data WHERE housing = 'yes' AND marital = 'single' GROUP BY education;
右键单击代码中的bank_data,单击删除输入。
bank_data表为非周期性调度产出的表,通过删除输入或在代码最上方添加规则注释,系统将不会解析该依赖。更多详情,请参见通过自动解析功能基于表血缘设置节点依赖。
点击左上角工具栏中的
按钮,保存节点。
运行任务和查看加工数据
单击
运行该数据处理节点。运行结束后,即可在页面下方查看运行日志和结果。
在左侧导航栏,单击
图标进入临时查询面板,右键单击临时查询,选择 。
在新建节点中输入SQL语句查询数据,并单击
运行。
SELECT * FROM result_table;
运行MaxCompute任务时,会展示费用预估,该费用由MaxCompute侧收取,仅作为预估费用,实际费用请以账单为准。具体计费细节,请参见MaxCompute计费项与计费方式。
运行成功之后,在页面下方您将获得result_table的结果。此时,表示您成功从bank_data表中加工获取到需要数据。该表格展示了贷款买房单身人士中的受教育水平以
university.degree
和high.school
为主。单击结果区的
图标进入图标分析,切换图标类型为饼图,即可得到一张买房群体的受教育水平分布表。
(可选)步骤四:同步数据
本节为您介绍如何通过同步任务,将MaxCompute的数据同步至MySQL数据源,以完成数据的持久化。
新增数据源
进入管理中心页面。
登录DataWorks控制台,切换至目标地域后,单击左侧导航栏的 ,在下拉框中选择对应工作空间后单击进入管理中心。
单击左侧导航栏的
,进入数据源列表页面。单击新增数据源,在新增数据源对话框中选择数据源类型为MySQL。
配置数据源信息。
在创建MySQL数据源对话框,配置各项参数。本文以创建阿里云实例模式类型为例。核心参数说明如下。
参数
描述
参数
描述
适用环境
分别配置开发环境及生产环境的数据源。
配置模式
选择阿里云实例模式。
所属云账号
选择当前云账号。
地域
选择相应地域。
实例
选择已创建的RDS MySQL实例。选择实例后,可单击获取最新地址,查看实例相关信息。
若无可用实例,您可进入RDS控制台创建新的实例。
数据库登录信息
此处配置为该数据源对应的默认数据库名称,您需要输入登录数据库的用户名称及密码。
找到当前工作空间绑定的Serverless资源组,单击测试连通性。
您需确保该资源组与数据源连通成功,以便正常访问用户数据源。否则,将导致数据同步任务无法正常执行。更多详情,请参见网络连通方案。
测试连通性通过后,单击完成创建,数据源创建完成。
配置同步任务
配置write_result同步任务,将result_table表中的数据写入至自己的MySQL数据库中。
进入数据开发页面。
登录DataWorks控制台,切换至目标地域后,单击左侧导航栏的 ,在下拉框中选择对应工作空间后单击进入数据开发。
双击业务流程名称进入开发面板,双击write_result节点进入配置页面。
配置同步任务。
在节点编辑页面的网络与资源配置页签,配置数据来源为MaxCompute(ODPS)、数据去向为MySQL,并选择用于执行同步任务的资源组,测试数据源与资源组的网络连通性。网络连通性配置,详情请参见网络连通方案。
单击下一步,进入任务配置界面。
配置数据来源与去向。
数据来源选择result_table表,数据去向选择odps_result表。
配置字段映射。此处默认进行同名映射,无需操作。
配置通道控制。设置脏数据策略,其他参数保持默认即可。
更多参数可根据业务需求选择配置,详情可参考通过向导模式配置离线同步任务。
配置时间属性。
单击编辑页面右侧导航栏的调度配置。
手动业务流程中创建的节点需要手动触发,无法通过调度执行。
在时间属性区域,配置任务的调度时间属性。未提及参数保持默认即可。
参数
描述
参数
描述
调度周期
设置每周一、周二的
00:00
点启动调度。重跑属性
设置运行成功或失败后皆可重跑。
更多时间属性介绍,详情请参见时间属性配置说明。
单击工具栏的
图标,保存任务的配置。
运行任务和查看同步数据
单击
运行该数据同步节点。运行结束后,即可在页面下方查看运行日志和结果。
通过DMS登录RDS数据库,查询odps_result,确保数据已经完成同步写入。
SELECT * FROM `ODPS_RESULT`;
步骤五:提交并发布任务
当任务调试成功后,即可将其提交并发布。如果您使用的是标准模式的工作空间,提交后可以在开发环境运维中心运行任务,但开发环境不会周期性自动调度。如果需要将其发布至生产环境进行周期性调度,请单击右上角的发布。在此界面将同步任务发布至生产环境。具体操作请参见发布任务。
进入数据开发页面。
登录DataWorks控制台,切换至目标地域后,单击左侧导航栏的 ,在下拉框中选择对应工作空间后单击进入数据开发。
双击业务流程名称进入开发面板。
单击工具栏中的
图标。在提交对话框中,选中所有节点,输入变更描述,单击确认即可完成任务发布。
业务流程提交后,即可在业务流程下的节点列表查看节点提交状态。如果节点名称左侧存在
图标,表示该节点未提交;如果不存在
图标,表示该节点已提交。
步骤六:任务运维
当任务完成提交和发布后,您可以前往运维中心查看生产环境的周期任务,实现任务节点的运行和运维。系统为您提供如下三种任务运行方式:
测试运行:生成冒烟测试实例,以帮助验证生产环境任务执行是否符合预期。
补数据:新建任务当天可以发起补数据操作,分析历史数据。
周期运行:任务发布至生产环境后,系统将根据调度配置自动生成周期实例并运行。
单击当前页面左上角的
图标,选择 ,进入运维中心页面。
在左侧导航栏,单击
。在弹出的页面中,找到目标节点,在操作列中单击测试。
在冒烟测试对话框中,输入冒烟测试名称,并选择业务日期,单击确定。
自动跳转至测试实例页面,单击相应的实例,即可在右侧查看实例DAG图。
右键单击实例,您可以查看该实例的依赖关系和详细信息,并进行终止运行、重跑等具体操作。
测试运行是手动触发节点,只要到定时的时间,立即运行,自动忽略实例的上游依赖关系。
单击当前页面左上角的
图标,选择 ,进入运维中心页面。
在运维中心页面,单击左侧导航栏中的
。单击目标节点右侧操作列的
。配置补数据对话框中的参数,单击提交并跳转。
参数
描述
补数据名称
输入补数据名称。
选择业务日期
选择补数据的业务日期,业务日期为
运行日期-1
。当前任务
默认为当前节点,不可以更改。
是否并行
可以选择不并行或指定允许几组任务同时运行。
自动跳转至补数据实例页面,单击相应的实例,即可看到实例DAG图。
右键单击实例,可以查看该实例的依赖关系和详细信息,并进行终止运行、重跑等具体操作。
补数据任务的实例依赖前一天,例如补2017-09-15到2017-09-18时间段内的任务,如果15号的实例运行失败了,则16号的实例也不会运行。
系统将根据任务在生产环境的调度配置自动调度执行。用户可以在运维中心维护周期任务查看生产任务状态配置,在周期实例查看任务周期性调度情况。
单击当前页面左上角的
图标,选择 ,进入运维中心页面。
在运维中心页面,单击左侧导航栏中的write_result节点对应的实例后,右键查看实例信息和运行日志。
,选择业务日期或运行日期等参数,搜索选择周期实例页面中相应的节点实例并单击,即可看到实例DAG图。
右键单击实例,可以查看该实例的依赖关系和详细信息并进行终止运行、重跑等具体操作。
如果上游节点未运行,下游节点也不会运行。
如果节点的实例初始状态为未运行,当定时时间到达时,调度系统会检查该实例的全部上游实例是否运行成功。
只有上游实例全部运行成功,且定时时间到达的实例,才会被触发运行。
处于未运行状态的实例,请确认上游实例已经全部成功且已到定时时间。
相关文档
MySQL同步Hologres案例,请参见Github实时数据同步与分析。
AnalyticDB数仓构建,请参见基于AnalyticDB构建企业数仓。
数据建模&数据开发完整案例,请参见零售电子商务数仓搭建。
更多案例请参见场景教程。
- 本页导读 (1)
- 案例介绍
- 准备工作
- 步骤一:建表并上传数据
- 创建MaxCompute表
- 上传数据至bank_data表
- 确认数据成功上传
- 步骤二:搭建数据加工链路
- 创建业务流程
- 创建节点并配置依赖
- 步骤三:加工数据
- 配置虚拟节点
- 配置数据处理节点
- 运行任务和查看加工数据
- (可选)步骤四:同步数据
- 新增数据源
- 配置同步任务
- 运行任务和查看同步数据
- 步骤五:提交并发布任务
- 步骤六:任务运维
- 相关文档