迁移项目和空间资产 ( Watson Studio )
使用 cpd-cli 命令在单个 Cloud Pak for Data 集群内或在不同集群之间导出和导入项目及空间资产。
不允许将一个源容器的资源导入多个目标容器,但允许将多个源容器的资源导入一个目标容器。 此举旨在确保跨容器关系得到妥善处理。
先决条件
需要的角色
要完成此任务,您必须在 Red Hat OpenShift 上拥有以下其中一个角色:
- 集群管理员
- 实例管理员
此外,您必须在 Cloud Pak for Data 中拥有以下任一权限:
- 具有平台管理权限的用户
支持对象: 以下 Cloud Pak for Data 版本支持项目和空间资产的迁移:
- 从 Cloud Pak for Data 导出资源
- 将资产导入 Cloud Pak for Data
开始之前:
在执行本任务中的命令之前,请创建一个安装环境变量文件,并加载这些环境变量。 请参阅 “设置环境变量”。
请确保已完成所有先决任务,并已初始化导出和导入工具。 请参阅 “在 CPD 安装之间迁移数据 ”。
检查该
catalog-api-aux auxiliary模块是否可用。 运行以下命令以确定已安装了哪些辅助模块:cpd-cli export-import list aux-modules \ --namespace=${PROJECT_CPD_INST_OPERANDS} \ --profile=${CPD_PROFILE_NAME} \ --arch=${CPU_ARCH}请查阅 Cloud Pak for Data 文档中 “要求与限制 ”部分,了解项目导出的相关限制。
过程
导出项目和空间资产
要从 Watson Studio 服务中导出项目和空间资产,请按照以下步骤操作:
请以具有足够权限的用户身份登录 Red Hat OpenShift ,以便完成此任务。
${OC_LOGIN}请记住:${OC_LOGIN} 变量是 `oc login` 命令的别名。 如需更多信息,请参阅 “设置环境变量 ”。请根据您要从中导出数据的 Cloud Pak for Data 实例设置您的配置文件:
cpd-cli config profiles set ${CPD_PROFILE_NAME} \ --user ${LOCAL_USER} \ --url ${CPD_PROFILE_NAME}确定导出范围。 如果您想导出所有项目和空间中的所有资源,请跳至第 3 步。 如果您想选择要导出的资源,请创建一个包含导出配置的 YAML 文件。 创建一个具有以下
export.yaml结构的文件:catalog-api-aux: # exportspec specifies which assets to export exportspec: '<EXPORT_JSON_STRING>'通过将
<EXPORT_JSON_STRING>变量替换为 JSON 字符串,指定要导出的资源。- 从指定项目或空间的列表中导出所有资源:
'{ "project": { <<---- this is the type of asset container: project or space "container_specs": [ { "guids": [ "00cf5b102-17b3-4638-95df-309a2a443137", <<---- these are the ids of asset containers "e14a187d-4fc8-4a5d-aee1-e2ad4ec60b29" ], "all_assets": true } ] }, "catalog": { <<---- this is the type of asset container: project or space "container_specs": [ { "guids": [ "ab3d18a4-015f-4bb1-ae13-4ee9faf0382a" <<---- these are the ids of asset containers ], "all_assets": true } ] } }'- 从指定的项目或空间列表中导出特定资源:
'{ "space": { <<---- this is the type of asset container: project or space "container_specs": [ { "guids": [ "4b014869-fc0e-4919-bc93-3fa8c40bcd37" <<---- this is the id of asset container ], "asset_specs": { "asset_ids": [ "e14a187d-4fc8-4a5d-aee1-e2ad4ec60b29", <<---- these are the ids of assets "e2395865-5503-49da-b708-cfbf2fb1b646" ] } } ] } }'- 从指定的项目或空间列表中导出特定类型的资源:
'{ "space": { <<---- this is the type of asset container: project or space "container_specs": [ { "guids": [ "4b014869-fc0e-4919-bc93-3fa8c40bcd37", <<---- these are the ids of asset containers "866613f8-4102-4cd2-be6e-ee46ea6c468b" ], "asset_specs": { "asset_types": [ "data_asset", <<---- these are the types of assets "notebook" ] } } ] } }'切换到安装了命令行界
cpd-cli面的目录。设置以下环境变量:
- 将
EXPORT_NAME环境变量设置为您希望用于标识导出作业的名称:
export EXPORT_NAME=<name>- 若要导出特定资源,请
EXPORT_YAML_FILE_LOCATION将环境变量设置为包含导出配置的 YAML 文件的完整路径:
export EXPORT_YAML_FILE_LOCATION=<fully-qualified-path-to-YAML-file>- 将
请根据您的环境运行相应的导出命令:
- 要导出所有资源,请运行:
cpd-cli export-import export create ${EXPORT_NAME} \ --namespace=${PROJECT_CPD_INST_OPERANDS} \ --profile=${CPD_PROFILE_NAME} \ --component=catalog-api \ --arch=${CPU_ARCH}- 要导出特定资源,请运行:
cpd-cli export-import export create ${EXPORT_NAME} \ --namespace=${PROJECT_CPD_INST_OPERANDS} \ --profile=${CPD_PROFILE_NAME} \ --component=catalog-api \ --values=${EXPORT_YAML_FILE_LOCATION} \ --arch=${CPU_ARCH}等待导出完成。 要查看导出状态,请运行:
cpd-cli export-import export status ${EXPORT_NAME} \ --namespace=${PROJECT_CPD_INST_OPERANDS} \ --profile=${CPD_PROFILE_NAME} \ --arch=${CPU_ARCH}如果您计划将数据导入到另一个集群,请下载导出结果:
cpd-cli export-import export download ${EXPORT_NAME} \ --namespace=${PROJECT_CPD_INST_OPERANDS} \ --profile=${CPD_PROFILE_NAME} \ --arch=${CPU_ARCH}导出包的名称格式为:
cpd-exports-<export_name>-<timestamp>-data.tar
导入项目和空间资产
要将资源导入 Watson Studio 服务,请完成以下步骤:
要将资源导入 Watson Studio 服务,请完成以下步骤:
请根据您希望导入数据的位置,遵循相应的指引:
- 如果您将数据导入到同一集群中另一个 Cloud Pak for Data 实例上的 Watson Studio 服务实例:
- 请确保使用正确的环境变量文件。
- 请根据您要导入数据的 Cloud Pak for Data 实例设置配置文件:
cpd-cli config profiles set ${CPD_PROFILE_NAME} \ --user ${LOCAL_USER} \ --url ${CPD_PROFILE_NAME}
- 如果您要将数据导入位于不同集群上的 Watson Studio 服务实例:
请确保使用正确的环境变量文件。
登录您要导入数据的 Red Hat OpenShift Container Platform ,并确保您拥有足够的权限来完成此任务。
${OC_LOGIN}请记住:${OC_LOGIN} 变量是 `oc login` 命令的别名。 如需更多信息,请参阅 “设置环境变量 ”。根据 Cloud Pak for Data 实例设置您的个人资料:
cpd-cli config profiles set ${CPD_PROFILE_NAME} \ --user ${LOCAL_USER} \ --url ${CPD_PROFILE_NAME}
确定导入的范围。 如果您想导入所有项目和空间中的所有资源,请跳至第 4 步。 如果您想选择要导入的资源,请创建一个包含导入规范的 YAML 文件。 创建一个具有以下
import.yaml结构的文件:catalog-api-aux: admin_username: cpadmin # importspec specifies which assets to import importspec: '<IMPORT_JSON_STRING>'将该
<IMPORT_JSON_STRING>变量替换为指定要导入的资源的 JSON 字符串。您指定的
admin_username用户将作为导入资产的所有者,且必须设置为实例管理员。在您的 YAML 文件中添加以下导入规范,以选择要导入的资源:
containerIds:将特定的源资产导入新集群中已有的特定容器。 该值是一个源:目标格式的 JSON 映射。
示例:
'{ "containerIds": { "default": "<target-id1>", "<original-id>": "<target-id2>" } }'如果您正在浏览用户界面,可以在项目的“ URL ”中找到“ containerIDs ”。
您还可以使用命令行
cpd-cli工具,并执行以下命令:cpd-cli project list该函数返回一个包含项目及其 ID 的列表cpd-cli asset search该方法将返回一个包含资产及其 ID 的列表
有关该
cpd-cli命令行工具的更多信息,请参阅 cpd-cli 命令参考。newContainerNameOverrides:将容器导入到新的容器中。 您可以在容器创建之前为其指定具体名称。 否则,新容器将被赋予默认名称。 该值是一个源:目标格式的 JSON 映射。示例:
{ "newContainerNameOverrides": { "<source-id1>": "<target-name1>", "<source-id2>": "<target-name2>" } }container_suffix:将容器导入到新的容器中。 在创建容器之前,您可以为其名称添加后缀。 否则,新容器将被赋予默认名称。示例:
{ "container_suffix": "-migration" }duplicate_action:指定在创建资产时应执行的操作。 请从以下 4 个选项中选择一个:“UPDATE”、“REJECT”、“REPLACE”或“IGNORE”。注:duplicate_action该连接资产类型不支持此功能。示例:
{ "duplicate_action": "REPLACE" }
切换到安装了命令行界
cpd-cli面的目录。将
IMPORT_NAME环境变量设置为您希望用于标识导入作业的名称:export IMPORT_NAME=<name>运行以下命令,将数据导入 Watson Studio 服务:
cpd-cli export-import import create ${IMPORT_NAME} \ --from-export=${EXPORT_NAME} \ --namespace=${PROJECT_CPD_INST_OPERANDS} \ --profile=${CPD_PROFILE_NAME} \ --values=${IMPORT_YAML_FILE_LOCATION} \ --arch=${CPU_ARCH} \ --backoff-limit=0等待导入完成。 要查看导入状态,请运行:
cpd-cli export-import import status ${IMPORT_NAME} \ --namespace=${PROJECT_CPD_INST_OPERANDS} \ --profile=${CPD_PROFILE_NAME} \ --arch=${CPU_ARCH}