注意,DataWorks数据开发有新旧两个版本,不同版本迁移方案不同。本文是DataWorks旧版数据开发→DataWorks新版数据开发操作指南。
DataWorks新旧版本说明:数据开发(DataStudio)(旧版),数据开发(Data Studio)(新版)。
(DataWorks旧版数据开发->DataWorks旧版数据开发可使用DataWorks迁移助手。)
(DataWorks新版数据开发->DataWorks新版数据开发详见同目录下文档。)
1 前言
1.1 DataWorks空间升级能力及其特性
DataWorks提供了空间升级能力,可直接完成旧版数据开发空间到新版数据开发空间的迁移。
启用新版数据开发(Data Studio) - DataWorks官方文档
旧版数据开发(DataStudio)支持通过单击数据开发页面顶部的升级新版按钮,按界面提示,将数据迁移至新版数据开发(Data Studio)。
启用新版数据开发(Data Studio)
【需要了解的前置概念】
DataWorks旧版数据开发空间中,组织节点的方式是“业务流程”。
DataWorks新版数据开发空间中,组织节点的方式是“Workflow”,用户也可创建不属于任何Workflow的单独节点。
新旧数据开发在调度配置上存在如下差异:
旧版周期调度器(Trigger)设置于节点。
新版Trigger设置于Workflow或独立节点,Workflow内部节点无法设置独立Trigger。
【DataWorks数据开发空间升级方案】
空间升级能力的方案是,在同空间中:
将旧版“业务流程”转换为新版数据开发路径(文件夹)。
将旧版节点转换为新版数据开发独立节点。
调度配置的差异是“旧版节点转换为新版数据开发独立节点“的直接原因。
1.2 本方案的适用情况(必读!)
【建议】我们强烈建议直接使用DataWorks提供的空间升级能力。
仅在以下情况下,可使用本方案完成迁移:
存在跨空间/跨Region/跨账号的需求。
“空间升级”会将旧版节点转换为新版独立节点,导致无法在数据开发页面预览DAG,使用不便。用户希望将旧版业务流程直接升级成新版Workflow。
本方案中处理“新旧数据开发在调度配置上差异”的策略:
工具允许用户灵活配置各业务流程在新版空间中的创建方式:
若同一业务流程中节点具有相同的Trigger,或者在业务层面节点可配置为相同的Trigger:
用户可基于本工具在迁移目标端建立新版Workflow,原节点级Trigger转换为Workflow级Trigger。若无法统一单一业务流程中节点的Trigger。本工具也可以将业务流程转换为目录+独立节点。
1.3 关于手动任务
目前工具支持了旧版数据开发手动业务流程、临时查询的迁移。
旧版“手动业务流程”对应“手动业务流程”;
旧版“临时查询”对应新版“手动任务。
2 从DataWorks旧版数据开发空间中导出
导出工具通过调用DataWorks的SDK获取项目空间信息、工作流定义等信息,为DataWorks任务流跨空间迁移做准备。
2.1 前置条件
准备JDK17运行环境,打通运行环境和DataWorks的网络连接,下载调度迁移工具到本地并解压缩。
网络连接测试方法:验证能否连接DataWorks Endpoint。
服务接入点列表:
https://help.aliyun.com/zh/dataworks/developer-reference/api-dataworks-public-2020-05-18-endpoint
测试连通性的方法:
ping dataworks.aliyuncs.com2.2 配置连接信息
在工程目录的conf文件夹下创建导出配置文件(JSON格式),如read.json。
使用前请删除JSON中的注释。
{
"schedule_datasource": {
"name": "source_datasource", // 无需修改
"type": "bwmspec", // 无需修改
"properties": {
"endpoint": "dataworks.cn-hangzhou.aliyuncs.com", // 服务接入点
"project": "hesheng_oldidea_test", // 工作空间名称
"project_name": "hesheng_oldidea_test", // 工作空间名称
"project_id": "268770", // 工作空间ID
"ak": "xxx", // ak
"sk": "xxx" // sk
},
"operaterType": "AUTO" // 无需修改
},
"conf": {}
}配置项具体含义及获取方式可参考调度迁移工具DataWorks新版数据开发平迁的官网文档。
DataWorks 跨空间迁移 - 湖仓迁移中心官方文档
2 配置连接信息
一、DataWorks导出方案
2.1 服务接入点
2.2 工作空间ID
2.3 创建AK、SK并授权
2.3 运行命令
工具通过命令行调用,调用命令如下:
sh ./bin/run.sh read \
-c ./conf/<你的配置文件>.json \
-o ./data/1_ReaderOutput/<源端探查导出包>.zip \
-t dw-reader其中-c为配置文件路径,-o为ReaderOutput包存储路径,-t为探查插件名称。
例如,当前需要导出DataWorks的项目A:
sh ./bin/run.sh read \
-c ./conf/read.json \
-o ./data/1_ReaderOutput/ReaderOutput.zip \
-t dw-reader2.4 查看导出结果
打开./data/1_ReaderOutput/下的生成包ReaderOutput.zip,可预览导出结果。
导出包ReaderOutput.zip中根目录下存在LHMPackageOverview.xls文件(调度元数据统计报表),是对DataWorks中任务流、节点、资源、函数、数据源基本信息的汇总展示。
3 调度转换
如本文1.2节所述,工具允许用户灵活配置各业务流程在新版空间中的创建方式,即建立为统一Trigger的Workflow,或建立为路径包裹的独立节点。
配置方式如下:
打开导出包中的统计报表LHMPackageOverview.xls,打开Workflow子表,配置“是否为独立节点集”列。
设置为true时:源端业务流程将被建立为统一Trigger的Workflow,调度周期请填写于“调度信息(Cron表达式)”列中。
设置为false时:源端业务流程将被建立为一个路径(数据开发中的文件夹),其中的节点将以独立节点的形式建立于路径下。(注意,虽然是独立节点,但节点间依赖仍是存在的,DataWorks节点依赖通过节点的输入输出进行挂载)。
此外,DataWorks跨工作空间平迁时,原空间、目标空间数据源、资源组等可能发生变化,用户需要对调度信息进行修改。为此工具提供了一种便捷的方式,支持用户通过编辑调度统计表批量修改这些属性。(统计报表中蓝色字体列均可修改)操作方法可参考调度迁移工具DataWorks新版数据开发平迁的官网文档中的以下小节。
DataWorks 跨空间迁移 - 湖仓迁移中心官方文档
二、DataWorks平迁属性映射
2 修改调度信息
4 导入DataWorks新版数据开发空间
可参考调度迁移工具DataWorks新版数据开发平迁的官网文档中的以下小节。
DataWorks 跨空间迁移 - 湖仓迁移中心官方文档
三、导入DataWorks