准备工作

本文介绍在使用数据迁移服务MMS(MaxCompute Migration Service)前的准备工作。

适用范围

仅华东1(杭州)、华东2(上海)、华北2(北京)、华北3(张家口)、华北6(乌兰察布)、华南1(深圳)、西南1(成都)和新加坡地域支持MMS迁移服务。

重要

在数据迁移前需停止数据源端表和分区的写入操作,避免迁移后数据校验失败。

操作步骤

步骤一:创建MaxCompute目标项目

项目(Project)是MaxCompute的基本组织单元。

  • 执行数据迁移前,需要选择数据源将要映射到的目标MaxCompute项目。

  • 迁移过程中,需要MaxCompute项目执行各类迁移作业。

因此,执行数据迁移需要先创建MaxCompute项目(若已有可用项目,该步骤可省略)。通过MaxCompute控制台创建项目的步骤如下:

  1. 登录MaxCompute控制台,在左上角选择地域。

  2. 在左侧导航栏,选择管理配置 > 项目管理

  3. 内部项目页签,单击新建项目

  4. 新增项目对话框,根据界面提示文案配置项目信息,单击确认

    详细配置参数参考创建MaxCompute项目

步骤二:开通VPC网络连接

若当前地域已有可用的VPC网络连接,该步骤可省略。

  1. 登录MaxCompute控制台,在左上角选择地域。

  2. 在左侧导航栏,选择管理配置 > 网络连接 。

  3. 网络连接页面,单击新增网络连接

  4. 在弹出的新增网络连接对话框,根据界面提示文案配置项目信息,单击确定。首次新增需先前往授权,允许MaxCompute平台代理申请网卡,否则连接将创建失败。

    配置参数如下:

    参数

    是否必填

    描述

    连接名称

    必填

    自定义连接名称。

    类型

    必填

    默认为直通连接(passthrough)

    区域

    必填

    系统根据左上角选择的地域自动生成。

    已选择VPC

    必填

    专有网络VPC是云上安全隔离的虚拟网络环境,提供了类似于传统数据中心的安全和可配置的私有网络空间。

    如需创建新的专有网络,请参考创建/删除专有网络

    交换机

    必填

    交换机用来划分子网,同一VPC内的不同交换机之间内网互通。通过在多个不同可用区的交换机中同时部署云产品资源,可以避免应用受到单一可用区故障的影响。

    如果没有可选交换机,请参考创建/删除交换机

    安全组

    必填

    安全组扮演云上虚拟防火墙的角色,通过管理安全组和规则,可提供精细化的网络安全隔离与访问控制。

    如需创建安全组,请参考创建安全组

  5. 在后续的数据迁移作业中涉及对数据源的访问,因此要保证使用的VPC能访问互联网或者源数据端专线。

步骤三:创建服务关联角色

在首次使用迁移服务(MMS)前,需创建服务关联角色AliyunServiceRolePolicyForMaxComputeMMS,MMS使用此角色来访问在MaxCompute和其他云产品中的资源。

  1. 若当前用户使用账号为阿里云主账号,可以直接操作创建服务关联角色;

    若当前用户为RAM用户,则需要先授予RAM用户操作权限AliyunRAMFullAccess,操作详情参考RAM角色授权

  2. 创建服务关联角色有两种方式:通过MaxCompute控制台和通过RAM控制台,操作步骤如下:

    通过MaxCompute控制台

    1. 登录MaxCompute控制台,在左上角选择地域。

    2. 在左侧导航栏,选择数据传输 > 迁移服务

    3. 数据源页签,单击新增数据源

    4. 在弹出的MaxCompute服务关联角色对话框中,单击确认,即可创建成功。若未自动弹出该对话框,则表明该角色已创建。

    通过RAM控制台

    1. 登录RAM控制台

    2. 在左侧导航栏选择身份管理 > 角色

    3. 角色页面,单击创建角色

    4. 创建角色页面的右上角,单击创建服务关联角色

    5. 创建服务关联角色页面,选择信任的云服务AliyunServiceRoleForMaxComputeMMS,单击创建服务关联角色

步骤四:权限配置

  1. 配置用户MaxCompute数据操作权限

    通过SQL配置

    1. 使用本地客户端(odpscmd)连接MaxCompute,添加已创建的服务关联角色。

      USE <target_projectname>;
      
      -- 为用户添加服务关联角色。
      Add USER  `RAM$<account_id>:role/AliyunServiceRoleForMaxComputeMMS`;
    2. 给用户授予权限。

      MaxCompute支持不同粒度权限控制,在项目实际运行过程中,可根据人员操作范畴精细化授权

      -- 授予项目级数据操作权限。
      GRANT Read|Write|List|CreateTable|CreateInstance|CreateFunction|CreateResource|All 
        ON project <project_name> TO USER `RAM$<account_id>:role/AliyunServiceRoleForMaxComputeMMS`;
        
      -- 授予表级数据操作权限。
      GRANT Describe|Select|Alter|Update|Drop|ShowHistory|All 
        ON table <table_name> [(<column_list>)] TO USER `RAM$<account_id>:role/AliyunServiceRoleForMaxComputeMMS`;
      
      -- 授予实例级数据操作权限。 
      GRANT Read|Write|All  
        ON instance <instance_id> [(<column_list>)] TO USER `RAM$<account_id>:role/AliyunServiceRoleForMaxComputeMMS`;

    参数说明

    • target_projectname:必填,目标项目空间的名称。

    • account_id:必填,阿里云主账号名称

    • privileges:必填,被授予的操作权限名称。单次授权可以指定多个操作,多个操作名称之间使用半角逗号(,)分隔。

    通过MaxCompute控制台配置

    1. 登录MaxCompute控制台,在左上角选择地域。

    2. 在左侧导航栏,选择管理配置 > 项目管理

    3. 项目管理页面,单击目标项目操作列的管理

    4. 项目配置页面,选择角色权限页签。

    5. 在弹出的新建角色对话框,根据界面提示文案配置项目信息,单击确定

      该步骤目的是在MaxCompute中单独创建一个项目角色,并为该角色单独授予专用于MMS的数据操作权限。也可选择使用项目内置的admin角色,无需通过该步骤新增角色,直接执行下一步骤。

      配置参数如下:

      参数

      是否必填

      描述

      角色名称

      必填

      字母开头,可包含字母和数字,长度不超过64个字符

      角色类型

      必填

      • Admin:管理类型角色。

        • 支持通过Policy授予管理类型权限,不支持授予资源权限

        • 不支持通过ACL方式授予管理类权限。

      • Resource:资源类型角色。

        • 支持通过PolicyACL方式授予资源类型权限,不支持授予管理类型权限

      授权方式

      必填

      • ACL(Access Control Lists):白名单授权机制,允许用户或角色对指定对象执行指定操作。

      • Policy:支持白名单和黑名单授权机制,适合需要细粒度控制的大型企业和复杂场景。

      为用户授予项目、表、模型、资源、函数或实例的操作权限。可授予的权限列表如下:

      对象

      权限

      Table

      Describe、Select、Update、Alter、Drop、ShowHistory、Download

      Resource

      Read、Write、Download、Delete

      Function

      Read、Write、Download、Execute、Delete

      Package

      Read

      Project

      Read、Write、List、CreateTable、CreateInstance

    6. 选择目标项目级别角色,单击操作列的成员管理。选择需授权的阿里云主账号或RAM用户,单击确定完成授权。若首次授权时未能搜索到对应账号,可下方手动添加账号区域添加。

  2. RAM权限配置

    该步骤为执行数据迁移的RAM用户配置MMS操作权限,如MMS数据和元数据管理、迁移作业管理等。若使用阿里云主账号执行数据迁移可忽略该步骤。

    • 若当前RAM用户具备管理MaxCompute的权限,即AliyunMaxComputeFullAccess可忽略该步骤。

    • 若限制当前RAM用户仅具备MMS操作权限,则按照如下步骤操作:

      1. 登录RAM控制台

      2. 在左侧导航栏选择权限管理 > 权限策略

      3. 权限策略页面,单击创建权限策略

      4. 创建权限策略页面,选择脚本编辑。输入以下权限策略:

        MMS所有操作的权限策略

        {
          "Version": "1",
          "Statement": [
            {
              "Effect": "Allow",
              "Action": [
                "odps:ListMmsDataSources",
                "odps:CreateMmsDataSource",
                "ram:GetRole",
                "odps:GetMmsDataSource",
                "odps:UpdateMmsDataSource",
                "odps:DeleteMmsDataSource",
                "odps:CreateMmsFetchMetadataJob",
                "odps:GetMmsFetchMetadataJob",
                "odps:ListMmsFetchMetadataJobLogs",
                "odps:ListMmsDbs",
                "odps:GetMmsDb",
                "odps:ListMmsTables",
                "odps:GetMmsTable",
                "odps:ListMmsPartitions",
                "odps:GetMmsPartition",
                "odps:ListMmsJobs",
                "odps:GetMmsJob",
                "odps:CreateMmsJob",
                "odps:DeleteMmsJob",
                "odps:StartMmsJob",
                "odps:StopMmsJob",
                "odps:RetryMmsJob",
                "odps:ListMmsTasks",
                "odps:GetMmsTask",
                "odps:ListMmsTaskLogs",
                "odps:StopMmsTask",
                "odps:StartMmsTask",
                "odps:RetryMmsTask",
                "odps:GetMmsAsyncTask",
                "odps:GetMmsProgress",
                "odps:GetMmsSpeed",
                "odps:CreateMmsAuthFile",
                "odps:ListMmsAgents"
              ],
              "Resource": "*"
            }
          ]
        }

        MMS源数据管理相关权限策略

        {
          "Version": "1",
          "Statement": [
            {
              "Effect": "Allow",
              "Action": [
                "odps:ListMmsDataSources",
                "odps:CreateMmsDataSource",
                "ram:GetRole",
                "odps:GetMmsDataSource",
                "odps:UpdateMmsDataSource",
                "odps:DeleteMmsDataSource",
                "odps:CreateMmsFetchMetadataJob",
                "odps:GetMmsFetchMetadataJob",
                "odps:ListMmsFetchMetadataJobLogs",
                "odps:ListMmsDbs",
                "odps:GetMmsDb",
                "odps:ListMmsTables",
                "odps:GetMmsTable",
                "odps:ListMmsPartitions",
                "odps:GetMmsPartition",
                "odps:GetMmsAsyncTask",
                "odps:GetMmsProgress",
                "odps:GetMmsSpeed",
                "odps:CreateMmsAuthFile",
                "odps:ListMmsAgents"
              ],
              "Resource": "*"
            }
          ]
        }

        MMS迁移作业管理权限策略

        {
          "Version": "1",
          "Statement": [
            {
              "Effect": "Allow",
              "Action": [
                "odps:ListMmsDataSources",
                "odps:GetMmsDataSource",
                "odps:CreateMmsFetchMetadataJob",
                "odps:GetMmsFetchMetadataJob",
                "odps:ListMmsFetchMetadataJobLogs",
                "odps:ListMmsDbs",
                "odps:GetMmsDb",
                "odps:ListMmsTables",
                "odps:GetMmsTable",
                "odps:ListMmsPartitions",
                "odps:GetMmsPartition",
                "odps:ListMmsJobs",
                "odps:GetMmsJob",
                "odps:CreateMmsJob",
                "odps:DeleteMmsJob",
                "odps:StartMmsJob",
                "odps:StopMmsJob",
                "odps:RetryMmsJob",
                "odps:ListMmsTasks",
                "odps:GetMmsTask",
                "odps:ListMmsTaskLogs",
                "odps:StopMmsTask",
                "odps:StartMmsTask",
                "odps:RetryMmsTask",
                "odps:GetMmsAsyncTask",
                "odps:GetMmsProgress",
                "odps:GetMmsSpeed"
              ],
              "Resource": "*"
            }
          ]
        }
      5. 单击确定,在弹出的创建权限策略对话框,输入自定义策略名称,可以选择为策略设置备注及绑定标签。

      6. RAM用户添加自定义的MMS权限策略。具体操作,请参见RAM用户授权

步骤五:准备Quota资源

数据迁移作业的执行过程需消耗计算资源,因此需要为执行迁移作业的MaxCompute项目绑定Quota计算资源。

  1. 登录MaxCompute控制台,在左上角选择地域。

  2. 在左侧导航栏,选择管理配置 > 配额(Quota)管理 。

  3. Quota管理页面,单击新购Quota

    在购买页面,规格类型处选择数据传输服务

    建议购买包年包月计算资源,以降低迁移成本。

    若已有可用的数据传输服务Quota资源,可忽略该步骤。

  4. 为执行迁移任务的MaxCompute项目设置Quota计算资源。

    • 使用默认计算Quota

      项目会设置默认计算Quota ,即该项目发起的作业会使用默认的Quota资源计算,无需其他设置。新建项目时可以直接选择关联默认Quota

    • 切换计算Quota:

      1. 在左侧导航栏,选择管理配置 > 项目管理

      2. 项目管理页面,单击目标项目操作列的管理

      3. 项目配置页面,选择参数配置页签。

      4. 基础属性区域,单击编辑

      5. 数据传输服务授权Quota下拉框选择该项目使用的计算Quota,单击提交

  5. 新增数据源时,将上一个步骤设置了Quota计算资源的项目配置为执行迁移任务的项目

    1. 在左侧导航栏,选择数据传输 > 迁移服务

    2. 迁移服务页面,单击数据源页签。

    3. 数据源页签,单击新增数据源

    4. MaxCompute执行迁移作业的项目下拉框选择上一个步骤设置了Quota计算资源的项目配置为执行迁移任务的项目