AnalyticDB for PostgreSQL データソースは、Data Integration を通じて双方向の読み取りおよび書き込み機能を提供します。
制限事項
バッチ同期では、ビューからのデータ読み取りがサポートされます。
サポートされるバージョン
このコネクタは、バージョン 7.0 までをサポートします。
サポートされるデータの型
バッチ読み取り
AnalyticDB for PostgreSQL Reader は、AnalyticDB for PostgreSQL のほとんどのデータの型をサポートします。使用前に、ご利用のデータの型がサポートされていることをご確認ください。
以下の表に、バッチ読み取りでサポートされるデータの型を示します。
|
カテゴリ |
AnalyticDB for PostgreSQL の型 |
|
整数 |
BIGINT、BIGSERIAL、INTEGER、SMALLINT、SERIAL、および GEOMETRY |
|
浮動小数点 |
DOUBLE、PRECISION、MONEY、NUMERIC、および REAL |
|
文字列 |
VARCHAR、CHAR、TEXT、BIT、および INET |
|
日時 |
DATE、TIME、および TIMESTAMP |
|
ブール値 |
BOOL |
|
バイナリ |
BYTEA |
バッチ書き込み
AnalyticDB for PostgreSQL Writer は、AnalyticDB for PostgreSQL のほとんどのデータの型をサポートします。使用前に、ご利用のデータの型がサポートされていることをご確認ください。
以下の表は、バッチ書き込み時の DataWorks のデータの型と AnalyticDB for PostgreSQL のデータの型との対応関係を示しています。
|
DataWorks のデータの型 |
AnalyticDB for PostgreSQL の型 |
|
LONG |
BIGINT、BIGSERIAL、INTEGER、SMALLINT、および SERIAL |
|
DOUBLE |
DOUBLE、PRECISION、MONEY、NUMERIC、および REAL |
|
STRING |
VARCHAR、CHAR、TEXT、BIT、INET、および GEOMETRY |
|
DATE |
DATE、TIME、および TIMESTAMP |
|
BOOLEAN |
BOOL |
|
BYTES |
BYTEA |
MONEY、INET、および BIT データの型については、a_inet::varchar のような型キャストを使用する必要があります。
データソースの追加
DataWorks で同期タスクを開発する前に、「データソース管理」の手順に従って、必要なデータソースを DataWorks に追加してください。DataWorks コンソールでパラメーターの説明を確認し、データソース追加時の各パラメーターの意味を理解できます。
データ同期タスクの開発
同期タスクの設定に関するエントリポイントおよび手順については、以下の設定ガイドをご参照ください。
単一テーブルのバッチ同期
-
手順については、「コードレス UI を使用した同期タスクの設定」および「コードエディタを使用した同期タスクの設定」をご参照ください。
-
コードエディタ用のパラメーター一覧およびスクリプトサンプルの完全なリストについては、「付録:スクリプトサンプルおよびパラメーター」をご参照ください。
データベース全体のバッチ同期
手順については、「データベース全体のバッチ同期タスクの設定」をご参照ください。
付録:スクリプトサンプルおよびパラメーター
コードエディタを使用したバッチ同期タスクの設定
コードエディタを使用してバッチ同期タスクを設定する場合は、統一されたスクリプトフォーマット要件に基づいて、スクリプト内の関連パラメーターを設定する必要があります。詳細については、「スクリプトモードの構成」をご参照ください。以下では、コードエディタを使用してバッチ同期タスクを設定する際にデータソースに対して設定が必要なパラメーターについて説明します。
Reader スクリプトサンプル
{
"type": "job",
"steps": [
{
"parameter": {
"datasource": "test_004",// データソースの名前。
"column": [// ソーステーブルの列。
"id",
"name",
"sex",
"salary",
"age"
],
"where": "id=1001",// WHERE 句。
"splitPk": "id",// シャードキー。
"table": "public.person"// ソーステーブルの名前。
},
"name": "Reader",
"category": "reader"
},
{
"parameter": {},
"name": "Writer",
"category": "writer"
}
],
"version": "2.0",// バージョン番号。
"order": {
"hops": [
{
"from": "Reader",
"to": "Writer"
}
]
},
"setting": {
"errorLimit": {// エラーレコード数。
"record": ""
},
"speed": {
"concurrent": 6,// 並行スレッド数。
"throttle": true,// スロットルを有効にするかどうかを指定します。false を設定すると、スロットルは無効になり、mbps パラメーターは効果がありません。true を設定すると、スロットルが有効になります。
"mbps":"12"// MB/s 単位の速度制限レート。
}
}
}
Reader パラメーター
|
パラメーター |
説明 |
必須 |
デフォルト |
|
datasource |
DataWorks に登録済みのデータソースの名前。 |
はい |
なし |
|
table |
ソーステーブルの名前。 |
はい |
なし |
|
column |
同期する列を JSON 配列として指定します。デフォルトでは、[*] で示されるように、すべての列が同期されます。
|
はい |
なし |
|
splitPk |
シャードキー。シャーディングによる並列データ抽出を有効にするには、splitPk を列に設定します。
|
いいえ |
なし |
|
where |
抽出データをフィルターするために使用する WHERE 句。Reader は column、table、および where パラメーターから SQL クエリを構築します。例:
|
いいえ |
なし |
|
querySql(高度な設定。コードレス UI では使用不可) |
データフィルタリング用のカスタム SQL クエリ。 querySql パラメーターを構成すると、AnalyticDB for PostgreSQL Reader は column、table、および where パラメーターを無視します。 |
いいえ |
なし |
|
fetchSize |
データベースから 1 回のバッチでフェッチするレコード数。値を大きくするとネットワークラウンドトリップが減り、抽出パフォーマンスが向上する可能性があります。 説明
fetchSize の値が 2048 を超えると、データ同期プロセスでメモリ不足 (OOM) エラーが発生する可能性があります。 |
いいえ |
512 |
Writer スクリプトサンプル
{
"type": "job",
"steps": [
{
"parameter": {},
"name": "Reader",
"category": "reader"
},
{
"parameter": {
"postSql": [],// 実行後の SQL ステートメント。
"datasource": "test_004",// データソースの名前。
"column": [// 送信先テーブルの列。
"id",
"name",
"sex",
"salary",
"age"
],
"table": "public.person",// 送信先テーブルの名前。
"preSql": []// 実行前の SQL ステートメント。
},
"name": "Writer",
"category": "writer"
}
],
"version": "2.0",// バージョン番号。
"order": {
"hops": [
{
"from": "Reader",
"to": "Writer"
}
]
},
"setting": {
"errorLimit": {// エラーレコード数。
"record": ""
},
"speed": {
"throttle":true,// スロットルを有効にするかどうかを指定します。false を設定すると、スロットルは無効になり、mbps パラメーターは効果がありません。true を設定すると、スロットルが有効になります。
"concurrent":6, // 並行スレッド数。
"mbps":"12"// 速度制限レート。
}
}
}
Writer パラメーター
|
パラメーター |
説明 |
必須 |
デフォルト |
|
datasource |
DataWorks に登録済みのデータソースの名前。 |
はい |
なし |
|
table |
送信先テーブルの名前。 |
はい |
なし |
|
writeMode |
書き込みモード。有効な値:insert、copy、および upsert。
|
いいえ |
insert |
|
conflictMode |
writeMode が upsert に設定されており、PostgreSQL へのデータ書き込み時にプライマリキーまたは一意なインデックスの競合が発生した場合、以下の競合処理ポリシーのいずれかを選択できます。
説明
競合処理ポリシーは、コードエディタでのみ構成できます。 |
いいえ |
replace |
|
column |
データを書き込む送信先列をカンマ (,) で区切って指定します。例: |
はい |
なし |
|
preSql |
同期タスクの開始前に実行される SQL ステートメント。コードレス UI では 1 つのステートメントをサポートし、コードエディタでは複数のステートメントをサポートします(例:古いデータをクリアする場合)。 |
いいえ |
なし |
|
postSql |
同期タスクの完了後に実行される SQL ステートメント。コードレス UI では 1 つのステートメントをサポートし、コードエディタでは複数のステートメントをサポートします(例:タイムスタンプを追加する場合)。 |
いいえ |
なし |
|
batchSize |
1 回のバッチで書き込むレコード数。値を大きくするとネットワークラウンドトリップが減り、スループットが向上しますが、過度に大きな値は OOM エラーを引き起こす可能性があります。 |
いいえ |
1024 |