通常,写入原始业务数据至DataWorks,并加工为最终结果表的过程如下:
您也可以在创建表后,使用直接上传方式,将本地数据上传至DataWorks的源表,再通过计算节点进行清洗加工,将加工后的数据存储至结果表。本文使用直接上传本地数据,并通过计算类型节点清洗该表数据为例进行说明。
DataWorks的数据开发节点会对您的源数据进行清洗加工,因此,您需先在引擎创建用于接收数据清洗结果的表,并定义表结构。
本文示例分别创建如下两种表。
表名称
描述
bank_data
用于存储原始业务数据。
result_table
用于存储数据清洗后的结果。
CREATETABLEIFNOTEXISTSresult_table(educationSTRINGCOMMENT'教育程度',numBIGINTCOMMENT'人数')PARTITIONEDBY(daySTRING,hourSTRING);步骤三:新建节点根据业务需求,选择合适的节点类型进行开发。
目前DataWorks的节点分为数据同步类型节点与计算类型节点两大类,实际开发过程中,您通常需要先通过离线同步任务将业务数据库中的数据同步至数仓中,再通过DataWorks计算节点对数仓中的表数据进行清洗加工。
在业务流程目录树或业务流程面板中找到步骤三创建的节点,双击进入节点编辑页面。根据节点类型,通过对应数据库的语法编写业务代码。
本文示例在result_table节点中,将bank_data表中指定分区的数据写入result_table表对应的分区中,并通过变量(day、hour)定义写入的分区。
参数
节点的名称、ID、类型、责任人会自动展示,此处无需单独配置。
用于定义节点调度时使用的参数。
用于定义节点调度的上下游依赖关系。建议您根据血缘关系来设置节点依赖,通过上游任务执行成功来确定当前节点依赖的表数据已顺利产出,当前节点可正常查询该上游表数据。
本文示例,假设result_table节点查询的bank_data表为非当前业务流程产出的表数据,则需将工作空间根节点配置为result_table节点依赖的上游节点,由根节点调度result_table节点运行。
用于定义节点上下游间的参数传递,实现下游节点通过参数获取上游节点传递过来的取值。
该功能通常与赋值节点或赋值参数配合使用。
您可使用如下方式调试代码逻辑,保障代码编写的正确性。
方式
使用说明
选择建议
用于快速运行选中的代码片段。
需要快捷运行代码片段时,可选择此方式。
支持为代码指定测试场景下的变量赋值常量。
新建的节点第一次单击运行时,需要您在弹框中手动为代码中变量赋值常量,此次赋值会被记录,下次操作无需再重复赋值。
若您需要频繁调试全量代码,可选择此方式。
每次单击此按钮都需为指定测试场景下的变量赋值常量。
若您需要修改代码中的变量赋值,可选择此方式。
节点配置并测试完成后,您需要保存节点配置,并提交节点至开发环境。
仅当节点在步骤五中配置了重跑属性及依赖的上游节点后才可提交。
为保障生产任务高效运行,避免计算资源浪费,建议您在任务发布前先对任务进行冒烟测试。冒烟测试需在开发环境执行,因此您需将节点提交至开发环境,提交后:
若当前工作空间为简单模式工作空间,任务提交后便可周期性调度;若当前工作空间为标准模式工作空间,任务提交后仅处于待发布状态,您需参考该步骤将任务发布生产,发布后该任务才可进行周期性调度。
说明
发布流程管控
发布操作受角色权限和流程控制约束,执行发布操作后请确保发布包状态为成功。