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

DataWorks:PolarDB-X 2.0

最終更新日:Mar 01, 2026

PolarDB-X 2.0 データソースは、PolarDB-X 2.0 からデータを読み取り、PolarDB-X 2.0 にデータを書き込むための双方向チャンネルを提供します。このトピックでは、DataWorks が PolarDB-X 2.0 に対してサポートするデータ同期機能について説明します。

制限事項

PolarDB-X 2.0 データソースは、サーバーレス リソースグループ (推奨) および Data Integration 専用リソースグループをサポートしています。

サポートされているバージョン

オフラインでの読み取りと書き込み: PolarDB-X 2.0 がサポートされています。オフライン同期を使用して、ビューからデータを読み取ることができます。

サポートされているフィールドタイプ

PolarDB-X 2.0 のフィールドタイプの一覧については、「データ型」をご参照ください。次の表に、サポートされている主要なフィールドタイプを示します。

フィールドタイプ

オフライン読み取り (PolarDB-X 2.0 Reader)

オフライン書き込み (PolarDB-X 2.0 Writer)

TINYINT

サポート

サポート

SMALLINT

サポート

サポート

INTEGER

サポート

サポート

BIGINT

サポート

サポート

FLOAT

サポート

サポート

DOUBLE

サポート

サポート

DECIMAL/NUMBERIC

サポート

サポート

REAL

サポートされていません

サポートされていません

VARCHAR

サポート

サポート

JSON

サポート

サポート

TEXT

サポート

サポート

MEDIUMTEXT

サポート

サポート

LONGTEXT

サポート

サポート

VARBINARY

サポート

サポート

BINARY

サポート

サポート

TINYBLOB

サポート

サポート

MEDIUMBLOB

サポート

サポート

LONGBLOB

サポート

サポート

ENUM

サポート

サポート

SET

サポート

サポート

BOOLEAN

サポート

サポート

BIT

サポート

サポート

DATE

サポート

サポート

DATETIME

サポート

サポート

TIMESTAMP

サポート

サポート

TIME

サポート

サポート

YEAR

サポート

サポート

LINESTRING

サポートされていません

サポートされていません

POLYGON

サポートされていません

サポートされていません

MULTIPOINT

サポートされていません

サポートされていません

MULTILINESTRING

サポートされていません

サポートされていません

MULTIPOLYGON

サポートされていません

サポートされていません

GEOMETRYCOLLECTION

サポートされていません

サポートされていません

データ同期の前提条件

DataWorks でデータを同期する前に、このセクションで説明されているように PolarDB-X 2.0 環境を準備する必要があります。これにより、データ同期タスクが期待どおりに実行されます。以下のセクションでは、必要な準備について説明します。

PolarDB-X バージョンの確認

PolarDB-X 1.0 の場合は、DRDS データソースを使用します。PolarDB-X 2.0 の場合は、このデータソースを使用します。

アカウント権限の構成

DataWorks がデータソースにアクセスできるように、DataWorks 専用の PolarDB-X 2.0 アカウントを作成します。次の手順に従ってください。

  1. (オプション) PolarDB-X 2.0 コンソールに移動して、アカウントを作成します。すでにアカウントをお持ちの場合は、このステップをスキップします。

  2. 権限を構成します。

    • オフライン同期シナリオの場合:

      • オフラインタスクで PolarDB-X 2.0 からデータを読み取るには、アカウントがソーステーブルに対する読み取り (SELECT) 権限を持っている必要があります。

      • オフラインタスクで PolarDB-X 2.0 にデータを書き込むには、アカウントが宛先テーブルに対する書き込み (INSERT, DELETE, UPDATE) 権限を持っている必要があります。

    • リアルタイム同期シナリオ (全データベース) の場合:

      • 特権アカウント: デフォルトでは、特権アカウントはリアルタイム同期のためにバイナリログ (binlog) データを読み取ることができます。

      • 標準アカウント: 特権アカウントを使用して、指定されたデータベースに対する SELECT、REPLICATION SLAVE、および REPLICATION CLIENT 権限を標準アカウントに付与します。

-- 同期アカウントを作成し、パスワードを設定します。これにより、アカウントは任意のホストからデータベースにログインできます。パーセント記号 (%) は任意のホストを表します。
-- CREATE USER 'sync_account'@'%' IDENTIFIED BY 'password';
-- データベースに対する SELECT、REPLICATION SLAVE、および REPLICATION CLIENT 権限を同期アカウントに付与します。
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'sync_account'@'%'; 

データソースの追加

DataWorks で同期タスクを開発する前に、「データソース管理」の手順に従って、必要なデータソースを DataWorks に追加する必要があります。データソースを追加する際に、DataWorks コンソールでパラメーターの説明を表示して、パラメーターの意味を理解できます

データ同期タスクの開発: PolarDB-X 2.0 同期プロセスガイド

同期タスクのエントリポイントと構成手順については、以下の構成ガイドをご参照ください。

単一テーブルのオフライン同期タスク構成ガイド

付録: スクリプトデモとパラメーターの説明

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

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

リーダースクリプトデモ

{
    "type":"job",
    "version":"2.0",// バージョン番号。
    "steps":[
        {
            "stepType":"polardbx20",// プラグイン名。
            "parameter":{
               "connection": [
                  {
                      "datasource":"",
                      "table": [
                          "t1"
                      ]
                  }
              ],
              "column": [
                  "c1",
                  "c2",
                  "'const'"
              ],
              "where": "",
              "splitPk": "",
              "checkSlave": "true",
              "slaveDelayLimit": "300"
            },
            "name":"Reader",
            "category":"reader"
        },
        {
            "stepType":"stream",
            "parameter":{},
            "name":"Writer",
            "category":"writer"
        }
    ],
    "setting":{
        "errorLimit":{
            "record":"0"// エラーレコード数。
        },
        "speed":{
            "throttle":true,// throttle が false に設定されている場合、mbps パラメーターは有効にならず、レート制限は適用されません。throttle が true に設定されている場合、レート制限が適用されます。
            "concurrent":1,// 同時ジョブ数。
            "mbps":"12"// レート制限。
        }
    },
    "order":{
        "hops":[
            {
                "from":"Reader",
                "to":"Writer"
            }
        ]
    }
}

リーダースクリプトパラメーター

スクリプトパラメーター名

説明

必須

デフォルト値

datasource

データソースの名前。この名前は、[データソース管理] ページで作成した PolarDB-X 2.0 データソースの名前と同じである必要があります。

はい

なし

table

同期するテーブルの名前。単一テーブルのみがサポートされています。

はい

なし

column

構成されたテーブルから同期するカラム。JSON 配列を使用してカラムを記述します。デフォルトでは、すべてのカラムが使用されます。例: [*]。

  • カラムプルーニングがサポートされています。特定のカラムを選択して同期できます。

  • カラムの並べ替えがサポートされています。カラムはテーブルスキーマと同じ順序である必要はありません。

  • 定数がサポートされています。PolarDB-X 2.0 SQL 構文に従う必要があります。例: ["id","table","1","'mingya.wmy'","'null'","to_char(a+1)","2.3","true"]

    • id は標準カラム名です。

    • table は予約語でもあるカラム名です。

    • 1 は整数定数です。

    • 'mingya.wmy' は文字列定数です。単一引用符で囲む必要があることに注意してください。

    • null について:

      • " " は空の文字列を示します。

      • null は NULL 値を示します。

      • 'null' は文字列 "null" を示します。

    • to_char(a+1) は文字列の長さを計算する関数です。

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

    • true はブール値です。

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

はい

なし

splitPk

PolarDB-X 2.0 Reader を使用してデータを抽出する場合、splitPk パラメーターをデータパーティショニングに使用できます。これにより、同時データ同期が可能になり、効率が向上します。

  • (推奨) splitPk をテーブルのプライマリキーに設定します。これにより、バランスの取れたデータシャードが作成され、データホットスポットが防止されます。

  • splitPk は、整数型のカラムに対してのみデータパーティショニングをサポートします。文字列、浮動小数点、日付などの別のタイプのカラムを指定した場合、splitPk 機能は無視され、データは単一チャンネルで同期されます。

  • splitPk パラメーターを構成しない場合、またはその値を空に設定した場合、データは単一チャンネルで同期されます。

いいえ

なし

where

フィルター条件。多くのビジネスシナリオでは、現在の日のデータのみを同期したい場合があります。これを行うには、where 条件を gmt_create>$bizdate に設定します。

  • where 条件により、効率的な増分同期が可能です。キーまたは値を省略するなど、where 条件を指定しない場合、すべてのデータが同期されます。

  • where 条件を LIMIT 10 に設定することはできません。これは PolarDB-X 2.0 SQL WHERE 句の制約に準拠していません。

いいえ

なし

checkSlave

プライマリインスタンスと読み取り専用インスタンス間のレプリケーションの遅延をチェックします。データソースが PolarDB-X 2.0 読み取り専用インスタンスである場合、レプリケーションの遅延によるデータ損失を防ぐために、タスク開始前にこのチェックが実行されます。

いいえ

true

slaveDelayLimit

プライマリインスタンスと読み取り専用インスタンス間の許容される最大レプリケーション遅延 (秒単位)。実際の遅延がこの値を超えると、タスクは失敗します。これにより、レプリケーションの遅延によるデータ損失が防止されます。

いいえ

30

ライタースクリプトデモ

{
    "type":"job",
    "version":"2.0",// バージョン番号。
    "steps":[ 
        {
            "stepType":"stream",
            "parameter":{},
            "name":"Reader",
            "category":"reader"
        },
        {
            "stepType":"PolarDB-X 2.0",// プラグイン名。
            "parameter":{
                "postSql":[],// データインポート後に実行される SQL 文。
                "datasource":"",// データソース。
                "column":[// カラム名。
                    "id",
                    "value"
                ],
                "writeMode":"insert",// 書き込みモード。insert または replace に設定できます。
                "batchSize":1024,// 単一バッチで送信されるレコード数。
                "table":"",// テーブル名。
                "preSql":[ 
                     "delete from XXX;" // データインポート前に実行される SQL 文。
                   ]
            },
            "name":"Writer",
            "category":"writer"
        }
    ],
    "setting":{
        "errorLimit":{// エラーレコード数。
            "record":"0"
        },
        "speed":{
            "throttle":true,// throttle が false に設定されている場合、mbps パラメーターは有効にならず、レート制限は適用されません。throttle が true に設定されている場合、レート制限が適用されます。
            "concurrent":1, // 同時ジョブ数。
            "mbps":"12"// レート制限。これは、アップストリームまたはダウンストリームデータベースへの過度な読み取り/書き込み負荷を防ぐために、最大同期レートを制御します。
        }
    },
    "order":{
        "hops":[
            {
                "from":"Reader",
                "to":"Writer"
            }
        ]
    }
}

ライタースクリプトパラメーター

スクリプトパラメーター名

説明

必須

デフォルト値

datasource

データソースの名前。この名前は、[データソース管理] ページで作成した PolarDB-X 2.0 データソースの名前と同じである必要があります。

はい

なし

table

同期するテーブルの名前。

はい

なし

writeMode

インポートモード。次のモードがサポートされています: insert into および replace into

  • insert into: プライマリキーまたは一意なインデックスの競合が発生した場合、競合する行は書き込まれず、ダーティデータとして記録されます。コードエディタでタスクを構成する場合は、writeMode を insert に設定します。

  • replace into: プライマリキーまたは一意なインデックスの競合が発生しない場合、動作は insert into と同じです。競合が発生した場合、新しい行が挿入される前に既存の行が削除されます。新しい行は、既存の行のすべてのフィールドを置き換えます。コードエディタでタスクを構成する場合は、writeMode を replace に設定します。

いいえ

insert

column

データを書き込む宛先テーブルのカラム。カラム名をコンマ (,) で区切ります。例: "column": ["id", "name", "age"]。すべてのカラムに順番にデータを書き込むには、アスタリスク (*) を使用します。例: "column": ["*"]

はい

なし

preSql

データ同期タスクの実行前に実行される SQL 文。コードレス UI では、1つの SQL 文のみが許可されます。コードエディタでは、複数の SQL 文がサポートされています。たとえば、タスク実行前にテーブルから古いデータをクリアするには:

-- tablename はテーブル名です
truncate table tablename;
説明

複数の SQL 文に対してトランザクションはサポートされていません。

いいえ

なし

postSql

データ同期タスクの実行後に実行される SQL 文。コードレス UI では、1つの SQL 文のみが許可されます。コードエディタでは、複数の SQL 文がサポートされています。たとえば、タイムスタンプを追加するには:

-- tablename はテーブル名、colname はカラム名です
alter table tablename 
add colname timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
説明

複数の SQL 文に対してトランザクションはサポートされていません。

いいえ

なし

batchSize

単一バッチで送信されるレコード数。値が大きいほど、データ同期システムと PolarDB-X 2.0 間のネットワークインタラクションを大幅に削減でき、全体的なスループットが向上します。ただし、この値が大きすぎると、メモリオーバーフローが発生する可能性があります。

いいえ

256