このトピックでは、MaxCompute Migration Service (MMS) を利用する前に実施する必要がある準備作業について説明します。
サポート対象リージョン
MMS サービスは、中国 (杭州)、中国 (上海)、中国 (北京)、中国 (張家口)、中国 (ウランチャブ)、中国 (深セン)、中国 (成都)、中国 (香港)、インドネシア (ジャカルタ)、シンガポール、日本 (東京)、米国 (バージニア)、ドイツ (フランクフルト) の各リージョンでご利用いただけます。
データ移行を開始する前に、ソーステーブルおよびパーティションに対する書き込み操作を停止してください。これにより、移行後のデータ検証が失敗するリスクを回避できます。
操作手順
ステップ 1:送信先 MaxCompute プロジェクトの作成
プロジェクトは、MaxCompute 内における基本的な組織単位です。
データ移行の前に、データソースをマッピングする送信先 MaxCompute プロジェクトを選択します。
移行中には、MaxCompute プロジェクトが各種移行ジョブを実行します。
したがって、データ移行を実行する前に、必ず MaxCompute プロジェクトを作成する必要があります。すでに利用可能なプロジェクトをお持ちの場合は、このステップをスキップできます。MaxCompute コンソールでプロジェクトを作成する手順は以下のとおりです:
MaxCompute コンソール にログインし、左上隅からリージョンを選択します。
左側のナビゲーションウィンドウで、 を選択します。
Internal Project タブで、新しいプロジェクト をクリックします。
新しいアイテム ダイアログボックスで、プロンプトに従ってパラメーターを設定し、OK をクリックします。
設定パラメーターの詳細については、「MaxCompute プロジェクトの作成」をご参照ください。
ステップ 2:VPC ネットワーク接続の有効化
現在のリージョンで既に VPC ネットワーク接続が利用可能である場合、このステップはスキップできます。
MaxCompute コンソール にログインし、左上隅からリージョンを選択します。
左側のナビゲーションウィンドウで、 を選択します。
ネットワーク接続 ページで、新しいネットワーク接続 をクリックします。
新しいネットワーク接続 ダイアログボックスで、プロンプトに従ってパラメーターを設定し、OK をクリックします。初めてネットワーク接続を追加する際には、まず 権限付与 を実行して、MaxCompute プラットフォームのプロキシがネットワークインターフェースカード(NIC)を要求できるようにする必要があります。これを実行しないと、接続を作成できません。
以下の表に、各パラメーターの説明を示します。
パラメーター
必須
説明
接続名:
必須
接続のカスタム名です。以下の要件を満たす必要があります:
英字で始まる必要があります。
英字、アンダースコア (_)、数字のみを使用できます。
長さは 1~63 文字です。
タイプ:
必須
デフォルト値は パススルー接続 (パススルー) です。
パススルー接続 (パススルー) 接続は VPC 接続です。
エリア:
必須
システムが、左上隅で選択したリージョンに基づいて自動的にこのパラメーターを入力します。詳細については、「サポート対象リージョン」をご参照ください。
選択されたVPC:
必須
仮想プライベートクラウド(VPC)は、分離された仮想ネットワークです。伝統的なデータセンターと同様に、安全かつ柔軟に設定可能なプライベートネットワーク空間を提供します。
VPC の ID です。新しい VPC を作成する場合は、「VPC の作成または削除」をご参照ください。
ID を取得するには、以下の手順を実行します:
Virtual Private Cloud (VPC) コンソール にログインします。
左側のナビゲーションウィンドウで、VPC を選択します。左上隅からリージョンを選択します。
VPC ページで、VPC の ID/名前 を確認します。
HBase クラスターまたは Hadoop クラスターに接続する場合は、対応するコンソールのネットワーク接続の詳細情報からこの情報を取得できます。
スイッチ:
必須
vSwitch はサブネットを作成するために使用されます。同一 VPC 内の異なる vSwitch 間では、内部ネットワーク経由で相互に通信できます。アプリケーションの可用性を高めるため、複数のゾーンにまたがる vSwitch 上にクラウドリソースを展開できます。
VPC にアタッチされている vSwitch の ID です。利用可能な vSwitch がない場合は、「vSwitch の作成または削除」をご参照ください。
ID を取得するには、以下の手順を実行します:
Virtual Private Cloud (VPC) コンソール にログインします。
左側のナビゲーションウィンドウで、vSwitch を選択します。左上隅からリージョンを選択します。
vSwitch ページで、vSwitch の ID/名前 を確認します。
HBase クラスターまたは Hadoop クラスターに接続する場合は、対応するコンソールのネットワーク接続の詳細情報からこの情報を取得できます。
セキュリティグループ:
必須
セキュリティグループは、クラウドリソースの仮想ファイアウォールとして機能します。セキュリティグループとそのルールを管理することで、詳細なレベルでのネットワーク分離およびアクセスの制御を実現できます。
セキュリティグループの ID です。セキュリティグループを作成する場合は、「セキュリティグループの作成」をご参照ください。
今後のデータ移行ジョブは、データソースにアクセスする必要があります。そのため、VPC がインターネットまたはソースデータに接続された専用回線にアクセスできることを確認してください。
データソースがインターネット上にある場合は、NAT Gateway を使用してパブリックネットワークへのアクセスを有効化します。詳細については、「NAT ゲートウェイを使用したアウトバウンドトラフィックの管理」をご参照ください。
データソースがオンプレミスのデータセンターに格納されている場合は、専用回線経由で Alibaba Cloud に接続します。詳細については、「専用回線接続の使用」をご参照ください。
ステップ 3:サービスリンクロールの作成
Migration Service (MMS) を初めて使用する前に、サービスリンクロール <a href="https://ram.console.alibabacloud.com/policies/AliyunServiceRolePolicyForMaxComputeMMS/System/content" id="50553e362a7fv" target="_blank">AliyunServiceRolePolicyForMaxComputeMMS</a> を作成する必要があります。MMS はこのロールを使用して、MaxCompute およびその他の Alibaba Cloud サービスのリソースにアクセスします。
Alibaba Cloud アカウント を使用している場合は、直接サービスリンクロールを作成できます。
RAM ユーザーの場合は、あらかじめ
<a href="https://ram.console.alibabacloud.com/policies/detail?policyType=System&policyName=AliyunRAMFullAccess" id="72a764ec52c0q" target="_blank">AliyunRAMFullAccess</a>権限を付与される必要があります。詳細については、「RAM ロールの権限管理」をご参照ください。サービスリンクロールは、MaxCompute コンソールまたは RAM コンソールで、2通りの方法で作成できます。手順は以下のとおりです。
MaxCompute コンソール内
MaxCompute コンソール にログインし、左上隅からリージョンを選択します。
左側のナビゲーションウィンドウで、を選択します。
データソース タブで、データソースの追加 をクリックします。
MaxComputeサービスの関連付けの役割 ダイアログボックスで、確認 をクリックしてロールを作成します。このダイアログボックスが表示されない場合は、既にロールが作成済みであることを意味します。
RAM コンソールで
Resource Access Management (RAM) コンソール にログインします。
左側のナビゲーションウィンドウで、 を選択します。
ロール ページで、ロールの作成 をクリックします。
ロールの作成 ページの右上隅で、サービスリンクロールの作成 をクリックします。
サービスリンクロールの作成 ページで、サービスの選択 を
AliyunServiceRoleForMaxComputeMMSに設定し、サービスリンクロールの作成 をクリックします。
ステップ 4:権限の設定
ユーザー向けの MaxCompute データ操作権限の設定
SQL を使用した設定
ローカルクライアント(odpscmd)を使用した MaxCompute への接続 を実行し、作成済みのサービスリンクロールを追加します。
USE <target_projectname>; -- ユーザー向けにサービスリンクロールを追加します。 Add USER `RAM$<account_id>:role/AliyunServiceRoleForMaxComputeMMS`;ユーザーへの権限付与
MaxCompute では、粒度の異なるアクセス制御がサポートされています。プロジェクト操作中に、ユーザーの操作範囲に応じて権限を付与できます。
粗粒度の権限付与:ユーザーに admin ロールを直接付与します。これにより、同じユーザーに対してテーブルごとに権限を繰り返し付与する必要がなくなります。
GRANT admin TO USER `RAM$<account_id>:role/AliyunServiceRoleForMaxComputeMMS`;細粒度の権限付与:プロジェクト、テーブル、またはインスタンスレベルで権限を付与します。
プロジェクトレベルのデータ操作権限の付与
-- プロジェクトレベルのデータ操作権限を付与します。 GRANT <actions> ON project <project_name> TO USER `RAM$<account_id>:role/AliyunServiceRoleForMaxComputeMMS`; -- サポートされるアクション 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`; -- サポートされるアクション 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`; -- サポートされるアクション 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:必須。付与する権限の名称です。1 つの GRANT 文で複数のアクションを指定できます。アクション名はカンマ (,) で区切ります。
MaxCompute コンソールの使用
MaxCompute コンソール にログインし、左上隅からリージョンを選択します。
左側のナビゲーションウィンドウで、 を選択します。
プロジェクト管理 ページで、対象のプロジェクトを検索し、管理 をクリックします(操作 列内)。
プロジェクト設定 ページで、ロール権限 タブを選択します。
新しいロール ダイアログボックスで、プロンプトに従ってロール情報を設定し、OK をクリックします。
このステップの目的は、MaxCompute 内に MMS 専用のプロジェクトロールを作成し、それにデータ操作権限を付与することです。
あるいは、プロジェクトに組み込まれている admin ロールを使用することもできます。この場合、新規ロールの作成は不要であり、次のステップに進むことができます。
以下の表に、各パラメーターの説明を示します。
パラメーター
必須
説明
ロール名
必須
文字の先頭には文字と数字を含めることができ、長さは64文字以下です。
ロールタイプ
必須
Admin:管理ロールです。
ポリシー を使用して、このタイプのロールに管理権限を付与できますが、リソース権限は付与できません。
ACL メソッド を使用して管理権限を付与することはできません。
Resource:リソースロールです。
ポリシーまたは ACL メソッドを使用して、このタイプのロールにリソース権限を付与できますが、管理権限は付与できません。
権限付与方法
必須
ユーザーに対して、プロジェクト、テーブル、モデル、リソース、関数、またはインスタンスに対する操作権限を付与できます。以下の表に、利用可能な権限を示します。
オブジェクト
権限
テーブル
Describe、Select、Update、Alter、Drop、ShowHistory、Download
リソース
Read、Write、Download、Delete
関数
Read、Write、Download、Execute、Delete
パッケージ
Read
プロジェクト
Read、Write、List、CreateTable、CreateInstance
プロジェクトレベルのロールを選択し、メンバー管理 をクリックします(操作 列内)。ロールに追加する Alibaba Cloud アカウントまたは RAM ユーザーを選択し、OK をクリックして権限付与を完了します。検索してもアカウントが見つからない場合は、アカウントを手動で追加 セクションから追加できます。
RAM 権限の設定
このステップでは、データ移行を実行する RAM ユーザー向けにMMS 操作権限を設定します。これらの権限には、MMS のデータ、メタデータ、および移行ジョブの管理が含まれます。データ移行をAlibaba Cloud アカウントで実行する場合は、このステップをスキップできます。
現在の RAM ユーザーが MaxCompute の管理権限(具体的には
<a href="https://ram.console.alibabacloud.com/policies/detail?policyType=System&policyName=AliyunMaxComputeFullAccess" id="58faac6875ati" target="_blank">AliyunMaxComputeFullAccess</a>ポリシー)を持っている場合は、このステップをスキップできます。現在の RAM ユーザーにMMS 操作権限のみを限定的に付与したい場合は、以下の手順を実行します:
Resource Access Management (RAM) コンソール にログインします。
左側のナビゲーションウィンドウで、 を選択します。
ポリシー ページで、ポリシーの作成 をクリックします。
ポリシーの作成 ページで、JSON を選択します。以下のアクセスポリシーを入力します:
すべての 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": "*" } ] }OK をクリックします。ポリシーの作成ダイアログボックスで、ポリシー名 を入力します。必要に応じて説明文やタグを追加できます。
カスタム MMS アクセスポリシーを RAM ユーザーにアタッチします。詳細については、「RAM ユーザーの権限管理」をご参照ください。
ステップ 5:クォータリソースの準備
データ移行ジョブは実行時に計算リソースを消費します。したがって、移行ジョブを実行する MaxCompute プロジェクトにクォータ計算リソースをアタッチする必要があります。
MaxCompute コンソール にログインし、左上隅からリージョンを選択します。
左側のナビゲーションウィンドウで、 を選択します。
クォータ管理 ページで、新しいクォータ をクリックします。
購入ページで、[仕様タイプ] から Data Transmission Service を選択します。
移行コストを削減するため、サブスクリプション形式の計算リソースを購入します。
Data Transmission Service のクォータリソースがすでに利用可能な場合は、このステップをスキップできます。
移行タスクを実行する MaxCompute プロジェクトにクォータ計算リソースを設定します。
デフォルトの計算クォータを使用する:
プロジェクトにはデフォルトの計算クォータが割り当てられています。このプロジェクトで開始されたジョブは、デフォルトのクォータリソースを使用して計算を実行し、追加の設定は必要ありません。新しいプロジェクトを作成する際に、デフォルトのクォータと直接関連付けることができます。
計算クォータを切り替える:
左側のナビゲーションウィンドウで、 を選択します。
プロジェクト管理 ページで、対象のプロジェクトを検索し、管理 をクリックします(操作 列内)。
プロジェクト設定 ページで、パラメーター設定 タブを選択できます。
基本属性 セクションで、編集 をクリックして設定を変更します。
データ転送サービス権限付与クォータ ドロップダウンリストから、プロジェクト用の計算クォータを選択し、提出 をクリックします。
データソースを追加する際に、前のステップでクォータ計算リソースを設定したプロジェクトを、移行タスクを実行するプロジェクト として設定します。
左側のナビゲーションウィンドウで、 を選択します。
移行サービス ページで、データソース タブをクリックします。
データソース タブで、データソースの追加 をクリックします。
MaxCompute で移行ジョブを実行するプロジェクト ドロップダウンリストから、前のステップでクォータ計算リソースを設定したプロジェクトを選択します。