DataWorks の Data Integration 機能を使用すると、データの同期タスクを作成し、MaxCompute データをインポートおよびエクスポートできます。
前提条件
データをインポートまたはエクスポートする前に、事前準備が完了している必要があります。 詳細は、「Alibaba Cloud アカウントの準備」および「プロジェクトの購入と作成」をご参照ください。
MaxCompute データソースの追加
- プロジェクト管理者のみがデータソースを作成できます。 他のロールは、データソースの閲覧のみ可能です。
- 追加するデータソースが現行の MaxCompute プロジェクトの場合、この操作を省略してください。 MaxCompute プロジェクトを作成して Data Integration のデータソースとして表示すると、このプロジェクトはデフォルトで odps_first という名前の MaxCompute データソースとして追加されます。
手順
- DataWorks コンソールに管理者としてログインし、 [Project List] の該当するプロジェクトの操作列で、[Enter Workspace] をクリックします。
- 上部ナビゲーションウィンドウの [Data Integration] をクリックします。 左側のナビゲーションウィンドウで [Data Source] をクリックします。
- [New Source] をクリックし、[Large Data Storage] セクションで [MaxCompute (ODPS)] を選択します。
- データのダイアログボックスで、必要な設定を入力します。
パラメーター
- 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 とペアで使用します。
- (任意) 関連フィールドに必要な情報をすべて入力した後、接続をテストするには、[Test Connectivity] をクリックします。
- 接続テストが成功したら、[Save] をクリックします。
Data Integration を使用したデータのインポート
MaxCompute に MySQL データをインポートする例を紹介します。同期タスクは、Wizard モードまたは Script モードで設定できます。
- Wizard モードで同期タスクを作成します。
- ソースを選択します。
MySQL データソースとソーステーブル "mytest" を選択します。 デフォルトでは、データ表示領域は折り畳まれています。 [Next] をクリックします。
- ターゲットを選択します。
ターゲットは、作成済みの 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: 新しいデータをインポートする際、既存のデータはクリアされません。 インポート操作のたびに、新しいデータが追加されます。これは、「挿入」と同じです。
- フィールドをマッピングします。
フィールド間のマッピングを選択します。 フィールドのマッピング関係を設定します。 左側の Source Table Fields は、右側の Target Table Fields と 1 対 1 で対応しています。
- チャネルを制御します。
[Next] をクリックして、最大ジョブレートとダーティデータチェックルールを設定します。
パラメーター- Maximum job rate: データ同期ジョブで可能な最大レートを決定します。 ジョブの実際のレートは、ネットワーク環境、データベース構成、およびその他の要因によって異なる場合があります。
- Concurrent job count: 単一の同期ジョブの場合、同時ジョブ数* 個々のジョブ送信レート = ジョブ送信レートの合計になります。
Maximum job rate が指定されている場合の同時ジョブ数の選択方法- データソースがオンラインのビジネスデータベースの場合は、オンラインデータベースとの干渉を避けるために、同時ジョブ数に大きな値を設定しないことを推奨します。
- 高いデータ同期レートが必要な場合は、最も高いジョブレートと大きな同時ジョブ数を選択することを推奨します。
- プレビューをした後に保存します。
タスクの設定が正しいことを確認し、[Save] をクリックします。
同期タスクの実行
同期タスクを直接実行
システム変数パラメーターが同期タスクに設定されている場合、タスク操作中に変数パラメーター設定ウィンドウが表示されます。
タスクの保存後、[Run] をクリックすると、すぐにタスクが実行されます。[Submit] をクリックすると、同期タスクが DataWorks のスケジューリングシステムに送信されます。 スケジューリングシステムでは、設定属性に従って、タスクが翌日から自動的かつ定期的に実行されます。 スケジュール設定の詳細は、「スケジュール設定」をご参照ください。
Script モードで同期タスクを設定
{
"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"
}
}
}
}
参照情報
- Reader での各種データソースの設定については、「Reader プラグインの設定」をご参照ください。
- Writer での各種データソースの設定については、「Writer プラグインの設定」をご参照ください。