本文介紹在使用資料移轉服務MMS(MaxCompute Migration Service)前的準備工作。
適用範圍
華東1(杭州)、華東2(上海)、華北2(北京)、華北3(張家口)、華北6(烏蘭察布)、華南1(深圳)、西南1(成都)、中國香港、印尼(雅加達)、新加坡、日本(東京)、美國(維吉尼亞)、德國(法蘭克福)地區支援MMS遷移服務。
在資料移轉前需停止資料來源端表和分區的寫入操作,避免遷移後資料校正失敗。
操作步驟
步驟一:建立MaxCompute目標專案
專案(Project)是MaxCompute的基主要組織單元。
在執行資料移轉前,需要選擇資料來源將要映射到的目標MaxCompute專案。
在遷移過程中,需要MaxCompute專案執行各類遷移作業。
因此,執行資料移轉需要先建立MaxCompute專案(若已有可用專案,該步驟可省略)。通過MaxCompute控制台建立專案的步驟如下:
登入MaxCompute控制台,在左上方選擇地區。
在左側導覽列,選擇。
在内部项目頁簽,單擊新建项目。
在彈出的新增项目對話方塊,根據介面提示文案設定項目資訊,單擊確認。
詳細配置參數參考建立MaxCompute專案。
步驟二:開通VPC網路連接
若當前地區已有可用的VPC網路連接,該步驟可省略。
登入MaxCompute控制台,在左上方選擇地區。
在左側導覽列,選擇 。
在网络连接頁面,單擊新增网络连接。
在彈出的新增网络连接對話方塊,根據介面提示文案設定項目資訊,單擊確定。首次新增需先前往授權,允許MaxCompute平台代理申請網卡,否則串連將建立失敗。
配置參數如下:
參數
是否必填
描述
连接名称:
必填
自訂串連名稱。格式如下:
字母開頭。
只能包含字母、底線(_)和數字。
長度在1-63個字元。
类型:
必填
預設為直通连接(passthrough)。
直通连接(passthrough)對應的即是專用網路串連方案。
区域:
必填
系統根據左上方選擇的地區自動產生。詳情請參見開通地區。
已选择VPC:
必填
Virtual Private Cloud是雲上安全隔離的虛擬網路環境,提供了類似於傳統資料中心的安全和可配置的私人網路空間。
交换机:
必填
交換器用來劃分子網,同一VPC內的不同交換器之間內網互連。通過在多個不同可用性區域的交換器中同時部署雲產品資源,可以避免應用受到單一可用性區域故障的影響。
安全组:
必填
安全性群組扮演雲上虛擬防火牆的角色,通過管理安全性群組和規則,可提供精細化的網路安全隔離與存取控制。
安全性群組ID,如需建立安全性群組,請參考建立安全性群組。
在後續的資料移轉作業中涉及對資料來源的訪問,因此要保證使用的VPC能訪問互連網或者來源資料端專線。
若資料來源在公用互連網上,使用NAT Gateway實現公網訪問,詳情請參考用NAT Gateway統一公網流量出口。
若資料來源儲存在本機資料中心,通過專線串連到阿里雲,詳情請參考使用專線串連。
步驟三:建立服務關聯角色
在首次使用遷移服務(MMS)前,需建立服務關聯角色AliyunServiceRolePolicyForMaxComputeMMS,MMS使用此角色來訪問在MaxCompute和其他雲產品中的資源。
若目前使用者使用帳號為阿里雲主帳號,可以直接操作建立服務關聯角色;
若目前使用者為RAM使用者,則需要先授予RAM使用者操作許可權
AliyunRAMFullAccess,操作詳情參考管理RAM角色的許可權。建立服務關聯角色有兩種方式:通過MaxCompute控制台和通過RAM控制台,操作步驟如下:
通過MaxCompute控制台
登入MaxCompute控制台,在左上方選擇地區。
在左側導覽列,選擇。
在数据源頁簽,單擊新增数据源。
在彈出的MaxCompute服务关联角色對話方塊中,單擊确认,即可建立成功。若未自動彈出該對話方塊,則表明該角色已建立。
通過RAM控制台
登入RAM控制台。
在左側導覽列選擇。
在角色頁面,單擊建立角色。
在建立角色頁面的右上方,單擊建立服務關聯角色。
在建立服務關聯角色頁面,選擇信任的雲端服務
AliyunServiceRoleForMaxComputeMMS,單擊建立服務關聯角色。
步驟四:許可權配置
配置使用者MaxCompute資料操作許可權
通過SQL配置
使用本地用戶端(odpscmd)串連MaxCompute,添加已建立的服務關聯角色。
USE <target_projectname>; -- 為使用者添加服務關聯角色。 Add USER `RAM$<account_id>:role/AliyunServiceRoleForMaxComputeMMS`;給使用者授予許可權
MaxCompute支援不同粒度許可權控制,在專案實際運行過程中,可根據人員操作範疇授權。
粗粒度授權,直接授權admin角色給user,不用逐張表給同一使用者重複授予許可權。
GRANT admin TO USER `RAM$<account_id>:role/AliyunServiceRoleForMaxComputeMMS`;細粒度授權:逐個專案、表或執行個體層級授權。
授予專案級資料操作許可權
-- 授予專案級資料操作許可權。 GRANT <actions> ON project <project_name> TO USER `RAM$<account_id>:role/AliyunServiceRoleForMaxComputeMMS`; -- 支援的actions Read,Write,List,CreateTable,CreateInstance,CreateFunction,CreateResource,All -- 樣本1 GRANT Read,Write,List,CreateTable,CreateInstance,CreateFunction,CreateResource ON project <project_name> TO USER `RAM$<account_id>:role/AliyunServiceRoleForMaxComputeMMS`; -- 樣本2 GRANT ALL ON project <project_name> TO USER `RAM$<account_id>:role/AliyunServiceRoleForMaxComputeMMS`;授予表級資料操作許可權
-- 授予表級資料操作許可權。 GRANT <actions> ON table <table_name> [(<column_list>)] TO USER `RAM$<account_id>:role/AliyunServiceRoleForMaxComputeMMS`; -- 支援的actions Describe,Select,Alter,Update,Drop,ShowHistory,All -- 樣本1 GRANT Describe,Select,Alter,Update,Drop,ShowHistory ON table <table_name> [(<column_list>)] TO USER `RAM$<account_id>:role/AliyunServiceRoleForMaxComputeMMS`; -- 樣本2 GRANT All ON table <table_name> [(<column_list>)] TO USER `RAM$<account_id>:role/AliyunServiceRoleForMaxComputeMMS`;授予執行個體級資料操作許可權
-- 授予執行個體級資料操作許可權。 GRANT <actions> ON instance <instance_id> [(<column_list>)] TO USER `RAM$<account_id>:role/AliyunServiceRoleForMaxComputeMMS`; -- 支援的actions Read,Write,All -- 樣本1 GRANT Read,Write ON instance <instance_id> [(<column_list>)] TO USER `RAM$<account_id>:role/AliyunServiceRoleForMaxComputeMMS`; -- 樣本2 GRANT All ON instance <instance_id> [(<column_list>)] TO USER `RAM$<account_id>:role/AliyunServiceRoleForMaxComputeMMS`;
參數說明:
target_projectname:必填,目標專案空間的名稱。
account_id:必填,預設UID。
privileges:必填,被授予的操作許可權名稱。單次授權可以指定多個操作,多個操作名稱之間使用半形逗號(,)分隔。
通過MaxCompute控制台配置
登入MaxCompute控制台,在左上方選擇地區。
在左側導覽列,選擇。
在项目管理頁面,單擊目標專案操作列的管理。
在项目配置頁面,選擇角色权限頁簽。
在彈出的新建角色對話方塊,根據介面提示文案設定項目資訊,單擊確定。
該步驟的目的是在MaxCompute中單獨建立一個專案角色,並為該角色單獨授予專用於MMS的資料操作許可權。
也可選擇使用專案內建的admin角色,無需通過該步驟新增角色,直接執行下一步驟。
配置參數如下:
參數
是否必填
描述
角色名称
必填
字母开头,可包含字母和数字,长度不超过64个字符
角色类型
必填
Admin:管理類型角色。
支援通過Policy授予管理類型許可權,不支援授予資源許可權;
不支援通過ACL方式授予管理類許可權。
Resource:資源類型角色。
支援通過Policy或ACL方式授予資源類型許可權,不支援授予管理類型許可權
授权方式
必填
為使用者授予專案、表、模型、資源、函數或執行個體的操作許可權。可授與權限列表如下:
對象
許可權
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
選擇目標專案層級角色,單擊操作列的成员管理。選擇需授權的阿里雲主帳號或RAM使用者,單擊確定完成授權。若首次授權時未能搜尋到對應帳號,可下方手动添加成员地區添加。
RAM許可權配置
該步驟為執行資料移轉的RAM使用者配置MMS操作許可權,如MMS資料和中繼資料管理、遷移作業管理等。若使用阿里雲主帳號執行資料移轉可忽略該步驟。
若當前RAM使用者具備管理MaxCompute的許可權,即
AliyunMaxComputeFullAccess,可忽略該步驟。若限制當前RAM使用者僅具備MMS操作許可權,則按照如下步驟操作:
登入RAM控制台。
在左側導覽列選擇。
在權限原則頁面,單擊建立權限原則。
在建立權限原則頁面,選擇指令碼編輯。輸入以下權限原則:
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", "odps:ListMmsTimers", "odps:GetMmsTimer", "odps:UpdateMmsTimer", "odps:ListMmsTimerLogs", "odps:CreateMmsTimer", "odps:UpdateMmsTables", "odps:UpdateMmsTable", "odps:UpdateMmsDb", "odps:ListNetworkLinks" ], "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", "odps:UpdateMmsTables", "odps:UpdateMmsTable", "odps:UpdateMmsDb" ], "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", "odps:ListMmsTimers", "odps:GetMmsTimer", "odps:UpdateMmsTimer", "odps:ListMmsTimerLogs", "odps:CreateMmsTimer" ], "Resource": "*" } ] }單擊確定,在彈出的建立權限原則對話方塊,輸入自訂策略名稱稱,可以選擇為原則設定備忘及綁定標籤。
為RAM使用者添加自訂的MMS權限原則。具體操作,請參見管理RAM使用者的許可權。
步驟五:準備Quota資源
資料移轉作業的執行過程需消耗計算資源,因此需要為執行遷移作業的MaxCompute專案綁定Quota計算資源。
登入MaxCompute控制台,在左上方選擇地區。
在左側導覽列,選擇 。
在Quota管理頁面,單擊新购Quota。
在購買頁面,規格類型處選擇Data Transmission Service。
建議購買訂用帳戶計算資源,以降低遷移成本。
若已有可用的Data Transmission ServiceQuota資源,可忽略該步驟。
為執行遷移任務的MaxCompute專案設定Quota計算資源。
使用預設計算Quota:
專案會設定預設計算Quota ,即該專案發起的作業會使用預設的Quota資源計算,無需其他設定。建立專案時可以直接選擇關聯預設Quota
切換計算Quota:
在左側導覽列,選擇。
在项目管理頁面,單擊目標專案操作列的管理。
在项目配置頁面,選擇参数配置頁簽。
在基础属性地區,單擊编辑,按需修改相關配置。
在数据传输服务授权Quota下拉框選擇該專案使用的計算Quota,單擊提交。
新增資料來源時,將上一個步驟設定了Quota計算資源的專案配置為執行遷移任務的專案。
在左側導覽列,選擇。
在迁移服务頁面,單擊数据源頁簽。
在数据源頁簽,單擊新增数据源。
在MaxCompute執行遷移作業的專案下拉框選擇上一個步驟設定了Quota計算資源的專案配置為執行遷移任務的專案。