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

DataWorks:ECSインスタンス上の自己管理型MySQLデータベースからMaxComputeへのデータ移行

最終更新日:Nov 10, 2025

このトピックでは、Data Integrationの排他的リソースグループを使用して、Elastic Compute Service (ECS) インスタンスでホストされている自己管理型MySQLデータベースからMaxComputeにデータを移行する方法について説明します。

前提条件

  • 少なくとも1つのECSインスタンスが購入され、仮想プライベートクラウド (VPC) に関連付けられています。 ECSインスタンスのネットワークタイプがクラシックネットワークでないことを確認する必要があります。 テストデータを保存するMySQLデータベースがECSインスタンスにデプロイされます。 データベースへの接続に使用されるアカウントが作成されます。 この例では、次のステートメントを使用して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','lilei',3,500.6,7),
    ('2018-08-22','food','brandB','lilei',1,303,8),
    ('2018-08-22','coat','brandC','hanmeimei',2,510,2),
    ('2018-08-22','bath','brandA','hanmeimei',1,442.5,1),
    ('2018-08-22','food','brandD','hanmeimei',2,234,3),
    ('2018-08-23','coat','brandB','jimmy',9,2000,7),
    ('2018-08-23','food','brandA','jimmy',5,45.1,5),
    ('2018-08-23','coat','brandE','jimmy',5,100.2,4),
    ('2018-08-24','food','brandG','peiqi',10,5560,7),
    ('2018-08-24','bath','brandF','peiqi',1,445.6,2),
    ('2018-08-24','coat','brandA','ray',3,777,3),
    ('2018-08-24','bath','brandG','ray',3,122,3),
    ('2018-08-24','coat','brandC','ray',1,62,7) ;
  • ECSインスタンスのプライベートIPアドレスVPC、およびvSwitchが記録されます。ECS

  • ECS インスタンスにセキュリティグループルールが追加され、MySQL データベースが使用するポートでのアクセスリクエストが許可されていること。 デフォルトでは、MySQLデータベースはポート3306を使用します。 詳細については、「セキュリティグループルールの追加」をご参照ください。 セキュリティグループの名前が記録されます。

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

  • Data Integration用の排他的リソースグループが購入され、ECSインスタンスが存在するVPCに関連付けられます。 排他的リソースグループと ECS インスタンスは同じゾーンにあります。 詳細については、「Data Integrationの排他的リソースグループの作成と使用」をご参照ください。 排他的リソースグループがVPCに関連付けられた後、リソースグループ ページで排他的リソースグループに関する情報を表示できます。

  • 排他的リソースグループの [VPCバインディング] タブで、排他的リソースグループの [VPC][vSwitch] 、および [セキュリティグループ] に関する情報がECSインスタンスの情報と同じかどうかがチェックされます。网络绑定

  • MaxComputeデータソースが追加されました。 詳細については、「MaxComputeデータソースの追加」をご参照ください。

背景情報

排他的なリソースは、高速かつ安定した方法でデータを送信できます。 Data Integrationの排他的リソースグループが、アクセスするデータソースと同じリージョンの同じゾーンにあることを確認する必要があります。 また、Data Integrationの排他的リソースグループがDataWorksワークスペースと同じリージョンに属していることを確認する必要があります。 この例では、ECSインスタンスにデプロイされた自己管理型MySQLデータベースがデータソースとして使用されます。

手順

  1. DataWorksにMySQLデータソースを追加します。

    1. [データソース] ページに移動します。

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

      2. [SettingCenter] ページの左側のナビゲーションウィンドウで、[Data Sources] > [Data Sources を選択します。

    2. [データソース] ページで、データソースの追加. をクリックします。

    3. では、データソースの追加ダイアログボックスで、MySQL. を選択します。

    4. [MySQLデータソースの追加] ページで、パラメーターを設定します。 詳細については、「MySQL データソース」をご参照ください。

      この例では、Configuration ModeパラメーターをConnection String Modeに設定します。 [接続アドレス] フィールドに、ECSインスタンスのプライベートIPアドレスとMySQLデータベースのデフォルトのポート番号3306を入力します。连接串模式

      説明

      DataWorksは、VPC内の自己管理型MySQLデータベースの接続性をテストすることはできません。 したがって、接続性テストが失敗するのは正常です。

    5. 目的のリソースグループを見つけて、ネットワーク接続のテスト. をクリックします。

      Data Integrationの排他的リソースグループを使用して、データ同期タスクを実行できます。 データ同期タスクは、各実行中に1つのリソースグループでのみ実行できます。 データ同期タスクで複数のリソースグループを使用でき、すべてのリソースグループでデータ同期タスクを期待どおりに実行する場合は、選択した各リソースグループとデータソース間のネットワーク接続をテストする必要があります。 詳細については、「ネットワーク接続ソリューション」をご参照ください。

    6. 接続テストが成功した場合は、完全な作成. をクリックします。

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

    MySQLデータベースからテストデータを受信するには、DataWorksでテーブルを作成する必要があります。

    1. 图标左上隅のアイコンをクリックしとすべての制品 > データ开発とタスク操作 > DataStudio. を選択します。

    2. ワークフローを作成します。 詳細については、「自動トリガーワークフローの作成」をご参照ください。

    3. 作成したワークフローを右クリックし、テーブルの作成 > MaxCompute > テーブル. を選択します。

    4. MaxComputeテーブルの名前を入力します。 この例では、Nameパラメーターをgood_saleに設定します。これは、MySQLデータベースのテーブルの名前と同じです。 [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. [表示名] パラメーターを設定し、[本番環境にコミット] をクリックします。 good_saleという名前のMaxComputeテーブルが作成されます。

  3. データ同期タスクを作成および設定します。

    1. 作成したワークフローを右クリックし、ノードの作成 > データ統合 > オフライン同期データ同期タスクを作成します。

    2. 作成したMySQLデータソースをソースとして選択し、追加したMaxComputeデータソースを宛先として選択します。 [コードエディターに切り替え] アイコンをクリックして、コードエディターに切り替えます。

      目的のソーステーブルを選択できない場合、またはコードエディターに切り替えるときにエラーが返された場合は、問題を無視してください。

    3. をクリックし、リソースグループの設定右側のナビゲーションウィンドウのタブをクリックし、購入した排他的なリソースグループを選択します。

      タスクの実行に使用するData Integrationの排他的リソースグループを選択しないと、タスクの実行に失敗する可能性があります。

    4. データ同期タスクに次のコードを入力します。

      {
          "type": "job",
          "steps": [
              {
                  "stepType": "mysql",
                  "parameter": {
                      "column": [// The names of the columns.
                          "create_time",
                          "category",
                          "brand",
                          "buyer_id",
                          "trans_num",
                          "trans_amount",
                          "click_cnt"
                      ],
                      "connection": [
                          {
                              "datasource": "shuai",// The source.
                              "table": [
                                  "good_sale"// The name of the table in the source database. The name must be enclosed in brackets []. 
                              ]
                          }
                      ],
                      "where": "",
                      "splitPk": "",
                      "encoding": "UTF-8"
                  },
                  "name": "Reader",
                  "category": "reader"
              },
              {
                  "stepType": "odps",
                  "parameter": {
                      "partition": "",
                      "truncate": true,
                      "datasource": "odps_source",// The name of the MaxCompute data source.
                      "column": [// The columns in the destination table.
                          "create_time",
                          "category",
                          "brand",
                          "buyer_id",
                          "trans_num",
                          "trans_amount",
                          "click_cnt"
                      ],
                      "emptyAsNull": false,
                      "table": "good_sale"// The name of the destination table.
                  },
                  "name": "Writer",
                  "category": "writer"
              }
          ],
          "version": "2.0",
          "order": {
              "hops": [
                  {
                      "from": "Reader",
                      "to": "Writer"
                  }
              ]
          },
          "setting": {
              "errorLimit": {
                  "record": "0"
              },
              "speed": {
                  "throttle": false,
                  "concurrent": 2
              }
          }
      }
    5. 実行アイコンをクリックします。 ページ下部の [ランタイムログ] タブをクリックして、テストデータがMaxComputeに同期されているかどうかを確認できます。

結果

MaxComputeテーブルのデータをクエリするには、ODPS SQLノードを作成します。

ステートメントselect * from good_sale ; を入力し、[実行] アイコンをクリックします。 テストデータが表示された場合、テストデータはMaxComputeテーブルに同期されます。