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

DataWorks:GBase8a

最終更新日:Mar 01, 2026

GBase8a データソースを使用すると、GBase8a からデータを読み取り、GBase8a にデータを書き込むことができます。このトピックでは、DataWorks における GBase8a のデータ同期機能について説明します。

制限事項

  • GBase8a Reader と GBase8a Writer は、Serverless リソースグループ (推奨) および Data Integration の排他的リソースグループをサポートしています。

  • insert into... ステートメントを使用する場合、プライマリキーまたは一意なインデックスの競合が発生すると、競合する行は書き込まれません。

  • データはプライマリデータベースの宛先テーブルにのみ書き込むことができます。

    説明

    このタスクには、少なくとも insert into... 権限が必要です。preSql および postSql パラメーターに指定するステートメントには、追加の権限が必要になる場合があります。

  • GBase8a Writer は writeMode パラメーターをサポートしていません。

データソースの追加

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

データ同期タスクの開発

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

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

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

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

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

Reader スクリプトデモ

{
    "type": "job",
    "steps": [
        {
            "stepType": "gbase8a", // プラグイン名。
            "parameter": {
                "datasource": "", // データソース名。
                "username": "",
                "password": "",
                "where": "",
                "column": [ // フィールド。
                    "id",
                    "name"
                ],
                "splitPk": "id",
                "connection": [
                    {
                        "table": [ // テーブル名。
                            "table"
                        ],
                        "datasource":""
                    }
                ]
            },
            "name": "Reader",
            "category": "reader"
        },
        {
            "stepType": "stream",
            "parameter": {
                "print": false,
                "fieldDelimiter": ","
            },
            "name": "Writer",
            "category": "writer"
        }
    ],
    "version": "2.0",
    "order": {
        "hops": [
            {
                "from": "Reader",
                "to": "Writer"
            }
        ]
    },
    "setting": {
        "errorLimit": {
            "record": "0" // エラーレコード数。
        },
        "speed": {
            "throttle": true, // throttle を false に設定すると、mbps パラメーターは有効にならず、レート制限は課されません。throttle を true に設定すると、レート制限が課されます。
            "concurrent": 1, // 同時実行ジョブ数。
            "mbps":"12"// レート制限。1 mbps = 1 MB/秒。
        }
    }
}

パラメーター

説明

必須

デフォルト値

datasource

DataWorks のバージョンが GBase8a データソースの追加をサポートしている場合、追加された GBase8a データソースをその名前で参照できます。

No

None

table

データを同期するテーブル。JSON 配列を使用してテーブルを指定します。複数のテーブルから同時にデータを読み取ることができます。

複数のテーブルを構成する場合、それらが同じスキーマであることを確認してください。GBase8a Reader は、テーブルが一貫した論理構造を持っているかどうかをチェックしません。

説明

table パラメーターは connection 構成単位に含める必要があります。

Yes

None

column

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

  • 列のプルーニング: 特定の列を選択してエクスポートできます。

  • 列の並べ替え: テーブルスキーマとは異なる順序で列をエクスポートできます。

  • 定数構成: 例: '123'

  • 関数列: 例: date('now')

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

Yes

None

splitPk

GBase8a Reader がデータを抽出する際、splitPk を指定すると、splitPk で表されるフィールドがデータパーティションに使用されます。その後、データ同期タスクは同時サブタスクを開始して効率を向上させます。

  • splitPk にはテーブルのプライマリキーを使用します。プライマリキーは通常均等に分散されているため、結果のシャードにおけるデータホットスポットを防ぐのに役立ちます。

  • 現在、splitPk は整数データ型のみのデータパーティションをサポートしています。文字列、浮動小数点数、日付、その他の型はサポートしていません。サポートされていないデータ型を指定した場合、splitPk 機能は無視され、データは単一チャネルで同期されます。

  • splitPk を空のままにすると、システムはテーブルをパーティション分割しないとみなし、単一チャネルでデータを抽出します。

No

Empty

where

フィルター条件。GBase8a Reader は、指定された columntable、および where 条件に基づいて SQL ステートメントを構築し、その SQL ステートメントに基づいてデータを抽出します。

たとえば、テストの場合、where 条件を limit 10 に設定できます。一般的なビジネスシナリオでは、where 条件を gmt_create>$bizdate に設定して、当日のデータを同期する場合があります。

  • where 条件により、効率的な増分ビジネスデータ同期が可能になります。

  • where 条件を構成しないか、空のままにした場合、完全データ同期が実行されます。

No

None

querySql

一部のビジネスシナリオでは、where パラメーターではフィルター条件を記述するのに十分ではありません。このパラメーターを使用して、カスタムフィルター SQL ステートメントを定義できます。このパラメーターを構成すると、データ同期システムは tablescolumns、および splitPk パラメーターを無視し、このパラメーターの内容を使用してデータをフィルターします。

querySql を構成すると、GBase8a Reader は tablecolumnwhere、および splitPk パラメーターを無視します。

No

None

fetchSize

このパラメーターは、データベースサーバーから各バッチで取得するレコード数を指定します。この値は、Data Integration とサーバー間のネットワークインタラクションの数を決定し、データ抽出パフォーマンスを大幅に向上させることができます。

説明

過度に大きい fetchSize 値 (2048 より大きい) は、データ同期プロセスでメモリ不足 (OOM) エラーを引き起こす可能性があります。

No

1,024

Writer スクリプトデモ

{
    "type":"job",
    "version":"2.0",// バージョン番号。
    "steps":[
        {
            "stepType":"stream",
            "parameter":{},
            "name":"Reader",
            "category":"reader"
        },
        {
            "stepType":"gbase8a",// プラグイン名。
            "parameter":{
                "datasource": "Data source name",
                "username": "",
                "password": "",
                "column": [// フィールド。
                    "id",
                    "name"
                ],
                "connection": [
                    {
                        "table": [// テーブル名。
                            "Gbase8a_table"
                        ],
                        "datasource":""
                    }
                ],
                "preSql": [ // データ同期タスクの実行前に実行する SQL ステートメント。
                    "delete from @table where db_id = -1"
                ],
                "postSql": [// データ同期タスクの実行後に実行する SQL ステートメント。
                    "update @table set db_modify_time = now() where db_id = 1"
                ]
            },
            "name":"Writer",
            "category":"writer"
        }
    ],
    "setting":{
        "errorLimit":{
            "record":"0"// エラーレコード数。
        },
        "speed":{
            "throttle":true,// throttle を false に設定すると、mbps パラメーターは有効にならず、レート制限は課されません。throttle を true に設定すると、レート制限が課されます。
            "concurrent":1, // 同時実行ジョブ数。
            "mbps":"12"// レート制限。1 mbps = 1 MB/秒。
        }
    },
    "order":{
        "hops":[
            {
                "from":"Reader",
                "to":"Writer"
            }
        ]
    }
}

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

パラメーター

説明

必須

デフォルト値

datasource

データソースの名前。コードエディタはデータソースの追加をサポートしています。このパラメーターの値は、追加されたデータソースの名前と同じである必要があります。

Yes

None

table

データを書き込むテーブルの名前。JSON 配列を使用してテーブルを指定します。

説明

table パラメーターは connection 構成単位に含める必要があります。

Yes

None

column

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

説明

column パラメーターを指定する必要があります。空にすることはできません。

Yes

None

preSql

宛先テーブルにデータを書き込む前に、システムはここで指定された標準 SQL ステートメントを実行します。SQL ステートメントがテーブルに対して操作を行う必要がある場合、@table をプレースホルダーとして使用します。システムは、SQL ステートメントを実行する際に変数を実際のテーブル名に置き換えます。

No

None

postSql

宛先テーブルにデータを書き込んだ後、システムはここで指定された標準 SQL ステートメントを実行します。

No

None

batchSize

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

No

1,024