本文为您介绍如何创建业务流程,在业务流程中创建节点并配置依赖关系。完成创建后,您可以利用数据开发功能,对工作空间的数据进行深入分析和计算。
前提条件
开始本操作前,请确保您已经在工作空间中准备好业务数据表bank_data和其中的数据,以及结果表result_table。详情请参见建表并上传数据。
背景信息
DataWorks的数据开发功能支持在业务流程中,通过可视化拖拽来完成节点间的依赖设置。您可以通过操作业务流程的方式,实现对数据的处理和相互依赖。一个工作空间下支持创建多个业务流程,详情请参见创建业务流程。
创建业务流程
登录DataWorks控制台,切换至目标地域后,单击左侧导航栏的 ,在下拉框中选择对应工作空间后单击进入数据开发。
在数据开发页面,鼠标悬停至图标,单击新建业务流程。
在新建业务流程对话框中,输入业务名称和描述。
单击新建。
创建节点并配置依赖关系
在业务流程中创建一个虚拟节点(start)和ODPS SQL节点(insert_data),并配置依赖关系为insert_data依赖于start。
虚拟节点属于控制类型节点,在业务流程运行过程中,不会对数据产生任何影响,仅用于实现对下游节点的运维控制。
虚拟节点在被其他节点依赖的情况下,如果被运维人员手动设置为运行失败,则下游未运行的节点将因此无法被触发运行。在运维过程中,可以防止上游的错误数据进一步扩散。
业务流程中,虚拟节点的上游节点通常会被设置为工作空间根节点。工作空间根节点的格式为
工作空间名称_root
。DataWorks会为节点自动添加一个节点名的输出,结构为工作空间名称.节点名称。如果一个工作空间下有两个同名的节点,请修改其中一个节点的节点输出。
建议您在设计业务流程时,默认创建一个虚拟节点作为业务流程的根节点,来控制整个业务流程。设计业务流程的操作如下:
双击业务流程名称进入开发面板,单击通用>虚拟节点。
您也可以用鼠标拖拽虚拟节点至右侧的开发面板。
在新建节点对话框中,选择相应的路径,输入节点名称为start,单击确认。
以同样的操作新建ODPS SQL节点,命名为insert_data。
通过拖拽连线,设置start节点为insert_data节点的上游节点。
配置虚拟节点的上游依赖
在业务流程中,虚拟节点通常作为整个业务流程的控制器,是业务流程中所有节点的上游节点。
通常使用工作空间根节点作为虚拟节点依赖的上游节点:
双击虚拟节点名称,进入节点的编辑页面。
单击节点编辑页面右侧的调度配置。
在调度依赖区域,单击使用工作空间根节点,设置虚拟节点的上游节点为工作空间根节点。
保存并提交节点。
重要您需要设置节点的重跑属性和依赖的上游节点,才可以提交节点。
单击工具栏中的图标,保存节点。
单击工具栏中的图标。
在提交对话框中,输入变更描述。
单击确认。
编辑和运行ODPS SQL节点
本节将在ODPS_SQL节点insert_data中,通过SQL代码,查询不同学历的单身人士贷款买房的数量并保存结果,以便后续节点继续分析或展现。
打开ODPS 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,选中删除输入。
建表并上传数据中创建的bank_data表为非周期性调度产出的表,您可以在select非周期性调度产出表的节点代码编辑页,右键相应的表名,进行删除输入的操作。您也可以在代码的最上方添加一条规则的注释,操作完成后自动解析将不会解析该依赖。
说明由于DataWorks的调度依赖主要保障的是调度节点定时更新的表数据,通过节点调度依赖保障下游取数没有问题,所以不是DataWorks平台上调度更新的表,平台无法监控。当存在非周期性调度生产数据的表,有节点select这类表数据时,您需要手动删除通过select自动生成的依赖的上游节点配置。
单击工具栏中的图标,防止代码丢失。
单击图标。
运行结束后,即可在页面下方查看运行日志和结果。
提交业务流程
运行并调试ODPS_SQL节点insert_data后,返回业务流程页面。
单击图标。
在提交对话框中,选择需要提交的节点,输入变更描述,选择是否强制修改,并选中忽略输入输出不一致的告警。
单击提交。
业务流程提交后,即可在业务流程下的节点列表查看节点提交状态。如果节点名称左侧存在图标,表示该节点未提交;如果不存在图标,表示该节点已提交。
后续步骤
现在,您已经学习了如何创建和提交业务流程,您可以继续下一个教程。在该教程中,您将学习如何通过创建同步任务,将数据回流至不同类型的数据源中。详情请参见创建同步任务。