すべてのプロダクト
Search
ドキュメントセンター

DataWorks:AnalyticDB for PostgreSQL データソース

最終更新日:Jul 18, 2026

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 コンソールでパラメーターの説明を確認し、データソース追加時の各パラメーターの意味を理解できます

データ同期タスクの開発

同期タスクの設定に関するエントリポイントおよび手順については、以下の設定ガイドをご参照ください。

単一テーブルのバッチ同期

データベース全体のバッチ同期

手順については、「データベース全体のバッチ同期タスクの設定」をご参照ください。

付録:スクリプトサンプルおよびパラメーター

コードエディタを使用したバッチ同期タスクの設定

コードエディタを使用してバッチ同期タスクを設定する場合は、統一されたスクリプトフォーマット要件に基づいて、スクリプト内の関連パラメーターを設定する必要があります。詳細については、「スクリプトモードの構成」をご参照ください。以下では、コードエディタを使用してバッチ同期タスクを設定する際にデータソースに対して設定が必要なパラメーターについて説明します。

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 配列として指定します。デフォルトでは、[*] で示されるように、すべての列が同期されます。

  • エクスポートする列のサブセットを選択できます。

  • 列の順序を変更できます。

  • 定数を設定できます。SQL 構文に従う必要があります。例:["id", "table","1","'mingya.wmy'","'null'", "to_char(a+1)","2.3","true"]

    • id は通常の列名です。

    • table は予約キーワードでもある列名です。

    • 1 は整数定数です。

    • 'mingya.wmy' は文字列定数です。値はシングルクォーテーション (') で囲む必要があります。

    • 'null' は文字列定数です。

    • to_char(a+1) は関数式です。

    • 2.3 は浮動小数点数です。

    • true はブール値です。

  • column パラメーターには、同期する列を明示的に指定する必要があります。値を空にすることはできません。

はい

なし

splitPk

シャードキー。シャーディングによる並列データ抽出を有効にするには、splitPk を列に設定します。

  • データが均等に分散され、データホットスポットを回避しやすいため、テーブルのプライマリキーを使用することを推奨します。

  • splitPk パラメーターは、整数列のみでデータシャーディングをサポートします。文字列、浮動小数点数、日付などの他のデータ型の列を指定した場合、Data Integration は splitPk 構成を無視し、単一スレッドでデータを同期します。

  • splitPk パラメーターを構成しないか空のままにした場合、タスクは単一スレッドでデータを同期します。

いいえ

なし

where

抽出データをフィルターするために使用する WHERE 句。Reader は columntable、および where パラメーターから SQL クエリを構築します。例:id>2 and sex=1

  • WHERE 句を使用して増分同期を実行できます。

  • WHERE 句を指定しない場合、コネクタはテーブル全体を同期します。

いいえ

なし

querySql(高度な設定。コードレス UI では使用不可)

データフィルタリング用のカスタム SQL クエリ。where パラメーターでフィルター条件を表現できない場合に、代わりにこのパラメーターを使用します。これを構成すると、Data Integration は columntable、および where パラメーターを無視します。例:select a,b from table_a join table_b on table_a.id = table_b.id

querySql パラメーターを構成すると、AnalyticDB for PostgreSQL Reader は columntable、および 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:PostgreSQL の INSERT INTO ... VALUES ... ステートメントを実行して、PostgreSQL にデータを書き込みます。このモードを推奨します。

  • copy:PostgreSQL は COPY コマンドを提供し、テーブルとファイル(標準入力または標準出力)間でデータをコピーできます。Data Integration は COPY FROM を使用してテーブルにデータをロードすることをサポートします。パフォーマンスを向上させるためにこのモードを使用します。

  • upsert:書き込み操作中にデータ競合が発生した場合、システムは conflictMode パラメーターに基づいて新しいデータと既存のデータを処理します。

いいえ

insert

conflictMode

writeModeupsert に設定されており、PostgreSQL へのデータ書き込み時にプライマリキーまたは一意なインデックスの競合が発生した場合、以下の競合処理ポリシーのいずれかを選択できます。

  • replace:競合が発生した場合、受信した新しいデータで既存のデータを上書きします。

  • ignore:競合が発生した場合、コネクタは新しいデータを無視し、既存のデータを保持します。

説明

競合処理ポリシーは、コードエディタでのみ構成できます。

いいえ

replace

column

データを書き込む送信先列をカンマ (,) で区切って指定します。例:"column":["id","name","age"]。すべての列に順番に書き込むには、アスタリスク (*) を使用します。例:"column":["*"]。

はい

なし

preSql

同期タスクの開始前に実行される SQL ステートメント。コードレス UI では 1 つのステートメントをサポートし、コードエディタでは複数のステートメントをサポートします(例:古いデータをクリアする場合)。

いいえ

なし

postSql

同期タスクの完了後に実行される SQL ステートメント。コードレス UI では 1 つのステートメントをサポートし、コードエディタでは複数のステートメントをサポートします(例:タイムスタンプを追加する場合)。

いいえ

なし

batchSize

1 回のバッチで書き込むレコード数。値を大きくするとネットワークラウンドトリップが減り、スループットが向上しますが、過度に大きな値は OOM エラーを引き起こす可能性があります。

いいえ

1024