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

DataWorks:ClickHouse データソース

最終更新日:Mar 20, 2026

DataWorks の ClickHouse データソースでは、ClickHouse からの読み取りおよび ClickHouse への書き込みが可能です。本トピックでは、サポートされるデータ同期機能と必要な構成について説明します。

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

本データソースは、以下の ApsaraDB for ClickHouse カーネルバージョンおよびそれらに対応する Java Database Connectivity (JDBC) ドライバーのバージョンをサポートしています。

JDBC ドライバーのバージョン

ApsaraDB for ClickHouse カーネルのバージョン

0.2.4

20.8、21.8

0.4.0、0.4.2

22.8、23.8、25.3

制限事項

ClickHouse データソースは、バッチ読み取りおよびバッチ書き込み操作のみをサポートします。

  • サーバーレスリソースグループ を使用できます。

  • 接続は Java Database Connectivity (JDBC) を使用して確立され、データ読み取りは JDBC ステートメントに限定されます。

  • 列のフィルタリングおよび並べ替えが可能です。

  • ClickHouse への負荷を高めないよう、INSERT モードで ClickHouse Writer を使用する場合は、最大スループットを 1,000 トランザクション/秒 (TPS) に設定することを推奨します。

  • 単一の ClickHouse テーブルに対するバッチ同期は、ApsaraDB for ClickHouse のみでサポートされます。

サポートされるデータの型

以下の表には、サポートされている一般的な ApsaraDB for ClickHouse のデータ型を示します。ApsaraDB for ClickHouse のデータ型の完全な一覧については、「データ型」をご参照ください。このリストに含まれていない、公式のオープンソース ClickHouse ドキュメントからのデータ型はサポートされていません。オープンソースの ClickHouse データ型の完全な一覧については、「ClickHouse ドキュメント」をご参照ください。

ClickHouse Reader

ClickHouse Writer

Int8

サポート対象

サポート対象

Int16

サポート対象

サポート対象

Int32

サポート対象

サポート対象

Int64

サポート対象

サポート対象

UInt8

サポート対象

サポート対象

UInt16

サポート対象

サポート対象

UInt32

サポート対象

サポート対象

UInt64

サポート対象

サポート対象

Float32

サポート対象

サポート対象

Float64

サポート対象

サポート対象

Decimal

サポート対象

サポート対象

String

サポート対象

サポート対象

FixedString

サポート対象

サポート対象

Date

サポート対象

サポート対象

DateTime

サポート対象

サポート対象

DateTime64

サポート対象

サポート対象

Boolean

サポート対象

説明

ClickHouse にはネイティブのブール値型はありません。代わりに UInt8 または Int8 を使用できます。

サポート対象

Array

一部サポート対象

配列要素が整数型、浮動小数点型、文字列型、または DateTime64 型(ミリ秒精度)の場合のみサポートされます。

サポート対象

Tuple

サポート対象

サポート対象

Domain(IPv4,IPv6)

サポート対象

サポート対象

Enum8

サポート対象

サポート対象

Enum16

サポート対象

サポート対象

Nullable

サポート対象

サポート対象

Nested

一部サポート対象

ネストされたデータの型が整数型、浮動小数点型、文字列型、または DateTime64 型(ミリ秒精度)の場合のみサポートされます。

サポート対象

データソースの追加

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

データ同期

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

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

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

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

付録:スクリプトのサンプルとパラメーター

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

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

Reader スクリプトのサンプル

{
    "type": "job",
    "version": "2.0",
    "steps": [
        {
            "stepType": "clickhouse", // コネクタ名。
            "parameter": {
                "datasource": "example",
                "table": "source_table",  // ソーステーブル。
                "column": [           // 読み取る列。
                    "id",
                    "name"
                ],
                "where": "",          // フィルター条件。
                "splitPk": "",        // 並列読み取り用のシャードキー。
                "fetchSize": 1024     // 1 バッチあたりの取得レコード数。
            },
            "name": "Reader",
            "category": "reader"
        },
        {
            "stepType": "stream",
            "parameter": {},
            "name": "Writer",
            "category": "writer"
        }
    ],
    "setting": {
        "errorLimit": {
            "record": "0"  // 許容される不正データレコードの最大数。
        },
        "speed": {
            "throttle": true, // 速度制限を有効化するかどうかを指定。
            "concurrent": 1,  // ジョブの並行スレッド数。
            "mbps": "12"      // 最大転送レート(MB/s)。
        }
    },
    "order": {
        "hops": [
            {
                "from": "Reader",
                "to": "Writer"
            }
        ]
    }
}

Reader スクリプトのパラメーター

パラメーター

説明

必須

デフォルト値

datasource

DataWorks で作成した ClickHouse データソースの名前です。

はい

なし

table

データを読み取るソーステーブルです。

説明

tableconnection 構成ブロック内に含める必要があります。

はい

なし

fetchSize

データベースから 1 バッチあたりに取得するレコード数です。値を大きくするとネットワーク通信回数が減り、データ抽出のパフォーマンスが向上します。

説明

この値をあまり大きく設定すると、メモリ不足(OOM)エラーが発生する可能性があります。ご利用のリソース使用量および ClickHouse のワークロードに応じて、徐々に値を増加させることを推奨します。

いいえ

1024

column

ClickHouse から読み取る列です。列名はカンマで区切ります。例:"column": ["id", "name", "age"]

説明

column パラメーターは必須であり、空にすることはできません。

はい

なし

jdbcUrl

ソースデータベースへの Java Database Connectivity (JDBC) 接続文字列です。jdbcUrl パラメーターは connection 構成ユニットに含まれます。

  • データベースごとに 1 つの値のみ設定できます。

  • jdbcUrl の形式は、公式 ClickHouse の形式と一致します。その他のパラメーターを追加することもできます。例:jdbc:clickhouse://localhost:3306/test?user=root&password=&useUnicode=true&characterEncoding=gbk &autoReconnect=true&failOverReadOnly=false

はい

なし

username

データソースのユーザー名です。

はい

なし

password

データソースのユーザー名に対応するパスワードです。

はい

なし

splitPk

ClickHouse によるデータ抽出時に、splitPk を指定すると、splitPk で表されるフィールドに基づいてデータがシャード分割されます。その後、データ同期により並行タスクが開始され、同期効率が向上します。

説明

splitPk を設定する場合は、fetchSize パラメーターも必須です。

いいえ

なし

where

フィルター条件です。たとえば、当日分のデータを同期する場合は、where 条件を gmt_create>$bizdate に設定します。

where 条件を指定することで、増分同期が可能になります。where ステートメントを指定しない場合、または where のキーまたは値を指定しない場合は、フル同期が実行されます。

いいえ

なし

Writer スクリプトのサンプル

{
    "type": "job",
    "version": "2.0", // スクリプトのバージョン。
    "steps": [
        {
            "stepType": "stream",
            "parameter": {},
            "name": "Reader",
            "category": "reader"
        },
        {
            "stepType": "clickhouse", // コネクタ名。
            "parameter": {
                "datasource": "example_ch_writer", // ターゲットデータソースの名前。
                "column": [ // ターゲット列。
                    "id",
                    "name"
                ],
                "table": "target_table", // ターゲットテーブル。
                "preSql": [ // タスク実行前に実行する SQL ステートメント。
                    "TRUNCATE TABLE IF EXISTS target_table"
                ],
                "postSql": [ // タスク実行後に実行する SQL ステートメント。
                    "OPTIMIZE TABLE target_table FINAL"
                ],
                "batchSize": 1024, // 1 バッチあたりの書き込みレコード数。
                "writeMode": "insert"
            },
            "name": "Writer",
            "category": "writer"
        }
    ],
    "setting": {
        "errorLimit": {
            "record": "0" // 許容される不正データレコードの最大数。
        },
        "speed": {
            "throttle": true, // 速度制限を有効化するかどうかを指定。
            "concurrent": 1,  // ジョブの並行スレッド数。
            "mbps": "12"      // 最大転送レート(MB/s)。
        }
    },
    "order": {
        "hops": [
            {
                "from": "Reader",
                "to": "Writer"
            }
        ]
    }
}

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

パラメーター

説明

必須

デフォルト値

jdbcUrl

ターゲットデータベースへの JDBC 接続文字列です。jdbcUrl パラメーターは connection 構成ブロックに含まれます。

  • データベースごとに 1 つの値のみ設定できます。

  • jdbcUrl の形式は、公式 ClickHouse の形式と同じです。その他のパラメーターを追加することもできます。例:jdbc:clickhouse://127.0.0.1:3306/database

はい

なし

datasource

DataWorks で作成した ClickHouse データソースの名前です。

はい

なし

password

データソースのユーザー名に対応するパスワードです。

はい

なし

table

データを書き込むターゲットテーブルです。

説明

tableconnection 構成ブロック内に含める必要があります。

はい

なし

column

データを書き込むターゲット列です。列名を JSON 配列で指定します。例:"column": ["id", "name", "age"]

説明

column パラメーターは必須であり、空にすることはできません。

はい

なし

preSql

書き込みタスクの開始前に実行される SQL ステートメントです。

いいえ

なし

postSql

書き込みタスクの完了後に実行される SQL ステートメントです。

いいえ

なし

batchSize

1 バッチあたりの書き込みレコード数です。値を大きくすると、ClickHouse とのネットワーク通信回数が減り、全体的なスループットが向上します。

いいえ

1024