AnalyticDB for MySQL 3.0 データソースを使用すると、AnalyticDB for MySQL 3.0 からのデータの読み取りおよび書き込みが可能です。このトピックでは、DataWorks の AnalyticDB for MySQL 3.0 に対するデータ同期機能について説明します。
制限事項
共有リソースグループ上で、データレイクハウスエディションのデータソース向けに同期タスクを構成または実行することはできません。
AnalyticDB for MySQL インスタンスをデータウェアハウスエディションからデータレイクハウスエディションに切り替えると、当該データソースを使用し、共有リソースグループ上で実行中の同期タスクは失敗します。インスタンスのエディションを切り替える前に、該当するタスクを確認し、サーバーレスリソースグループ(推奨) または専用 Data Integration リソースグループで実行されるよう再構成してください。
バッチ同期では、ビューからの読み取りがサポートされています。
サポートされるデータの型
バッチ読み取り
AnalyticDB for MySQL 3.0 Reader は、以下のデータの型をサポートしています。
種類 | AnalyticDB for MySQL 3.0 のデータの型 |
整数型 | INT、INTEGER、TINYINT、SMALLINT、BIGINT |
浮動小数点型 | FLOAT、DOUBLE、DECIMAL |
文字列型 | VARCHAR |
日付・時刻型 | DATE、DATETIME、TIMESTAMP、TIME |
ブール型 | BOOLEAN |
バッチ書き込み
AnalyticDB for MySQL 3.0 Writer は、以下のデータの型をサポートしています。
種類 | AnalyticDB for MySQL 3.0 のデータの型 |
整数型 | INT、INTEGER、TINYINT、SMALLINT、BIGINT |
浮動小数点型 | FLOAT、DOUBLE、DECIMAL |
文字列型 | VARCHAR |
日付・時刻型 | DATE、DATETIME、TIMESTAMP、TIME |
ブール型 | BOOLEAN |
データソースの追加
DataWorks で同期タスクを開発する前に、データソース管理 の手順に従って、必要なデータソースを DataWorks に追加する必要があります。データソースを追加する際には、DataWorks コンソール内の パラメーター説明 をご参照ください。これにより、各パラメーターの意味を確認できます。
データ同期タスクの開発
同期タスクの設定入口および設定手順については、以下の設定ガイドをご参照ください。
単一テーブルバッチ同期タスクの設定
設定方法については、「コードレス UI での設定」および「コードエディタでの設定」をご参照ください。
コードエディタ向けの全パラメーター一覧およびサンプルスクリプトについては、「付録:スクリプト例とパラメーター」をご参照ください。
単一テーブルリアルタイム同期タスクの設定
設定方法については、「単一テーブルリアルタイム同期タスクの設定」をご参照ください。
フルデータベースバッチ同期の設定
設定方法については、「フルデータベースバッチ同期タスクの設定」をご参照ください。
フルデータベースリアルタイム同期の設定
設定方法については、「フルデータベースリアルタイム同期タスクの設定」をご参照ください。
付録:スクリプト例とパラメーター
コードエディタによるバッチ同期タスクの設定
コードエディタでバッチ同期タスクを設定する場合、統一されたスクリプトフォーマット要件に基づき、関連するパラメーターをスクリプト内に設定する必要があります。詳細については、「コードエディタの使用」をご参照ください。以下に、コードエディタでバッチ同期タスクを設定する際に、データソースに対して設定する必要があるパラメーターについて説明します。
Reader スクリプト例
{
"type": "job",
"steps": [
{
"stepType": "analyticdb_for_mysql", // プラグイン名。
"parameter": {
"column": [ // 読み取るカラム。
"id",
"value",
"table"
],
"connection": [
{
"datasource": "xxx", // データソース名。
"table": [ // テーブル名。
"xxx"
]
}
],
"where": "", // フィルター条件。
"splitPk": "", // 分割キー。
"encoding": "UTF-8" // エンコード形式。
},
"name": "Reader",
"category": "reader"
},
{
"stepType": "stream",
"parameter": {},
"name": "Writer",
"category": "writer"
}
],
"version": "2.0",
"order": {
"hops": [
{
"from": "Reader",
"to": "Writer"
}
]
},
"setting": {
"errorLimit": {
"record": "0" // 許容されるエラーレコードの最大数。
},
"speed": {
"throttle":true,// `true` を指定すると速度制限が有効になり、`mbps` 制限が適用されます。`false` を指定すると無効になります。
"concurrent":1, // タスクの同時実行数。
"mbps":"12"// MB/s 単位でのレート制限。
}
}
}Reader パラメーター
パラメーター | 説明 | 必須 | デフォルト |
datasource | ご利用の DataWorks データソースの名前。 | はい | なし |
table | ソーステーブル名。 | はい | なし |
column | ソーステーブルから同期するカラムの配列。デフォルト値
| はい | なし |
splitPk | AnalyticDB for MySQL 3.0 Reader がデータを抽出する際、splitPk パラメーターを指定すると、システムは splitPk で指定されたフィールドに基づいてデータをシャードします。その結果、並列タスクを使用してデータ同期が実行され、効率が向上します。
| いいえ | なし |
where | フィルター条件。たとえば、当日分のデータのみを同期する場合は、where 条件を
| いいえ | なし |
Writer スクリプト例
{
"type": "job",
"steps": [
{
"stepType": "stream",
"parameter": {},
"name": "Reader",
"category": "reader"
},
{
"stepType": "analyticdb_for_mysql", // プラグイン名。
"parameter": {
"postSql": [], // インポート後に実行する SQL 文。
"tableType": null, // 予約フィールド。デフォルト値は null です。
"datasource": "hangzhou_ads", // データソース名。
"column": [ // 同期するカラム。
"id",
"value"
],
"guid": null,
"writeMode": "insert", // 書き込みモード。writeMode パラメーターの説明を参照してください。
"batchSize": 2048, // 各バッチ書き込みのレコード数。batchSize パラメーターの説明を参照してください。
"encoding": "UTF-8", // エンコード形式。
"table": "t5", // 宛先テーブル名。
"preSql": [] // インポート前に実行する SQL 文。
},
"name": "Writer",
"category": "writer"
}
],
"version": "2.0", // 構成ファイルフォーマットのバージョン。
"order": {
"hops": [
{
"from": "Reader",
"to": "Writer"
}
]
},
"setting": {
"errorLimit": {
"record": "0" // 許容されるエラーレコードの最大数。
},
"speed": {
"throttle":true,// `true` を指定すると速度制限が有効になり、`mbps` 制限が適用されます。`false` を指定すると無効になります。
"concurrent":2, // タスクの同時実行数。
"mbps":"12"// MB/s 単位でのレート制限。
}
}
}Writer パラメーター
パラメーター | 説明 | 必須 | デフォルト |
datasource | ご利用の DataWorks データソースの名前。 | はい | なし |
table | 宛先テーブル名。 | はい | なし |
writeMode | データ書き込み方法。有効な値は insert、replace、update です。
| いいえ | insert |
column | データを書き込む宛先テーブルのカラム。カラム名はカンマで区切ります。例: 説明 カラム名に select などの予約キーワードが含まれる場合、バックティック (`) で囲んでください。たとえば、item_select_no は | はい | なし |
preSql | 書き込みタスク開始前に実行する 1 つ以上の SQL 文。コードレス UI では 1 文のみ、コードエディタでは複数文がサポートされます。 説明 複数の SQL 文に対してトランザクションはサポートされていません。 | いいえ | なし |
postSql | 書き込みタスク終了後に実行する 1 つ以上の SQL 文。コードレス UI では 1 文のみ、コードエディタでは複数文がサポートされます。 説明 複数の SQL 文に対してトランザクションはサポートされていません。 | いいえ | なし |
batchSize | 値を大きくするとスループットが向上しますが、メモリ消費量も増加し、メモリ不足 (OOM) エラーを引き起こす可能性があります。 | いいえ | 1,024 |