AnalyticDB for MySQL 2.0 データソースは、AnalyticDB for MySQL 2.0 のデータを読み書きするための双方向チャンネルを提供します。このトピックでは、DataWorks が AnalyticDB for MySQL 2.0 に対して提供するデータ同期機能について説明します。
制限事項
オフライン同期を使用してビューからデータを読み取ることができます。
AnalyticDB for MySQL 2.0 Reader は複数値型をサポートしていません。複数値型を使用すると、同期タスクは失敗します。
サポートされるフィールドタイプ
オフライン読み取り
次の表に、AnalyticDB for MySQL 2.0 Reader のデータ型のマッピングを示します。
AnalyticDB for MySQL 2.0 の型 | DataX の型 | MaxCompute の型 |
BIGINT | LONG | BIGINT |
TINYINT | LONG | INT |
TIMESTAMP | DATE | DATETIME |
VARCHAR | STRING | STRING |
SMALLINT | LONG | INT |
INT | LONG | INT |
FLOAT | STRING | DOUBLE |
DOUBLE | STRING | DOUBLE |
DATE | DATE | DATETIME |
TIME | DATE | DATETIME |
オフライン書き込み
次の表に、AnalyticDB for MySQL 2.0 Writer のデータ型のマッピングを示します。
型 | AnalyticDB for MySQL 2.0 のデータ型 |
整数 | INT、TINYINT、SMALLINT、BIGINT |
浮動小数点 | FLOAT および DOUBLE |
文字列 | VARCHAR |
日付と時刻 | DATE および TIMESTAMP |
ブール値 | BOOLEAN |
データソースの追加
DataWorks で同期タスクを開発する前に、「データソース管理」の指示に従って、必要なデータソースを DataWorks に追加する必要があります。データソースを追加する際に、DataWorks コンソールでパラメーターの説明を表示して、各パラメーターの意味を理解することができます。
データ同期タスクの開発
同期タスクの設定のエントリポイントと手順については、以下の設定ガイドをご参照ください。
単一テーブルのオフライン同期タスクの設定
詳細については、「コードレス UI でのタスク設定」および「コードエディタでのタスク設定」をご参照ください。
コードエディタ用のパラメーターの完全なリストとスクリプトデモについては、「付録:スクリプトデモとパラメーターの説明」をご参照ください。
データベース全体のオフライン読み取り同期タスクの設定
詳細については、「データベース全体のリアルタイム同期タスクの設定」をご参照ください。
付録:スクリプトデモとパラメーターの説明
コードエディタを使用したバッチ同期タスクの設定
コードエディタを使用してバッチ同期タスクを設定する場合、統一されたスクリプトフォーマットの要件に基づいて、スクリプト内の関連パラメーターを設定する必要があります。詳細については、「コードエディタでのタスク設定」をご参照ください。以下では、コードエディタを使用してバッチ同期タスクを設定する際に、データソースに対して設定する必要があるパラメーターについて説明します。
Reader スクリプトデモ
{
"type": "job",
"steps": [
{
"stepType": "ads",
"parameter": {
"datasource": "ads_demo",
"table": "th_test",
"column": [
"id",
"testtinyint",
"testbigint",
"testdate",
"testtime",
"testtimestamp",
"testvarchar",
"testdouble",
"testfloat"
],
"odps": {
"accessId": "<yourAccessKeyId>",
"accessKey": "<yourAccessKeySecret>",
"account": "*********@aliyun.com",
"odpsServer": " http://service.cn-shanghai-vpc.maxcompute.aliyun-inc.com/api",
"tunnelServer": "http://dt.cn-shanghai-vpc.maxcompute.aliyun-inc.com",
"accountType": "aliyun",
"project": "odps_test"
},
"mode": "ODPS"
},
"name": "Reader",
"category": "reader"
},
{
"stepType": "stream",
"parameter": {},
"name": "Writer",
"category": "writer"
}
],
"version": "2.0",
"order": {
"hops": [
{
"from": "Reader",
"to": "Writer"
}
]
},
"setting": {
"errorLimit": {
"record": ""
},
"speed": {
"concurrent": 2,
"throttle": true,// throttle が false の場合、mbps パラメーターは有効にならず、トラフィックはスロットリングされません。throttle が true の場合、トラフィックはスロットリングされます。
"mbps":"12"// スロットリング。1 mbps は 1 MB/s に相当します。
}
}
}Reader スクリプトのパラメーター
パラメーター | 説明 | 必須 | デフォルト値 |
table | データのエクスポート元テーブルの名前。 | はい | なし |
column | 列名。このパラメーターを指定しない場合、すべての列が選択されます。 | いいえ | * |
limit | エクスポートするレコードの最大数。 | いいえ | なし |
where | データをフィルターするための WHERE 句。この文字列はクエリ文に直接追加されます。例: | いいえ | なし |
mode | インポートモード。有効な値は Select と ODPS です。
| いいえ | Select |
odps.accessKey | `mode` が `ODPS` の場合に必須です。AnalyticDB for MySQL 2.0 が ODPS にアクセスするために使用する Alibaba Cloud アカウントの AccessKey Secret。このアカウントには、Describe、Create、Select、Alter、Update、Drop の権限が必要です。 | いいえ | なし |
odps.accessId | `mode` が `ODPS` の場合に必須です。AnalyticDB for MySQL 2.0 が ODPS にアクセスするために使用する Alibaba Cloud アカウントの AccessKey ID。このアカウントには、Describe、Create、Select、Alter、Update、Drop の権限が必要です。 | いいえ | なし |
odps.odpsServer | `mode` が `ODPS` の場合に必須です。ODPS API のエンドポイント。 | いいえ | なし |
odps.tunnelServer | `mode` が `ODPS` の場合に必須です。ODPS Tunnel のエンドポイント。 | いいえ | なし |
odps.project | `mode` が `ODPS` の場合に必須です。ODPS プロジェクトの名前。 | いいえ | なし |
odps.accountType | このパラメーターは `mode` が `ODPS` の場合に有効になります。ODPS へのアクセスに使用されるアカウントのタイプ。 | いいえ | aliyun |
Writer スクリプトデモ
{
"type":"job",
"version":"2.0",
"steps":[
{
"stepType":"stream",
"parameter":{
"name":"Reader",
"category":"reader"
},
{
"stepType":"ads",// プラグイン名。
"parameter":{
"partition":"",// 宛先テーブルのパーティション名。
"datasource":"",// データソース。
"column":[// フィールド。
"id"
],
"writeMode":"insert",// 書き込みモード。
"batchSize":"256",// 1 回のバッチで送信するレコード数。
"table":"",// テーブル名。
"overWrite":"true",// 宛先テーブルの既存のデータを上書きするかどうかを指定します。有効な値は true と false です。true の場合、システムは既存のデータを上書きします。false の場合、システムは新しいデータを追加します。このパラメーターは、writeMode が Load に設定されている場合にのみ有効です。
"options.ignoreEmptySource":true// ソースファイルが空の場合に報告されるエラーを無視するかどうかを指定します。このパラメーターが true に設定されている場合、タスクは失敗しません。デフォルト値:true。このパラメーターを設定しない場合、デフォルト値の true が使用されます。このパラメーターが false に設定されていて、ソースデータが読み取れない場合、タスクは失敗します。
},
"name":"Writer",
"category":"writer"
}
],
"setting":{
"errorLimit":{
"record":"0"// 許容されるエラーレコード数。
},
"speed":{
"throttle":true,// throttle が false の場合、mbps パラメーターは有効にならず、トラフィックはスロットリングされません。throttle が true の場合、トラフィックはスロットリングされます。
"concurrent":1, // 同時実行ジョブ数。
"mbps":"12"// スロットリング。1 mbps は 1 MB/s に相当します。
}
},
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
}
}Writer スクリプトのパラメーター
パラメーター | 説明 | 必須 | デフォルト値 |
接続 URL | AnalyticDB for MySQL 2.0 の接続情報。フォーマット:アドレス:ポート。 | はい | なし |
データベース | AnalyticDB for MySQL 2.0 データベースの名前。 | はい | なし |
Access Id | AnalyticDB for MySQL 2.0 インスタンスの AccessKey ID。 | はい | なし |
Access Key | AnalyticDB for MySQL 2.0 インスタンスの AccessKey Secret。 | はい | なし |
datasource | データソースの名前。コードエディタはデータソースの追加をサポートしています。このパラメーターの値は、追加されたデータソースの名前と同じである必要があります。 | はい | なし |
table | 宛先テーブルの名前。 | はい | なし |
partition | 宛先テーブルのパーティション名。宛先テーブルが標準テーブルの場合、このパラメーターは必須です。 | いいえ | なし |
writeMode | AnalyticDB for MySQL 2.0 Writer は、AnalyticDB for MySQL 2.0 にデータをインポートするための 2 つのモードをサポートしています。
| はい | なし |
column | 宛先テーブルのフィールドのリスト。["*"] に設定してすべてのフィールドを含めるか、["a", "b", "c"] のようにフィールドのリストを指定できます。 | はい | なし |
suffix | AnalyticDB for MySQL 2.0 の URL フォーマットは | いいえ | なし |
batchSize | 1 回のバッチで書き込むレコード数。このパラメーターは、`writeMode` が `insert` に設定されている場合にのみ有効です。 | `writeMode` が `insert` の場合に必須です。 | なし |
bufferSize | DataX データ収集バッファーのサイズ。ソースデータは、まずこのバッファーでソートされ、その後 AnalyticDB for MySQL 2.0 に送信されます。データは、AnalyticDB for MySQL 2.0 サーバーのパフォーマンスを向上させるために、宛先テーブルのパーティションキー列に基づいてソートされます。 バッファー内のデータは、`batchSize` で指定されたバッチで AnalyticDB for MySQL 2.0 に送信されます。`bufferSize` は `batchSize` の値の数倍に設定することを推奨します。このパラメーターは、writeMode が `insert` に設定されている場合にのみ有効です。 | `writeMode` が `insert` の場合に必須です。 | この機能はデフォルトで無効になっています。 |