该功能适用于部署了多套数据开发平台,且不同平台间网络不通的客户。主要用来完成将一个平台的离线开发任务,批量下载下来,并通过存储介质拷贝到另一个平台,在离线开发中进行导入。

注意:
该功能已被发布中心产品的功能替代,建议有此场景需求的用户,请使用发布中心产品。

支持导出:
目前仅支持将离线开发的线上任务内容(节点及内容、节点间依赖)、资源,以及其引用的任务、数据质量、离线同步任务、资源组ID、调度配置等信息导出,其中调度配置包括调度时间、任务依赖、执行设置、以及队列使用情况等,导入时在导入端平台进行检测。

不支持导出:
暂不支持数据质量任务配置、离线同步任务配置、具体的资源组等一并导出,也不支持任务所引用的表的数据等的导出。

注意:
1. 当前批量导出和导入支持调度信息的导出,但是单个任务的下载和上传仍然不支持,使用时需注意。现在通过任务批量导出和导入也能做到导入成功后自动提交上线的操作。
2. 当有依赖的任务进行导出时,在导入端必须已经存在同名的上游依赖,否则依赖导入将失败。因此,此处建议在进行导入时,先导入上游任务,再导入下游任务。
3. 当对有跨项目依赖的任务进行导出导入时也要保证导入端的项目名称一致。例如,在测试环境项目A任务a依赖项目B任务b,那么当导入到生成环境时,也要保证存在项目B和任务b,否则也会导入失败。
4. 导入前需要保证目标端存在相同的队列名称,否则会导入失败。
5. 目前由于一个集群的uuid唯一,任务的批量导出导入基于uuid,因此不支持一个集群不同项目间任务的批量导出导入。
6. 目前导入操作不会导入目录结构,因此对于新任务需要新建一个任务目录。对于已有的任务,会进行任务覆盖操作。如果任务有重命名,也会按照任务唯一标识在导入端进行重命名。

功能介绍

批量导出和导入功能需要由运维人员开启,用户需要确定哪个平台开启批量导出功能(一般该平台用于测试使用),哪个平台需要开放批量导入功能(一般该平台作为生产平台)。

当平台开启任务批量导出和导入功能后,通过单击辅助功能区的图标,可以看到批量导出任务导入批量任务包按钮。目前仅项目负责人和管理员会暴露该入口。

批量导出任务

对于任务导出的平台,单击批量导出任务,弹出对话框。在对话框中,用户需要输入线上任务的名称,可输入多个任务名称(一行表示一个任务,最多支持200个),单击生成批量任务包。系统会对任务名称先进行匹配检验,如果未匹配到线上任务时,会给出提醒。如下图所示:
15 数据沙箱07.png

如果均匹配成功,则系统开始生成批量任务包。如果任务数量较多或任务本身占用存储空间较大,可能需要等待较长时间。生成成功后,会提醒当前用户。用户即可执行导出操作,将任务包导出到本地存储。
15 数据沙箱08.png

因为生成时间可能会比较久,目前支持任务包缓存时间为3天。用户关闭批量导出任务包弹框之后,3天内再次进入,也可以继续看到上一次生成结果,也可以执行导出操作。
15 数据沙箱09.png

导入批量任务包

对于任务导入的平台,点击导入批量任务包,即可在弹框中选择由导出端平台转储到本地环境中的批量任务包,同时需要配置任务目录才可执行导入操作。
16 批量导出任务.png

说明: 目前导入操作不会导入目录结构,因此对于新任务需要新建一个任务目录。对于已有的任务,会进行任务覆盖操作。如果任务有重命名,也会按照任务唯一标识在导入端进行重命名。

在执行导入前,系统会先进行检测,包括引用的数据质量监控是否存在、数据同步节点引用的离线同步任务是否存在、嵌套流或AI 2.0节点引用的任务是否存在、引用的资源组是否存在、任务名称是否合法、存在相同的队列信息等等。

下图为检测未通过的一些场景:
16 批量导出任务02.png

使用建议: 由于目前导出和导入功能时,有部分内容未进行导出,需要使用者在根据导入端的提醒,在导入端配置相关的内容。

批量导出导入功能补充说明

批量导出时任务个数和导出的文件大小上限支持在easyops上配置,参数分别为mammut.projectDeploy.maxExportNum和mammut.file.maxSizeMb。批量导入时支持分片上传和断点续传,且支持查看导入的进度。
批量导出任务包默认最多导出200个,最大导出500M,用户自定义配置上限后,此处将调整导出的上限。

导入批量任务包时,用户可以查看导入的进度。并且支持分片上传和断点续传,当用户导入任务包的过程中暂停导入,3天内上传同样的任务包到同样的任务目录,将从上次暂停导入的地方继续导入。

注意事项: 如果上限设置的比较大,可能会导致服务器瘫痪,请谨慎设置。