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

DataWorks:KingbaseES

最終更新日:Mar 01, 2026

KingbaseES データソースは、KingbaseES からデータを読み取るだけでなく、KingbaseES へデータを書き込む双方向チャネルを提供します。本トピックでは、DataWorks における KingbaseES データソースのデータ同期機能について説明します。

制限事項

サポートされるフィールドの型

以下の表に、KingbaseES Reader がサポートするデータの型を示します。

カテゴリ

データソース内のデータの型

整数

INT、TINYINT、SMALLINT、MEDIUMINT、BIGINT

浮動小数点数

FLOAT、DOUBLE、DECIMAL

文字列

VARCHAR、CHAR、TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXT

日付および時刻

DATE、DATETIME、TIMESTAMP、TIME、YEAR

ブール値

BIT、BOOL

バイナリ

TINYBLOB、MEDIUMBLOB、BLOB、LONGBLOB、VARBINARY

重要
  • 上記の表に記載されていないフィールドの型はサポートされません。

  • KingbaseES Reader プラグインでは、tinyint(1) を整数として扱います。

データソースの追加

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

データ同期タスクの開発

同期タスクの設定手順および設定画面へのアクセス方法については、以下の構成ガイドをご参照ください。

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

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

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

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

Reader スクリプトデモ

  • 単一データベース・単一テーブルの構成

    {
        "type":"job",
        "version":"2.0",// バージョン番号。
        "steps":[
            {
                "stepType":"kingbasees",// プラグイン名。
                "parameter":{
                    "column":[// カラム名。
                        "id"
                    ],
                    "connection":[
                        {   "querySql":["select a,b from join1 c join join2 d on c.id = d.id;"], // connection 内で querySql を文字列で記述します。
                            "datasource":"",// データソース。
                            "table":[// テーブル名。テーブルが 1 つだけの場合でも、[] を用いた配列形式で記述する必要があります。
                                "xxx"
                            ]
                        }
                    ],
                    "where":"",// フィルター条件。
                    "splitPk":"",// 分割キー。
                    "encoding":"UTF-8"// エンコーディング形式。
                },
                "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"// データ転送速度の上限。1 mbps = 1 MB/s。
            }
        },
        "order":{
            "hops":[
                {
                    "from":"Reader",
                    "to":"Writer"
                }
            ]
        }
    }
  • シャード化されたデータベースおよびテーブルのサンプル構成

    説明

    シャーディングとは、KingbaseES Reader で複数の KingbaseES テーブルを選択できることを意味します。これらのテーブルのスキーマは同一である必要があります。

    {
        "type": "job",
        "version": "1.0",
        "configuration": {
            "reader": {
                "plugin": "kingbasees",
                "parameter": {
                    "connection": [
                        {
                            "table": [
                                "tbl1",
                                "tbl2",
                                "tbl3"
                            ],
                            "datasource": "datasourceName1"
                        },
                        {
                            "table": [
                                "tbl4",
                                "tbl5",
                                "tbl6"
                            ],
                            "datasource": "datasourceName2"
                        }
                    ],
                    "singleOrMulti": "multi",
                    "splitPk": "db_id",
                    "column": [
                        "id", "name", "age"
                    ],
                    "where": "1 < id and id < 100"
                }
            },
            "writer": {            
            }
        }
    }

パラメーター

説明

username

ユーザー名。

password

パスワード。

column

同期対象のフィールド名。すべてのカラムを同期する場合はアスタリスク (*) を使用します。

table

同期対象のテーブル名。

jdbcUrl

KingbaseES への接続に使用する Java Database Connectivity (JDBC) URL。例:jdbc:kingbase8://127.0.0.1:30215?currentschema=TEST

splitPk

同期処理の分割キーとして使用する KingbaseES テーブル内のフィールド。分割キーを指定することで、高い同時実行性を実現した KingbaseES テーブルの同期が可能になります。

分割キーは数値型の整数フィールドである必要があります。該当するフィールドがない場合は、このパラメーターを空欄のままにしてください。

Writer スクリプトデモ

以下のコードは、サンプルスクリプト構成を示しています。

{
    "type":"job",
    "version":"2.0",// バージョン番号。
    "steps":[
        {
            "stepType":"stream",
            "parameter":{},
            "name":"Reader",
            "category":"reader"
        },
        {
            "stepType":"kingbasees",// プラグイン名。
            "parameter":{
                "postSql":[],// インポート後に実行する準備文。
                "datasource":"",// データソース。
                "column":[// カラム名。
                    "id",
                    "value"
                ],
                "batchSize":1024,// 1 回のバッチで送信するレコード数。
                "table":"",// テーブル名。
                "preSql":[
                     "delete from XXX;" // インポート前に実行する準備文。
                   ]
            },
            "name":"Writer",
            "category":"writer"
        }
    ],
    "setting":{
        "errorLimit":{// エラーとなるレコード数。
            "record":"0"
        },
        "speed":{
            "throttle":true,// throttle を false に設定すると、mbps パラメーターは無効となり、データ転送速度は制限されません。throttle を true に設定すると、データ転送速度が制限されます。
            "concurrent":1, // ジョブの同時実行数。
            "mbps":"12"// データ転送速度の上限。1 mbps = 1 MB/s。
        }
    },
    "order":{
        "hops":[
            {
                "from":"Reader",
                "to":"Writer"
            }
        ]
    }
}

パラメーター

説明

必須

デフォルト値

datasource

データソースの名称。コードエディタではデータソースの追加が可能です。このパラメーターの値は、追加済みのデータソースの名称と一致させる必要があります。

はい

なし

table

同期対象のテーブル名。

はい

なし

column

データを書き込む先の宛先テーブルのフィールド。フィールド名はカンマ (,) で区切ります。例:"column": ["id", "name", "age"]

すべてのカラムに順番通りにデータを書き込む場合は、アスタリスク (*) を使用します。例:"column":["*"]

説明

ソース側のフィールド名にスラッシュ (/) が含まれる場合は、バックスラッシュおよび二重引用符でエスケープする必要があります(\"your_column_name\")。たとえば、フィールド名が /abc/efg の場合、エスケープ後のフィールド名は \"/abc/efg\" となります。

はい

なし

preSql

データ同期タスク実行前に実行する SQL 文。コードレス UI では 1 つの SQL 文のみをサポートします。コードエディタでは複数の SQL 文をサポートします。たとえば、タスク実行前にテーブル内の既存データをクリアするには、次の文を実行できます:

truncate table tablename
説明

複数の SQL 文を指定した場合、トランザクションの原子性は保証されません。

いいえ

なし

postSql

データ同期タスクの実行後に実行する SQL 文です。コードレス UI では、1 つの SQL 文のみがサポートされます。コードエディタでは、複数の SQL 文がサポートされます。たとえば、タイムスタンプを追加できます:alter table tablenameadd colname timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

いいえ

なし

batchSize

1 回のバッチで送信するレコード数。この値を大きくすると、データ同期システムとデータソース間のネットワーク通信回数が大幅に削減され、全体的なスループットが向上します。ただし、この値が大きすぎると、データ同期プロセスでメモリ不足 (OOM) エラーが発生する可能性があります。

いいえ

1024