ClickHouseデータソースの設定
ClickHouseは列指向ストレージのデータベース管理システム(DBMS)で、高度に専門化されたモジュール型の設計とエンジン型のアーキテクチャを備えています。
ClickHouseは、次のような完全なデータ管理機能を提供しています:
- データの保存、クエリ、インデックス、レプリケーション、シャーディング、権限制御など。
- 標準SQL構文に対応(互換性は段階的に強化)。
- クライアントツール、ネットワークインターフェース(HTTP/TCP)、ユーザー管理など。
そのため、他のシステムに依存せず、独立したデータベースとして直接使用できます。
このドキュメントでは、ClickHouseのデータ同期機能の対応状況について説明します。
対応バージョン
clickhouse 24.0+
使用制限
現在、次の構成方法にのみ対応しています:
- AEプリセット倉庫の空間テーブルからClickHouseへの書き込み(オフライン書き込み)に対応
注:
- ClickHouseデータソースの読み取り(オフライン読み取り)には現在対応していません
対応するフィールドタイプ
ClickHouseのデータタイプの詳細については、オープンソース公式のデータタイプの説明を参照してください。
| フィールドタイプ | オフライン書き込み(Writer) |
|---|---|
| 数値タイプ | |
| Int8(tinyint) | 対応 |
| Int6(smallint) | 対応 |
| Int32(int) | 対応 |
| Int64(bigint) | 対応 |
| Float | 対応 |
| Decimal | 対応 |
| ブール型 | |
| Boolean | 対応 |
| 文字列タイプ | |
| String | 対応 |
| FixedString | 対応 |
| UUID | 未対応 |
| 時間タイプ | |
| Date | 対応 |
| DateTime | 対応 |
| DateTime64 | 対応 |
| 複合タイプ | |
| Array<boolean> | 対応 |
| Array<tinyint> | 対応 |
| Array<smallint> | 対応 |
| Array<integer> | 対応 |
| Array<bigint> | 対応 |
| Array<float> | 対応 |
| Array<double> | 対応 |
| Array<varchar> | 対応 |
| Tuple | 対応 |
| Enum | 対応 |
| Nested | 対応 |
| 特殊タイプ | |
| Nullable | 対応 |
| その他 | 未対応 |
ClickHouseデータソースの作成
データ開発プラットフォーム - バッチ統合 モジュールで、ClickHouseデータソースを追加を選択できます
データソース設定パラメータ情報
データソースに必要な設定情報を入力し、接続性テストが完了すると、ClickHouseデータソースを作成できます。
| フィールド名 | 説明 |
|---|---|
| 基本情報 | |
| *データソース名 | データ開発プラットフォームのスペース内で一意である必要があります。英字、数字、アンダースコアの組み合わせで、数字やアンダースコアで始めることはできません |
| 備考 | 任意 |
| データソース設定 | |
| 環境を区別しない / 独立環境構成 | いずれかを選択:「環境を区別しない」は本番環境と開発環境で1セットの構成を共用することを表し、「独立環境構成」は2つの環境をそれぞれ独立して設定することを表します |
| *サーバーアドレス/IP | Clickhouseデータベースがあるサーバーのアドレス。複数のアドレスはカンマで区切ってください |
| *ポート | ClickHouseへのアクセスに使用するポート |
| *データベース名 | ClickHouseで作成済みのデータベースの名前 |
| *ユーザー名 | データベースへのアクセス権限を持つユーザー名 |
| *パスワード | ユーザー名に対応するパスワード情報 |
| 高度な構成 | データベースへの接続に必要なその他の高度なパラメータ。自由に入力できます |
| 注:デフォルトはクラスタデプロイモード | |
パラメータ名の前に * が付いているものは必須パラメータ、* が付いていないものは任意パラメータです。
オフライン同期タスクの作成
上記の手順でClickHouseデータソースを作成し、接続性テストに成功したら、実際のシナリオに応じてClickHouseオフライン書き込みのタスクを設定できます。
データの流向としてのClickHouse
データの流向としてClickHouseを選択し、以下の関連パラメータを設定します:
| フィールド名 | 説明 |
|---|---|
| *ソースタイプ | データの流向のターゲットタイプとしてClickHouseを選択 |
| *データソース名 | データソース管理画面で登録済みのClickHouseデータソースを、ドロップダウンから選択できます。 対応するデータソースをまだ作成していない場合は、データソース管理 ボタンをクリックして、ClickHouseデータソースを作成できます。 |
| *データベース名 | 書き込み先のデータベース名 |
| *データテーブル名 | 書き込み先のデータテーブルの情報 |
| 分割フィールド | shardingKey。デプロイモードがクラスタで、かつinternal_replicationが有効になっている場合にのみ、シャーディング機能を有効にして分割フィールドを設定できます。インポート時には分割フィールドに基づいて並列インポートが行われます |
| *書き込みモード |
|
| 高度な構成 | バッチ処理件数などのパラメータによる制御に対応しています バッチ件数:1バッチで送信するデータ量。デフォルトは20000件 |
フィールド照合の説明
データソースとターゲット側の設定が完了したら、フィールド照合関係を作成する必要があります。システムは照合関係に従って、ソース側フィールドのデータを目標フィールドに自動的に同期します。フィールド照合関係の設定方法は3つあります:
- 方法1:カスタム選択。ソーステーブルのフィールドを選択し、目標テーブルの目標フィールドを選択します
- 方法2:同名照合。システムが、ソーステーブルと目標テーブルの同名フィールド間に照合関係を自動作成します
- 方法3:同行照合。システムが、同じ行のフィールド間に照合関係を自動作成します
1つの目標フィールドに対応できるソースフィールドは1つだけであることに注意してください
フィールドタイプの変換方法
データ同期時、システムはCAST()関数でソーステーブルのフィールドを型変換し、目標フィールドの型への変換を試みます。型変換に失敗した場合、目標フィールドの値はNULLに設定されます
データタイプ変換に関する特記事項
- √ は、該当するタイプ変換に対応していることを表します
- √, null は、該当するタイプ変換に対応しており、変換に失敗した場合はNULLに設定されることを表します
| ソースタイプ/目標タイプ | ROW | ARRAY | MAP | STRING | BOOLEAN | TINYINT | SMALLINT | INT | BIGINT | FLOAT | DOUBLE | DECIMAL | BYTES | DATE | TIMESTAMP | TIME |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ROW | √, null | |||||||||||||||
| ARRAY | √, null | |||||||||||||||
| MAP | √, null | |||||||||||||||
| STRING | √ | √, null | √, null | √, null | √, null | √, null | √, null | √, null | √, null | √, null | √, null | √, null | ||||
| BOOLEAN | √, null | √ | ||||||||||||||
| TINYINT | √, null | √ | √, null | √, null | √, null | |||||||||||
| SMALLINT | √, null | √, null | √ | √, null | √, null | |||||||||||
| INT | √, null | √, null | √, null | √ | √, null | |||||||||||
| BIGINT | √, null | √, null | √, null | √, null | √ | |||||||||||
| FLOAT | √, null | √ | √, null | √, null | ||||||||||||
| DOUBLE | √, null | √, null | √ | √, null | ||||||||||||
| DECIMAL | √, null | √, null | √, null | √ | ||||||||||||
| BYTES | √, null | √ | ||||||||||||||
| DATE | √, null | √ | √, null | |||||||||||||
| TIMESTAMP | √, null | √, null | √ | |||||||||||||
| TIME | √, null | √ |
基本情報の設定
最後に、統合プランの基本情報を設定する必要があります。プラン名、責任者、統合の同期速度、備考などが含まれます。
設定が完了したら、「保存」 ボタンをクリックして統合プランの作成を完了できます。
注:プラン名は保存後に変更できません
詳細ページの表示:
オフライン同期プランのタスクフローへのマウント
マウントされたタスクフロー
1.マウント手順を開始する
- 統合プランの詳細ページで、右上の「ジョブフローにマウントする」ボタンをクリックします
2.タスクフローを選択する
-
ドロップダウンメニューから対象のタスクフローを選択します
-
タスクフローを新規作成する場合:
- ドロップダウンメニューの下にある「タスクフローを新規作成」ショートカットボタンをクリックします
- または「開発」モジュールで作成します
-
ヒント:対象のタスクフローが表示されない場合は、右側の↻更新ボタンをクリックしてください
3.同期ノードを作成する
- タスクフロー内で「オフライン同期プラン」タイプのノードを新規作成します
- このノードは現在の統合プランに関連付けられ、ノードの実行時に対応する統合プランの実行がトリガーされます
4.マウントを完了する
- 「ノードを作成し、マウントします」をクリックして設定を完了します
- マウントに成功したら、「タスクフローに進む」をクリックしてマウント結果をすぐに確認できます
注:タスクフローへのマウントで作成されたタスクノードは 未リリース状態 です。タスクフローを確認し、そのノードをリリースして配信を開始することをお勧めします。
タスクフローのマウント解除
オフライン同期プランのタスクフローへのマウントを解除する場合:
- タスクフローがまだリリースされていない場合は、そのプランがマウントされているタスクフローに移動し、開発モード でその「オフライン同期プラン」タスクノードを削除するだけです。
- タスクフローがすでにリリースされている場合は、開発モード でその「オフライン同期プラン」タスクノードを削除した後、タスクフローを再リリースする必要があります。これにより、本番環境 でのそのノードのマウントも同時に解除されます。

