5)查看同步结果
展开左侧菜单,点击“公共表”,搜索表名,点击“数据预览”可预览表的数据。
2.3 新建ODPS SQL
本小节目的是创建目标表t_dml_result,用于存储数据分析后产生的结果。
进入数据开发页面,点击“临时查询”,右键新建节点ODPS SQL;
输入节点名称,点击“提交”。
双击节点,输入建表语句,点击“运行”。
建表语句如下:
create table IF NOT EXISTS t_dml_result ( province string, product_id bigint, cnt bigint ) partitioned by (sale_date string);
创建表成功后,展开左侧菜单,点击“公共表”,搜索表名,查看表信息:
2.4 新建业务流程
1)新建业务流程
进入数据开发页面,展开左侧菜单,点击“数据开发”,选择“新建业务流程”;
输入业务名称,如图所示:
2) 新建虚拟节点
打开业务流程,在“通用”中点击“虚拟节点”,输入节点名后点击“提交”。
3) 新建数据节点
在“MaxCompute”中,点击“ODPS SQL”,输入节点名称后点击“提交”。
4) 编辑数据节点
双击数据节点,编辑SQL语句, 点击“保存”。
本SQL实现按省份和产品维度,对每天的销售量进行汇总。代码如下:
INSERT OVERWRITE TABLE t_dml_result PARTITION(sale_date) SELECT province ,product_id ,SUM(cnt) AS cnt ,’s d a t e ′ a s s a l e d a t e F R O M t d m l d a t a W H E R E d s = ′ 201 7 ′ A N D S U B S T R ( s a l e d a t e , 1 , 10 ) = ′ {sdate}'as sale_date FROM t_dml_data WHERE ds = '2017' AND SUBSTR(sale_date,1,10) = 'sdate ′ assale d ateFROMt d ml d ataWHEREds= ′ 2017 ′ ANDSUBSTR(sale d ate,1,10)= ′ {sdate}’ GROUP BY product_id ,province;
打开右侧“调度配置”,点击参数配置,设置参数:sdate=$[yyyy-mm-dd-1],点击“保存”。
5) 设置依赖关系
双击虚拟节点,展开右侧的“调度配置”,在“调度依赖”中选择依赖的上游节点,本示例中点击“使用工作空间根节点”。
节点间通过拖拽连线形成上下游依赖关系。
6)设置调度属性
双击数据节点,点击右侧“调度配置”,设置“时间属性”。此处可以配置调度的生效日期,调度周期,运行时间,是否依赖上一周期等,然后点击“保存”。
本示例的任务是对每天的销售量进行汇总,故而设置成调度每天运行一次。
在跨周期依赖中,可以设置自依赖。本示例选择“不依赖上一周期”,即无论上一周期任务是否完成,本周期都会正常运行。
7) 提交业务流程
设置完成后,点击“提交”业务流程。
弹出提交选项卡,选择需要提交的节点,输入备注信息,然后点击“提交”。
8) 测试业务流程
点击“运行”业务流程,如果有报错,需要对代码进行调试。
运行成功后如图所示:右键单击节点,可查看节点运行日志。
运行日志如图所示:
2.5 任务运维
2.4.1 打开运维中心
运维中心是对任务和实例展示/操作的地方。有两种方式可进入运维中心。
方式一:在数据开发页面,点击上方的“前往运维”按钮进入运维中心。
方式二:点击左上角的“DataWorks”图标,在下拉列表中选择“运维中心”。
运维中心包括运维大屏、任务列表、任务运维和智能监控四大模块。
2.4.2 任务列表
任务列表分周期任务和手动任务。
周期任务:调度系统按照调度配置自动定时执行的任务。
手动任务:新建任务时,调度类型选择手动任务后,提交到调度系统的任务。
选择左侧菜单栏中的“周期任务”,查看已提交的周期任务。选中任务,点击鼠标右键,可执行相应操作。
如下图所示,展开子节点
点击“查看更多详情”,即可弹出任务属性、运行日志、操作日志、代码等。
详情说明:
属性:此节点的属性介绍,包括调度类型、状态、时间等信息。
运行日志:此节点在运行后或运行中的日志信息。
操作日志:对节点的操作日志,包括节点变更、补数据等操作的记录。
代码:节点编辑的代码。
选择“补数据”,即可对当前节点补历史数据,可选择包含本节点、包含本节点和下游节点。
注意:源表t_dml_data中数据时间为2015年5月,此处的业务日期请选择该时间段方可运行出结果。如图所示,设置业务日期为2015-05-01至2015-05-03.然后点击“确定”,则会按天生成3个实例。
说明:实例越多,消耗资源越多,花费时间越长,建议实验中此处周期选择短一点。在实际生产环境中,依项目具体情况而定。
2.4.3 任务运维
补数据实例创建成功后,在“任务运维”列表下的“补数据实例”中可查看。
补数据实例是对周期任务进行补数据时产生的实例,可对补数据任务实例进行运维管理,如查看运行状态,对任务实例进行终止、重跑、解冻等操作。
任务正在运行时,点击刷新按钮可刷新任务运行状态。直到所有实例都运行成功。
实例状态说明:运行成功image.png 、未运行image.png 、运行失败image.png 、正在运行image.png 、等待image.png 、冻结image.png
任意点击某个实例,右侧显示节点信息。
右键单击节点,可查看更多操作。
操作说明:
展开父节点/子节点:当一个工作流有3个节点及以上时,运维中心展示任务时会自动隐藏节点,用户可通过展开父子层级,来看到更多的节点依赖关系,层级越大,展示越全面。
查看运行日志:进入运维日志界面,可以在运维日志中看到logview等信息。
查看代码:查看当前节点的代码。
编辑节点:单击后可进入节点编辑页面,对节点内容进行修改。
查看血缘:查看此节点的血缘关系图。
终止运行:如果实例在运行中,可单击终止运行,停止任务,只对本次实例有效。
重跑:重新调度此实例。
重跑下游:当前节点的下游重跑实例,如果存在多个下游实例,将会全部重跑。
置成功:将当前节点状态改为成功。
暂停(冻结):将当前节点置为暂停(冻结)状态,并停止调度。当节点状态为暂停时,在节点名称后会出现 图标。
恢复(解冻): 将暂停(冻结)的节点恢复调度。
如图所示,点击“查看运行日志”:
2.4.4 智能监控
智能监控是DataWorks(数据工场)任务运行的监控及分析系统。根据监控规则和任务运行情况,智能监控决策是否报警、何时报警、如何报警以及给谁报警。
下面将演示如何在规则管理页面自定义报警规则。
1) 单击“规则管理”页面右侧的“新建自定义规则”。
2) 在新建自定义规则弹窗内,输入规则名称、规则对象、触发方式、报警行为等参数,并单击确认生成规则。
各配置项说明如下:
对象类型:控制监控的粒度,可以选择以基线、项目或任务节点作为监控对象。
触发条件:可设置为完成、未完成、出错或超时。
最小报警间隔:两次报警之间的时间间隔。
最大报警次数:报警的最大次数,超过这个次数后无论监控对象状态如何,都不再产生报警。
接收人:报警的对象,可设置为责任人、值班表或其他接收人。
免打扰时间:在该时间段内不会发送报警
3)完成上述设置后,单击规则管理页面,点击详情可查看规则的具体内容
触发条件说明:
出错:任务一旦出错,则报警给设置的报警对象。同时推送详细的任务出错信息。
完成:一旦设置的对象上所有的任务完成,则会发送报警。
未完成:例如设置某条基线在10:00完成,则10点只要基线上有一个任务没有完成,则会发送报警,同时推送没有完成的任务列表给您。
超时:一旦设置的对象上有被监控的任务在指定时间内未完成,则会发送报警。
4)查询报警信息
点击左侧菜单列表的“报警信息”,通过规则ID/名称或报警时间、接收人,可搜索查询到具体的报警信息。
2.6 数据管理
数据管理模块可进行组织内全局数据视图的查看、分权管理、元数据信息详情、数据生命周期管理、数据表/资源/函数权限管理审批等操作。
点击左上方图标DataWorks,切换到 数据管理页面。
数据表管理模块对数据表进行分类,并为各分类提供不同的表信息以及表操作管理功能,以便管理自己的数据表。
如下图所示,点击“我管理的表”,即可查看实验中生成的表。
在数据表管理中,可对表进行生命周期设置、表管理(包括修改表的类目、描述、字段、分区等)、表隐藏/取消隐藏和表删除等操作。
如下图所示,查看表的字段信息:
如下图所示,查看表的分区信息:
如下图所示,预览表中数据:
第 3 章:思考与讨论
3.1 思考与讨论
在实际场景中,作为生产系统,数据是源源不断产生的。
那么在本实验中,要把新产生的数据从RDS同步到ODPS进行大数据处理,需如何改进呢?
参考答案如下:
1、“IDE同步”业务流程配置调度信息;
2、源表数据抽取时,根据时间设置“数据过滤”条件;
3、目标表的分区,由常量改为变量;
4、“IDE开发”中where条件加分区,避免全表扫描。
4.1 课后任务
1、创建一个按天调度的同步任务;
2、将ODPS中生成的结果表同步到RDS中。