DataWorks 跨空间迁移(旧版空间迁移至新版空间)

注意,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转换为WorkflowTrigger。

  • 若无法统一单一业务流程中节点的Trigger。本工具也可以将业务流程转换为目录+独立节点。

1.3 关于手动任务

目前工具支持了旧版数据开发手动业务流程、临时查询的迁移。

旧版“手动业务流程”对应“手动业务流程”;

旧版“临时查询”对应新版“手动任务。

2 从DataWorks旧版数据开发空间中导出

导出工具通过调用DataWorksSDK获取项目空间信息、工作流定义等信息,为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.com

2.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为配置文件路径,-oReaderOutput包存储路径,-t为探查插件名称。

例如,当前需要导出DataWorks的项目A:

sh ./bin/run.sh read \
-c ./conf/read.json \
-o ./data/1_ReaderOutput/ReaderOutput.zip \
-t dw-reader

2.4 查看导出结果

打开./data/1_ReaderOutput/下的生成包ReaderOutput.zip,可预览导出结果。

导出包ReaderOutput.zip中根目录下存在LHMPackageOverview.xls文件(调度元数据统计报表),是对DataWorks中任务流、节点、资源、函数、数据源基本信息的汇总展示。

3 调度转换

如本文1.2节所述,工具允许用户灵活配置各业务流程在新版空间中的创建方式,即建立为统一TriggerWorkflow,或建立为路径包裹的独立节点。

配置方式如下:

打开导出包中的统计报表LHMPackageOverview.xls,打开Workflow子表,配置“是否为独立节点集”列。

  • 设置为true时:源端业务流程将被建立为统一TriggerWorkflow,调度周期请填写于“调度信息(Cron表达式)”列中。

  • 设置为false时:源端业务流程将被建立为一个路径(数据开发中的文件夹),其中的节点将以独立节点的形式建立于路径下。(注意,虽然是独立节点,但节点间依赖仍是存在的,DataWorks节点依赖通过节点的输入输出进行挂载)。

此外,DataWorks跨工作空间平迁时,原空间、目标空间数据源、资源组等可能发生变化,用户需要对调度信息进行修改。为此工具提供了一种便捷的方式,支持用户通过编辑调度统计表批量修改这些属性。(统计报表中蓝色字体列均可修改)操作方法可参考调度迁移工具DataWorks新版数据开发平迁的官网文档中的以下小节。

DataWorks 跨空间迁移 - 湖仓迁移中心官方文档
二、DataWorks平迁属性映射
2 修改调度信息

4 导入DataWorks新版数据开发空间

可参考调度迁移工具DataWorks新版数据开发平迁的官网文档中的以下小节。

DataWorks 跨空间迁移 - 湖仓迁移中心官方文档
三、导入DataWorks