すべてのプロダクト
Search
ドキュメントセンター

MaxCompute:ECS 上の自己管理 MySQL から MaxCompute への移行

最終更新日:Jun 22, 2026

本記事では、Data Integration のデータ統合専用リソースグループを使用して、Elastic Compute Service (ECS) インスタンス上の自己管理 MySQL データベースから MaxCompute にデータを移行する方法について説明します。

前提条件

  • VPC にバインドされた ECS インスタンスが少なくとも 1 つ必要です。 クラシックネットワークは使用しないでください。 また、インスタンスには MySQL データベースがインストールされており、ユーザーとテストデータが準備されている必要があります。 この例では、次の文を使用して自己管理 MySQL データベースのテストデータを作成します。

    CREATE TABLE IF NOT EXISTS good_sale(
       create_time timestamp,
       category varchar(20),
       brand varchar(20),
       buyer_id varchar(20),
       trans_num varchar(20),
       trans_amount DOUBLE,
       click_cnt varchar(20)
       );
    insert into good_sale values('2018-08-21','coat','brandA','tanaka',3,500.6,7),
    ('2018-08-22','food','brandB','tanaka',1,303,8),
    ('2018-08-22','coat','brandC','suzuki',2,510,2),
    ('2018-08-22','bath','brandA','suzuki',1,442.5,1),
    ('2018-08-22','food','brandD','suzuki',2,234,3),
    ('2018-08-23','coat','brandB','sato',9,2000,7),
    ('2018-08-23','food','brandA','sato',5,45.1,5),
    ('2018-08-23','coat','brandE','sato',5,100.2,4),
    ('2018-08-24','food','brandG','ito',10,5560,7),
    ('2018-08-24','bath','brandF','ito',1,445.6,2),
    ('2018-08-24','coat','brandA','watanabe',3,777,3),
    ('2018-08-24','bath','brandG','watanabe',3,122,3),
    ('2018-08-24','coat','brandC','watanabe',1,62,7) ;
  • ご利用の ECS インスタンスの プライベート IP アドレスVPC、および vSwitch をメモしておきます。

  • ECS インスタンスのセキュリティグループを設定し、デフォルトの MySQL ポート 3306 でのインバウンドトラフィックを許可します。 詳細については、「セキュリティグループルールの追加」をご参照ください。 ご利用のセキュリティグループ名をメモしておきます。

  • DataWorks ワークスペースを作成します。 この例では、MaxCompute をコンピュートエンジンとして使用する基本モードの DataWorks ワークスペースを使用します。 ECS インスタンスと DataWorks ワークスペースが同じリージョンにあることを確認してください。 ワークスペースの作成方法については、「ワークスペースの作成」をご参照ください。

  • Data Integration のデータ統合専用リソースグループを購入し、ECS インスタンスが存在する VPC にバインドします。 データ統合専用リソースグループは、ECS インスタンスと同じゾーンにある必要があります。 詳細については、「Data Integration のデータ統合専用リソースグループの使用」をご参照ください。 バインドが完了すると、リソースグループ でデータ統合専用リソースグループを確認できます。

  • ネットワーク設定 > Vpcバインディング セクションで、VPCスイッチ、および セキュリティグループ の情報が ECS の情報と一致しているか確認します。

  • MaxCompute データソースを追加します。 詳細については、「MaxCompute 計算リソースの関連付け」をご参照ください。

背景情報

Data Integration のデータ統合専用リソースグループは、高速で安定したデータ転送を保証します。 ご購入いただくデータ統合専用リソースグループ、アクセス対象のデータソース (本記事では ECS インスタンス上の自己管理 MySQL データベース)、および DataWorks ワークスペースは、同じリージョンにある必要があります。 さらに、リソースグループと ECS インスタンスは同じゾーンにある必要があります。

操作手順

  1. DataWorks で MySQL データソースを作成します。

      1. DataWorks コンソールにログインします。 対象リージョンで、左側のナビゲーションウィンドウの さらに表示 > 管理センター をクリックします。 ドロップダウンリストからワークスペースを選択し、入力 管理センター をクリックします。

      2. ワークスペース管理ページで、左側のナビゲーションウィンドウにある [データソース] をクリックして、データソースページを開きます。

    1. Add Data Source をクリックします。

    2. Add Data Source ダイアログボックスで、[MySQL] をクリックします。

    3. [MySQL データソースの作成] ダイアログボックスで、パラメーターを設定します。 詳細については、「MySQL データソースの設定」をご参照ください。

      この例では、User-created Data Store with Public IP Addresses を使用します。 Connection Address には、ECS インスタンスのプライベート IP アドレスとデフォルトの MySQL ポート番号 3306 を入力します。

      説明

      VPC 内の自己管理 MySQL データソースでは、Test Connectivity 機能はサポートされていません。 この段階で接続テストが失敗するのは想定内の動作です。

    4. 必要なリソースグループの Test Connectivity をクリックします。

      Data Integration のデータ統合専用リソースグループを使用してデータを同期できます。 各タスクでは 1 つのリソースグループしか使用できません。 複数のリソースグループが利用可能な場合は、使用したい各リソースグループの接続性をテストする必要があります。 これにより、同期タスクに使用されるリソースグループがデータソースに接続できることが保証されます。 そうしないと、データ同期タスクは失敗します。 詳細については、「ネットワーク接続ソリューション」をご参照ください。

    5. 接続テストに成功したら、Finish をクリックします。

  2. MaxCompute テーブルを作成します。

    MySQL からのテストデータを受け取るために、DataWorks にテーブルを作成する必要があります。

    1. 左上隅の 图标 アイコンをクリックし、[すべての製品] > データ開発と О&М > DataStudio (データ開発) を選択します。

    2. Workflow を作成します。 詳細については、「スケジュールされたワークフローの作成」をご参照ください。

    3. 新しいワークフローを右クリックし、Create Table > Table を選択します。

    4. MaxCompute テーブルの名前を入力します。 この例では、MySQL ソーステーブルと同じ名前の good_sale を使用します。 [DDL] をクリックし、DDL 文を入力してから、Generate Table Schema をクリックします。

      この例では、次の DDL 文を使用します。 データの型の変換にご注意ください。

      CREATE TABLE IF NOT EXISTS good_sale(
         create_time string,
         category STRING,
         brand STRING,
         buyer_id STRING,
         trans_num BIGINT,
         trans_amount DOUBLE,
         click_cnt BIGINT
         );
    5. テーブルの Display Name を入力し、Commit to Production Environment をクリックして、MaxCompute に good_sale テーブルを作成します。

  3. Data Integration タスクを設定します。

    1. ワークフローを右クリックし、Create Node > Data Integration > Batch Synchronization を選択して、Data Integration タスクを作成します。

    2. 追加した MySQL データソースをソースとして選択し、MaxCompute データソースを送信先として選択します。 Conversion script をクリックして、Data Integration タスクをスクリプトモードに切り替えます。

      この時点でエラーが発生したり、データソースから Table を選択できなかったりすることがありますが、これは正常な動作です。 ツールバーの image スクリプト変換をクリックして、スクリプトモードに切り替えます。

    3. 右側のペインで Resource Group configuration をクリックし、購入したデータ統合専用リソースグループを選択します。

      タスクを Data Integration のデータ統合専用リソースグループに切り替えないと、タスクは失敗します。

    4. Data Integration タスクに次のスクリプトを入力します。

      {
          "type": "job",
          "steps": [
              {
                  "stepType": "mysql",
                  "parameter": {
                      "column": [// ソース列名
                          "create_time",
                          "category",
                          "brand",
                          "buyer_id",
                          "trans_num",
                          "trans_amount",
                          "click_cnt"
                      ],
                      "connection": [
                          {
                              "datasource": "shuai",// ソースデータソース
                              "table": [
                                  "good_sale"// ソースデータベースのテーブル名。角括弧で囲んだ配列にする必要があります。
                              ]
                          }
                      ],
                      "where": "",
                      "splitPk": "",
                      "encoding": "UTF-8"
                  },
                  "name": "Reader",
                  "category": "reader"
              },
              {
                  "stepType": "odps",
                  "parameter": {
                      "partition": "",
                      "truncate": true,
                      "datasource": "odps_source",// 送信先 MaxCompute データソース名
                      "column": [// 送信先列名
                          "create_time",
                          "category",
                          "brand",
                          "buyer_id",
                          "trans_num",
                          "trans_amount",
                          "click_cnt"
                      ],
                      "emptyAsNull": false,
                      "table": "good_sale"// 送信先テーブル名
                  },
                  "name": "Writer",
                  "category": "writer"
              }
          ],
          "version": "2.0",
          "order": {
              "hops": [
                  {
                      "from": "Reader",
                      "to": "Writer"
                  }
              ]
          },
          "setting": {
              "errorLimit": {
                  "record": "0"
              },
              "speed": {
                  "throttle": false,
                  "concurrent": 2
              }
          }
      }
    5. [実行] をクリックします。 ページ下部の Operational Logs を確認して、データが MaxCompute に転送されたことを確認できます。

結果

ODPS SQL ノードを作成して、MaxCompute テーブル内のデータをクエリできます。

クエリ文 select * from good_sale; を入力し、Running をクリックします。 クエリが完了すると、結果に MaxCompute テーブルに転送されたデータが表示されます。