DataWorksは、AnalyticDB for MySQLの3.0ソースからデータを読み書きするためのAnalyticDB for MySQL 3.0 ReaderおよびAnalyticDB for MySQLのデータライターを提供してい3.0。 このトピックでは、AnalyticDB for MySQL 3.0データソースとの間でデータを同期する機能について説明します。
制限事項
data lakehouseエディションのAnalyticDB for MySQL 3.0データソースは、共有リソースグループに接続できず、同期タスクに使用できません。
データウェアハウスエディションのAnalyticDB for MySQL 3.0インスタンスの使用からデータレイクハウスエディションの同じインスタンスの使用に切り替えると、AnalyticDB for MySQL 3.0インスタンスが使用され、共有リソースグループで実行される同期タスクの実行に失敗する可能性があります。 そのため、AnalyticDB for MySQL 3.0インスタンスが使用されている同期タスクが共有リソースグループで実行されているかどうかを確認することを推奨します。 このような同期タスクが存在する場合は、共有リソースグループを排他的リソースグループに置き換えてタスクを実行します。
ビューのデータは、バッチ同期中に読み取ることができます。
データ型マッピング
バッチデータの読み取り
次の表に、AnalyticDB for MySQL 3.0 Readerによるデータ型の変換に基づくデータ型のマッピングを示します。
カテゴリ | AnalyticDB for MySQL 3.0データ型 |
Integer | INT、INTEGER、TINYINT、SMALLINT、BIGINT |
浮動小数点 | FLOAT、DOUBLE、DECIMAL |
String | VARCHAR |
日付と時刻 | DATE、DATETIME、TIMESTAMP、TIME |
Boolean | BOOLEAN |
バッチデータ書き込み
次の表に、AnalyticDB for MySQL 3.0 Writerによるデータ型の変換に基づくデータ型マッピングを示します。
カテゴリ | AnalyticDB for MySQL 3.0データ型 |
Integer | INT、INTEGER、TINYINT、SMALLINT、BIGINT |
浮動小数点 | FLOAT、DOUBLE、DECIMAL |
String | VARCHAR |
日付と時刻 | DATE、DATETIME、TIMESTAMP、TIME |
Boolean | BOOLEAN |
データ同期タスクの開発
のエントリポイントとデータ同期タスクの設定手順については、次のセクションを参照してください。 パラメーター設定の詳細については、タスクの設定タブで各パラメーターのインフォチップを参照してください。
データソースの追加
特定のデータソースとの間でデータを同期するようにデータ同期タスクを設定する前に、データソースをDataWorksに追加する必要があります。 詳細については、「データソースの追加と管理」をご参照ください。
単一のテーブルのデータを同期するようにバッチ同期タスクを設定する
設定手順の詳細については、「コードレスUIを使用したバッチ同期タスクの設定」および「コードエディターを使用したバッチ同期タスクの設定」をご参照ください。
構成されるすべてのパラメーターと、コードエディターを使用してバッチ同期タスクを構成するときに実行されるコードについては、「付録: コードとパラメーター」をご参照ください。
単一のテーブルまたはデータベースのデータを同期するためのリアルタイム同期タスクの設定
設定手順の詳細については、「DataStudioでのリアルタイム同期タスクの設定」をご参照ください。
同期設定を構成して、データベース内のすべてのデータのバッチ同期、または単一のテーブルまたはデータベース内の完全データと増分データのリアルタイム同期を実装します。
設定手順の詳細については、「Data Integrationでの同期タスクの設定」をご参照ください。
付録: コードとパラメータ
付録: コードエディターを使用してバッチ同期タスクを構成する
コードエディターを使用してバッチ同期タスクを設定する場合は、コードエディターの形式要件に基づいて、関連するデータソースのリーダーとライターのパラメーターを設定する必要があります。 フォーマット要件の詳細については、「コードエディターを使用したバッチ同期タスクの設定」をご参照ください。 次の情報は、コードエディターのリーダーとライターのパラメーターの設定の詳細を説明しています。
AnalyticDB for MySQL 3.0リーダーのコード
{
"type": "ジョブ" 、"steps": [
{
"stepType": "analyticdb_for_mysql", // プラグイン名。
"parameter": {
"column": [ // 列の名前。
"id",
「値」、「テーブル」
],
"connection": [
{
"datasource": "xxx", // データソースの名前。
"table": [ // テーブルの名前。
"xxx"
]
}
],
"where": "", // WHERE句。
"splitPk": "", // シャードキー。
"encoding": "UTF-8" // エンコード形式。
},
"name": "リーダー" 、"カテゴリ": "リーダー"
},
{
"stepType": "stream" 、"parameter": {}、"name": "Writer" 、"カテゴリ": "ライター"
}
],
"version": "2.0" 、"order": {
"hops": [
{
"from": "Reader" 、"to": "ライター"
}
]
},
"setting": {
"errorLimit": {
"record": "0" // 許可されるダーティデータレコードの最大数。
},
"speed": {
"throttle":true,// スロットルを有効にするかどうかを指定します。 値falseはスロットリングが無効であることを示し、値trueはスロットリングが有効であることを示します。 mbpsパラメーターは、スロットルパラメーターがtrueに設定されている場合にのみ有効です。
"concurrent":1 // 並列スレッドの最大数。
"mbps":"12" // 最大送信レート。 単位:MB/秒。
}
}
}
AnalyticDB for MySQL 3.0 Readerのコード内のパラメータ
パラメーター | 説明 | 必須 | デフォルト値 |
データソース | データソースの名前。 追加されたデータソースの名前と同じである必要があります。 コードエディターを使用してデータソースを追加できます。 | 可 | デフォルト値なし |
テーブル | データを読み取るテーブルの名前。 | 可 | デフォルト値なし |
列 | データを読み取る列の名前。 列はJSON配列で指定されます。 デフォルト値は [*] で、すべての列を示します。
| 可 | デフォルト値なし |
splitPk | AnalyticDB for MySQL 3.0 Readerがデータを読み取るときにデータシャーディングに使用されるフィールド。 このパラメーターを指定すると、ソーステーブルはこのパラメーターの値に基づいてシャードされます。 次に、Data Integrationは並列スレッドを実行してデータを読み取ります。 このようにして、データをより効率的に同期できる。
| 任意 | デフォルト値なし |
どこで | WHERE句。 たとえば、このパラメーターを
| 任意 | デフォルト値なし |
AnalyticDB for MySQL 3.0ライターのコード
{
"type": "ジョブ" 、"steps": [
{
"stepType": "stream" 、"parameter": {}、"name": "リーダー" 、"カテゴリ": "リーダー"
},
{
"stepType": "analyticdb_for_mysql", // プラグイン名。
"parameter": {
"postSql": [], // 同期タスクの実行後に実行するSQL文。
"tableType": null, // 予約フィールド。 デフォルト値:null
"datasource": "hangzhou_ads", // データソースの名前。
"column": [ // 列の名前。
"id",
「値」
],
"guid": null、"writeMode": "insert", // 書き込みモード。 詳細については、writeMode パラメーターの説明をご参照ください。
"batchSize": 2048, // 一度に書き込むデータレコードの数。 詳細については、batchSizeパラメーターの説明をご参照ください。
"encoding": "UTF-8", // エンコード形式。
"table": "t5", // データを書き込むテーブルの名前。
"preSql": [] // 同期タスクが実行される前に実行するSQL文。
},
"name": "Writer" 、"カテゴリ": "ライター"
}
],
"version": "2.0", // バージョン番号。
"order": {
"hops": [
{
"from": "Reader" 、"to": "ライター"
}
]
},
"setting": {
"errorLimit": {
"record": "0" // 許可されるダーティデータレコードの最大数。
},
"speed": {
"throttle":true,// スロットルを有効にするかどうかを指定します。 値falseはスロットリングが無効であることを示し、値trueはスロットリングが有効であることを示します。 mbpsパラメーターは、スロットルパラメーターがtrueに設定されている場合にのみ有効です。
"concurrent":2, // 並列スレッドの最大数。
"mbps":"12" // 最大送信レート。 単位:MB/秒。
}
}
}
AnalyticDB for MySQL 3.0 Writerのコード内のパラメータ
パラメーター | 説明 | 必須 | デフォルト値 |
データソース | データソースの名前。 追加されたデータソースの名前と同じである必要があります。 コードエディターを使用してデータソースを追加できます。 | 可 | デフォルト値なし |
テーブル | データを書き込むテーブルの名前。 | 可 | デフォルト値なし |
writeMode | 書き込みモードを設定します。 有効な値: insert、replace、update。
| 任意 | 挿入 |
列 | データを書き込む列の名前。 名前は、 説明 列名にselectが含まれている場合は、列名をbackticks (') で囲みます。 たとえば、item_select_noは 'item_select_noとして表示されます。 | 可 | デフォルト値なし |
preSql | 同期タスクが実行される前に実行するSQL文。 たとえば、古いデータを削除するために使用されるSQL文にこのパラメーターを設定できます。 コードレスUIで実行できるSQL文は1つだけで、コードエディターでは複数のSQL文を実行できます。 説明 複数のSQL文を指定した場合、それらの文は同じトランザクションで実行されません。 | 任意 | デフォルト値なし |
postSql | 同期タスクの実行後に実行するSQL文。 たとえば、タイムスタンプの追加に使用するSQL文にこのパラメーターを設定できます。 コードレスUIで実行できるSQL文は1つだけで、コードエディターでは複数のSQL文を実行できます。 説明 複数のSQL文を指定した場合、それらの文は同じトランザクションで実行されません。 | 任意 | デフォルト値なし |
batchSize | 一度に書き込まれるデータレコード数です。 このパラメーターをビジネス要件に基づいて適切な値に設定します。 これにより、Data IntegrationとAnalyticDB for MySQL 3.0間のやり取りが大幅に削減され、スループットが向上します。 このパラメーターを大きすぎる値に設定すると、データ同期中にメモリ不足 (OOM) エラーが発生する可能性があります。 | 任意 | 1,024 |