说明
通常,通过DataWorks的工作空间实现数据开发和运维包含以下操作:
1.建表并上传数据
2.创建业务流程
3.创建同步任务
4.设置周期和依赖
5.运行及排错
6.使用临时查询快速查询SQL(可选)
下图为数据开发和运维的基本流程。
以创建表bank_data和result_table为例,为您介绍如何通过DataWorks创建表并上传数据。
您在工作空间配置页面添加MaxCompute计算引擎实例后,当前页面才会显示MaxCompute目录。详情请参见配置工作空间。
表bank_data用于存储业务数据,表result_table用于存储数据分析后产生的结果。
1.进入数据开发页面。
2.在数据开发页面,鼠标悬停至
图标,单击MaxCompute> 表。
您也可以打开相应的业务流程,右键单击MaxCompute,选择新建 > 表。
3.在新建表对话框中,输入表名为bank_data,单击提交。
注意
4.在表的编辑页面,单击DDL模式。
5.在DDL模式对话框中,输入如下建表语句,单击生成表结构。
CREATE TABLE IF NOT EXISTS bank_data
(
age BIGINT COMMENT '年龄',
job STRING COMMENT '工作类型',
marital STRING COMMENT '婚否',
education STRING COMMENT '教育程度',
default STRING COMMENT '是否有信用卡',
housing STRING COMMENT '房贷',
loan STRING COMMENT '贷款',
contact STRING COMMENT '联系途径',
month STRING COMMENT '月份',
day_of_week STRING COMMENT '星期几',
duration STRING COMMENT '持续时间',
campaign BIGINT COMMENT '本次活动联系的次数',
pdays DOUBLE COMMENT '与上一次联系的时间间隔',
previous DOUBLE COMMENT '之前与客户联系的次数',
poutcome STRING COMMENT '之前市场活动的结果',
emp_var_rate DOUBLE COMMENT '就业变化速率',
cons_price_idx DOUBLE COMMENT '消费者物价指数',
cons_conf_idx DOUBLE COMMENT '消费者信心指数',
euribor3m DOUBLE COMMENT '欧元存款利率',
nr_employed DOUBLE COMMENT '职工人数',
y BIGINT COMMENT '是否有定期存款'
);
创建表的更多SQL语法请参见创建和查看表。
6.在确认操作对话框中,单击确认。
7.生成表结构后,在基本属性模块输入表的中文名,并分别单击提交到开发环境和提交到生产环境。
说明 本示例以标准模式的工作空间为例。如果您使用的是简单模式的工作空间,仅单击提交到生产环境即可。
8.在左侧导航栏,单击表管理。
9.在表管理页面,双击打开相应的表名,查看表信息。
CREATE TABLE IF NOT EXISTS result_table
(
education STRING COMMENT '教育程度',
num BIGINT COMMENT '人数'
);
DataWorks支持以下操作:
上传本地的文本文件至工作空间的表中。
通过数据集成模块,从多个不同的数据源导入业务数据至工作空间。
说明 本地文本文件上传的限制如下:
文件类型:仅支持**.txt**、.csv和**.log**类型的文件。
文件大小:不能超过30 MB。
操作对象:支持分区表导入和非分区表导入,但不支持分区值为中文。
以导入本地文件banking.txt至DataWorks为例,操作如下:
开始本操作前,请确保您已经在工作空间中准备好业务数据表bank_data和其中的数据,以及结果表result_table。详情请参见建表并上传数据。
在业务流程中创建一个虚拟节点(start)和ODPS SQL节点(insert_data),并配置依赖关系为insert_data依赖于start。
注意
工作空间名称_root
。建议您在设计业务流程时,默认创建一个虚拟节点作为业务流程的根节点,来控制整个业务流程。设计业务流程的操作如下:
在业务流程中,虚拟节点通常作为整个业务流程的控制器,是业务流程中所有节点的上游节点。
通常使用工作空间根节点作为虚拟节点依赖的上游节点:
本节将在ODPS_SQL节点insert_data中,通过SQL代码,查询不同学历的单身人士贷款买房的数量并保存结果,以便后续节点继续分析或展现。
具体语法说明请参见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表为非周期性调度产出的表,当有节点select该表数据时,需要手动删除通过select生成的自动解析配置结果(即@exclude_input=bank_data),以保障调度节点定时更新的表数据,通过节点调度依赖保障下游取数无误。
运行结束后,即可在页面下方查看运行日志和结果。
业务流程提交后,即可在业务流程下的节点列表查看节点提交状态。如果节点名称左侧存在
图标,表示该节点已提交;如果不存在
图标,表示该节点未提交。
您需要首先通过RDS创建MySQL实例,获取RDS实例ID,并在RDS控制台添加白名单。详情请参见创建RDS MySQL实例。
说明 如果是通过自定义资源组调度RDS的数据同步任务,必须把自定义资源组的机器IP也加入RDS的白名单中。
在DataWorks中,通常通过数据集成功能,定期导入系统中产生的业务数据至工作区。SQL任务进行计算后,再定期导出计算结果至您指定的数据源中,以便进一步展示或运行使用。
目前数据集成功能支持从RDS、MySQL、SQL Server、PostgreSQL、MaxCompute、OCS、DRDS、OSS、Oracle、FTP、DM、HDFS和MongoDB等数据源中,导入数据至工作空间或从工作空间导出数据。详细的数据源类型列表请参见支持的数据源与读写插件。
说明 仅项目管理员角色可以新建数据源,其它角色的成员仅支持查看数据源。
进入数据源管理页面。
登录DataWorks控制台。
在左侧导航栏,单击工作空间列表。
选择工作空间所在地域后,单击相应工作空间后的进入数据集成。
在左侧导航栏,单击数据源,进入工作空间管理 > 数据源管理页面。
在数据源管理页面,单击右上角的新增数据源。
在新增数据源对话框中,选择数据源类型为MySQL。
在新增MySQL数据源对话框,配置各项参数。
此处以创建阿里云实例模式类型为例。
数据同步时,一个任务只能使用一种资源组。您需要测试每种资源组的连通性,以保证同步任务使用的数据集成资源组能够与数据源连通,否则将无法正常执行数据同步任务。如果您需要同时测试多种资源组,请选中相应资源组后,单击批量测试连通性。详情请参见数据源测试连通性。
在MySQL数据库中创建表odps_result
CREATE TABLE `ODPS_RESULT` (
`education` varchar(255) NULL ,
`num` int(10) NULL
);
建表完成后,您可以执行desc odps_result;
语句,查看表详情。
本节将新建一个同步节点write_result并进行配置,目的是把表result_table中的数据写入至自己的MySQL数据库中。具体操作如下:
完成上述配置后,上下滚动鼠标即可查看任务配置。确认无误后,单击工具栏中的
图标。
同步任务保存后,返回业务流程。单击工具栏中的
图标,提交同步任务至调度系统中。调度系统会根据配置的属性,从第二天开始自动定时执行。
请确保您已创建任务write_result,详情请参见创建同步任务。
进入数据开发页面。
登录DataWorks控制台。
在左侧导航栏,单击工作空间列表。
选择工作空间所在地域后,单击相应工作空间后的进入数据开发。
在相应的业务流程下,双击打开离线同步节点write_result的编辑页面。
单击编辑页面右侧的调度配置。
说明 手动业务流程中创建的节点需要手动触发,无法通过调度执行。
在时间属性区域,配置节点的调度属性。
依赖属性中可以配置节点的上游依赖,表示即使当前节点的实例已经到定时时间,也必须等待上游节点的实例运行完毕,才会触发运行。
例如,当前节点的实例将在上游insert_data节点的实例运行完毕后,才会触发执行。
在调度系统中,每一个工作空间中默认会创建一个工作空间名称_root节点作为根节点。如果本节点没有上游节点,可以直接依赖根节点。
在write_result节点的编辑页面,单击工具栏中的
图标。
提交节点。
注意 您需要设置节点的重跑属性和依赖的上游节点,才可以提交节点。
单击工具栏中的
图标。
在提交新版本对话框中,输入备注。
单击确认。
如果您使用的是标准模式的工作空间,提交成功后,请单击右上角的发布。具体操作请参见发布任务。
节点只有提交至调度系统中,才会从第二天开始,自动根据调度属性配置的周期,在各时间点生成实例,并定时运行。
说明 如果是23:30以后提交的节点,则调度系统从第3天开始,才会自动周期生成实例并定时运行。
在设置周期和依赖的操作中,您配置了每周二凌晨2点执行离线同步节点。提交节点后,需要到第2天才能看到调度系统自动执行的结果。DataWorks为您提供测试运行、补数据和周期运行三种触发方式,帮助您确认实例运行的定时时间、相互依赖关系、数据结果产出是否符合预期。
说明 手动触发和自动调度的调度系统与周期生成实例的规则一致:
右键单击实例,您可以查看该实例的依赖关系和详细信息,并进行终止运行、重跑等具体操作。
说明
如果需要确认多个节点的定时情况和相互依赖关系,或者需要从某个根节点开始重新执行数据分析计算,您可以进行补数据操作。
右键单击实例,可以查看该实例的依赖关系和详细信息,并进行终止运行、重跑等具体操作。
说明
周期自动运行,由系统根据所有节点的调度配置自动触发,所以页面没有操作入口。您可以通过以下两种方式查看实例信息和运行日志:
右键单击实例,可以查看该实例的依赖关系和详细信息并进行终止运行、重跑等具体操作。
说明
如果您已经创建了DataWorks工作空间(MaxCompute项目),可以直接使用DataWorks临时查询功能,快速书写SQL语句操作MaxCompute。
临时查询的详情请参见临时查询。
登录DataWorks控制台。
在左侧导航栏,单击工作空间列表。
选择工作空间所在地域后,单击相应工作空间后的进入数据开发。
在左侧导航栏,单击临时查询。
在临时查询面板,右键单击临时查询,选择新建节点 > ODPS SQL。
在新建节点对话框中,输入节点名称,并选择目标文件夹。
说明 节点名称的长度不能超过128个字符。
单击提交。
现在,您可以在新建的临时查询节点中运行MaxCompute支持的SQL语句,详情请参见SQL概述。
以运行一个DDL语句新建表为例,输入建表语句,单击
即可。
create table if not exists sale_detail
(
shop_name string,
customer_id string,
total_price double
)
partitioned by (sale_date string,region string);
-- 创建一张分区表sale_detail
您可以查看本次运行的费用预估,单击运行。
您可以在下方的日志窗口,查看运行情况和最终结果。如果本次运行成功,结果为OK。
您可以使用同样的方法执行查询语句。
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://lebron.blog.csdn.net/article/details/125362303
内容来源于网络,如有侵权,请联系作者删除!