DataWorks は、AnalyticDB for MySQL 2.0 Reader と AnalyticDB for MySQL 2.0 Writer を提供し、AnalyticDB for MySQL 2.0 データソースとのデータの読み取りと書き込みを可能にします。このトピックでは、AnalyticDB for MySQL 2.0 データソースとのデータ同期機能について説明します。
制限事項
バッチ同期中にビューのデータを読み取ることができます。
AnalyticDB for MySQL 2.0 Reader は複数値型のデータを読み取ることができません。 AnalyticDB for MySQL 2.0 Reader を使用してこのタイプのデータを読み取ると、AnalyticDB for MySQL 2.0 Reader は予期せず終了します。
データ型マッピング
バッチデータ読み取り
次の表に、AnalyticDB for MySQL 2.0 Reader がデータ型を変換する際に基づくデータ型マッピングを示します。
AnalyticDB for MySQL 2.0 データ型 | Data Integration データ型 | 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 にデータソースを追加する必要があります。詳細については、「データソースの追加と管理」をご参照ください。
単一テーブルのデータを同期するためのバッチ同期タスクの設定
設定手順の詳細については、「コードレス UI を使用したバッチ同期タスクの設定」および「コードエディタを使用したバッチ同期タスクの設定」をご参照ください。
コードエディタを使用してバッチ同期タスクを設定する場合に設定されるすべてのパラメータと実行されるコードについては、「付録:コードとパラメータ」をご参照ください。
データベース内のすべてのデータのバッチ同期を実装するための同期設定
設定手順の詳細については、「Data Integration での同期タスクの設定」をご参照ください。
付録:コードとパラメータ
付録:コードエディタを使用したバッチ同期タスクの設定
コードエディタを使用してバッチ同期タスクを設定する場合は、コードエディタのフォーマット要件に基づいて、関連データソースのリーダーとライターのパラメータを設定する必要があります。フォーマット要件の詳細については、「コードエディタを使用したバッチ同期タスクの設定」をご参照ください。次の情報は、コードエディタにおけるリーダーとライターのパラメータの設定の詳細について説明しています。
AnalyticDB for MySQL 2.0 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, // スロットリングを有効にするかどうかを指定します。値 false はスロットリングが無効になっていることを示し、値 true はスロットリングが有効になっていることを示します。 mbps パラメータは、throttle パラメータが true に設定されている場合にのみ有効になります。
"mbps":"12" // 最大伝送速度。単位:MB/s。
}
}
}AnalyticDB for MySQL 2.0 Reader のコードのパラメータ
パラメータ | 説明 | 必須 | デフォルト値 |
table | データを読み取るテーブルの名前。 | はい | デフォルト値なし |
column | 列の名前。このパラメータが指定されていない場合は、すべての列が読み取られます。 | いいえ | * |
limit | 1 ページで読み取ることができるレコードの最大数。 | いいえ | デフォルト値なし |
where | データレコードをフィルタリングするための WHERE 句。このパラメータで指定された文字列(例: | いいえ | デフォルト値なし |
mode | 読み取りモード。有効な値:
| いいえ | Select |
odps.accessKey | AnalyticDB for MySQL 2.0 Reader が MaxCompute にアクセスするために使用する Alibaba Cloud アカウントの AccessKey シークレット。アカウントには、Describe、Create、Select、Alter、Update、および Drop の権限が必要です。 mode パラメータが ODPS に設定されている場合、このパラメータは必須です。 | いいえ | デフォルト値なし |
odps.accessId | AnalyticDB for MySQL 2.0 Reader が MaxCompute にアクセスするために使用する Alibaba Cloud アカウントの AccessKey ID。アカウントには、Describe、Create、Select、Alter、Update、および Drop の権限が必要です。 mode パラメータが ODPS に設定されている場合、このパラメータは必須です。 | いいえ | デフォルト値なし |
odps.odpsServer | MaxCompute API のエンドポイント。 mode パラメータが ODPS に設定されている場合、このパラメータは必須です。 | いいえ | デフォルト値なし |
odps.tunnelServer | MaxCompute Tunnel のエンドポイント。 mode パラメータが ODPS に設定されている場合、このパラメータは必須です。 | いいえ | デフォルト値なし |
odps.project | MaxCompute プロジェクトの名前。 mode パラメータが ODPS に設定されている場合、このパラメータは必須です。 | いいえ | デフォルト値なし |
odps.accountType | MaxCompute にアクセスするために使用されるアカウントのタイプ。 mode パラメータが ODPS に設定されている場合、このパラメータは必須です。 | いいえ | aliyun |
AnalyticDB for MySQL 2.0 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", // 一度に書き込むデータレコードの数。
"table":"", // テーブルの名前。
"overWrite":"true", // 宛先テーブルのデータを上書きするかどうかを指定します。値 true は、宛先テーブルのデータが上書きされることを示します。値 false は、宛先テーブルのデータが上書きされず、新しいデータが既存のデータに追加されることを示します。このパラメータは、writeMode パラメータが load に設定されている場合にのみ有効になります。
"options.ignoreEmptySource":true // ソースにデータが含まれていない場合に、システムがエラーを報告するかどうかを指定します。値 true は、システムがエラーを報告しないことを示し、値 false は、システムがエラーを報告することを示します。このパラメータのデフォルト値は true です。
},
"name":"Writer",
"category":"writer"
}
],
"setting":{
"errorLimit":{
"record":"0" // 許容されるダーティデータレコードの最大数。
},
"speed":{
"throttle":true, // スロットリングを有効にするかどうかを指定します。値 false はスロットリングが無効になっていることを示し、値 true はスロットリングが有効になっていることを示します。 mbps パラメータは、throttle パラメータが true に設定されている場合にのみ有効になります。
"concurrent":1, // 並行スレッドの最大数。
"mbps":"12" // 最大伝送速度。単位:MB/s。
}
},
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
}
}AnalyticDB for MySQL 2.0 Writer のコードのパラメータ
パラメータ | 説明 | 必須 | デフォルト値 |
url | AnalyticDB for MySQL 2.0 データベースへの接続に使用する URL。IPアドレス:ポート 形式でこのパラメータを指定します。 | はい | デフォルト値なし |
database | AnalyticDB for MySQL 2.0 データベースの名前。 | はい | デフォルト値なし |
Access Id | AnalyticDB for MySQL 2.0 データベースへの接続に使用する AccessKey ID。 | はい | デフォルト値なし |
Access Key | AnalyticDB for MySQL 2.0 データベースへの接続に使用する AccessKey シークレット。 | はい | デフォルト値なし |
datasource | データソースの名前。追加されたデータソースの名前と同じである必要があります。コードエディタを使用してデータソースを追加できます。 | はい | デフォルト値なし |
table | データを書き込むテーブルの名前。 | はい | デフォルト値なし |
partition | データを書き込むパーティションの名前。このパラメータは、宛先テーブルがパーティションテーブルの場合にのみ必須です。 | いいえ | デフォルト値なし |
writeMode | AnalyticDB for MySQL 2.0 Writer は、2 つのモードで AnalyticDB for MySQL 2.0 データベースにデータを書き込むために使用できます。
| はい | デフォルト値なし |
column | データを書き込む列の名前。カンマ (,) で区切ります(例:["a", "b", "c"])。 | はい | デフォルト値なし |
suffix | オプション。 | いいえ | デフォルト値なし |
batchSize | 一度に書き込むデータレコードの数。 | このパラメータは、writeMode パラメータが insert に設定されている場合にのみ必須です。 | デフォルト値なし |
bufferSize | AnalyticDB for MySQL 2.0 のパフォーマンスを向上させるために設計された Data Integration データバッファのサイズ。ソースデータは、AnalyticDB for MySQL 2.0 にコミットされる前にバッファ内でソートされます。バッファ内のデータは、AnalyticDB for MySQL 2.0 テーブルのパーティションキー列に基づいてソートされます。これにより、AnalyticDB for MySQL 2.0 サーバーのパフォーマンスを向上させることができる順序でデータが編成されます。 バッファ内のデータは、batchSize パラメータの値に基づいてバッチで AnalyticDB for MySQL 2.0 にコミットされます。 bufferSize パラメータは、batchSize パラメータの値の倍数に設定することをお勧めします。このパラメータは、writeMode パラメータが insert に設定されている場合にのみ有効になります。 | このパラメータは、writeMode パラメータが insert に設定されている場合にのみ必須です。 | デフォルト値なし |