DataWorks の Data Integration 機能を使用すると、データの同期タスクを作成し、MaxCompute データをインポートおよびエクスポートできます。

前提条件

データをインポートまたはエクスポートする前に、事前準備が完了している必要があります。 詳細は、「Alibaba Cloud アカウントの準備」および「プロジェクトの購入と作成」をご参照ください。

MaxCompute データソースの追加

  • プロジェクト管理者のみがデータソースを作成できます。 他のロールは、データソースの閲覧のみ可能です。
  • 追加するデータソースが現行の MaxCompute プロジェクトの場合、この操作を省略してください。 MaxCompute プロジェクトを作成して Data Integration のデータソースとして表示すると、このプロジェクトはデフォルトで odps_first という名前の MaxCompute データソースとして追加されます。

手順

  1. DataWorks コンソールに管理者としてログインし、 [Project List] の該当するプロジェクトの操作列で、[Enter Workspace] をクリックします。
  2. 上部ナビゲーションウィンドウの [Data Integration] をクリックします。 左側のナビゲーションウィンドウで [Data Source] をクリックします。
  3. [New Source] をクリックし、[Large Data Storage] セクションで [MaxCompute (ODPS)] を選択します。
  4. データのダイアログボックスで、必要な設定を入力します。
    パラメーター
    • Name: 英数字とアンダースコア (_) を使用できます。 文字またはアンダースコアで始まる必要があり、60 文字を超えることはできません。
    • Data source description: データソースの簡単な説明を入力します。80 文字を超えることはできません。
    • Data source type: 現時点では、ODPS のみ選択可能です。
    • ODPS Endpoint: デフォルトでは読み取り専用です。 システム構成から自動的に設定値が読み込まれます。
    • ODPS Item name: 対応する MaxCompute プロジェクトを識別するためのプロジェクト名です。
    • Access ID: MaxCompute プロジェクトオーナーのアカウントに関連付けられた Access ID です。
    • AccessKey: MaxCompute プロジェクトオーナーのアカウントに関連付けられた AccessKey で、Access ID とペアで使用します。
  5. (任意) 関連フィールドに必要な情報をすべて入力した後、接続をテストするには、[Test Connectivity] をクリックします。
  6. 接続テストが成功したら、[Save] をクリックします。
その他のデータソースの設定については、「データソースの設定」をご参照ください。

Data Integration を使用したデータのインポート

MaxCompute に MySQL データをインポートする例を紹介します。同期タスクは、Wizard モードまたは Script モードで設定できます。

Wizard モードで同期タスクを設定
  1. Wizard モードで同期タスクを作成します。
  2. ソースを選択します。

    MySQL データソースとソーステーブル "mytest" を選択します。 デフォルトでは、データ表示領域は折り畳まれています。 [Next] をクリックします。

  3. ターゲットを選択します。

    ターゲットは、作成済みの MaxCompute テーブルにする必要があります。 [Quick Table Creation] をクリックして、新規テーブルを作成することもできます。

    パラメーター
    • Partition information: パーティションのレベルを指定します。 3 レベルのパーティションを持つテーブルにデータを書き込む場合は、最下位レベルのパーティションを指定する必要があります。たとえば、pt=20150101, type=1, biz=2 と指定します。 この項目は、非パーティションテーブルでは使用できません。
    • Data clearing rules:
      • Clear existing data before writing: データをテーブルまたはパーティションにインポートする前に、テーブルまたはパーティション内のすべてのデータがクリアされます。これは、「上書き挿入」と同じです。
      • Retain existing data before writing: 新しいデータをインポートする際、既存のデータはクリアされません。 インポート操作のたびに、新しいデータが追加されます。これは、「挿入」と同じです。
  4. フィールドをマッピングします。

    フィールド間のマッピングを選択します。 フィールドのマッピング関係を設定します。 左側の Source Table Fields は、右側の Target Table Fields と 1 対 1 で対応しています。

  5. チャネルを制御します。

    [Next] をクリックして、最大ジョブレートとダーティデータチェックルールを設定します。

    パラメーター
    • Maximum job rate: データ同期ジョブで可能な最大レートを決定します。 ジョブの実際のレートは、ネットワーク環境、データベース構成、およびその他の要因によって異なる場合があります。
    • Concurrent job count: 単一の同期ジョブの場合、同時ジョブ数* 個々のジョブ送信レート = ジョブ送信レートの合計になります。
    Maximum job rate が指定されている場合の同時ジョブ数の選択方法
    • データソースがオンラインのビジネスデータベースの場合は、オンラインデータベースとの干渉を避けるために、同時ジョブ数に大きな値を設定しないことを推奨します。
    • 高いデータ同期レートが必要な場合は、最も高いジョブレートと大きな同時ジョブ数を選択することを推奨します。
  6. プレビューをした後に保存します。

    タスクの設定が正しいことを確認し、[Save] をクリックします。

同期タスクの実行

同期タスクを直接実行

システム変数パラメーターが同期タスクに設定されている場合、タスク操作中に変数パラメーター設定ウィンドウが表示されます。

タスクの保存後、[Run] をクリックすると、すぐにタスクが実行されます。[Submit] をクリックすると、同期タスクが DataWorks のスケジューリングシステムに送信されます。 スケジューリングシステムでは、設定属性に従って、タスクが翌日から自動的かつ定期的に実行されます。 スケジュール設定の詳細は、「スケジュール設定」をご参照ください。

Script モードで同期タスクを設定

次のスクリプトを使用して、同期タスクを設定できます。 その他の設定とジョブの操作は Wizard モードと同じです。
{
  "type": "job",
  "version": "1.0",
  "configuration": {
    "reader": {
      "plugin": "mysql",
      "parameter": {
        "datasource": "mysql",
        "where": "",
        "splitPk": "id",
        "connection": [
          {
            "table": [
              "person"
            ],
            "datasource": "mysql"
          }
        ],
        "connectionTable": "person",
        "Column ":[
          "id",
          "name"
        ]
      }
    },
    "writer": {
      "plugin": "odps",
      "parameter": {
        "datasource": "odps_first",
        "table": "a1",
        "truncate": true,
        "partition": "pt=${bdp.system.bizdate}",
        "Column ":[
          "id",
          "col1"
        ]
      }
    },
    "Setting ":{
      "speed": {
        "mbps": "1",
        "concurrent": "1"
      }
    }
  }
}

参照情報