clickhousectl は、ローカル環境と Cloud の両方で ClickHouse を扱うための CLI です。
clickhousectl では、次のことができます。
- ローカルの ClickHouse バージョンをインストールして管理する
- ローカルの ClickHouse server を起動して管理する
- ローカルの Postgres インスタンスを起動して管理する
- ClickHouse server に対してクエリを実行する
- ClickHouse Cloud をセットアップし、Cloud 管理の ClickHouse クラスターを作成する
- ClickHouse Cloud の Postgres サービスを作成して管理する
- ClickHouse Cloud のリソースを管理する
- データ インジェスト用の ClickPipes を作成して管理する (S3、Kafka、Kinesis、Postgres、MySQL、MongoDB、BigQuery)
- 対応しているコーディングエージェントに、公式の ClickHouse agent スキルをインストールする
- ローカルの ClickHouse 開発環境を Cloud にプッシュする
clickhousectl は、人間と AI エージェントの両方による ClickHouse を使った開発を支援します。
インストール
クイックインストール
~/.local/bin/clickhousectl にインストールします。利便性のため、chctl のaliasも自動的に自動的に作成されます。
要件
- macOS (aarch64, x86_64) または Linux (aarch64, x86_64)
- Cloud コマンドの実行には、ClickHouse Cloud APIキー が必要です
ローカル
ClickHouse バージョンのインストールと管理
clickhousectl は builds.clickhouse.com から ClickHouse のバイナリをダウンロードし、そこにビルドがない場合は packages.clickhouse.com (Linux) または GitHub releases (macOS) から取得します。
local use は、選択したバージョンのバイナリを指す ~/.local/bin/clickhouse のシンボリックリンクも作成するため、通常の clickhouse コマンド (例: clickhouse local、clickhouse client) を PATH 経由で使えるようになります。スキップするには --no-global を指定します。そのパスに通常のファイルがすでに存在する場合は、警告を表示してそのまま残します。アクティブなデフォルトバージョンに対して local remove を実行すると、このシンボリックリンクも削除されます。
ClickHouseバイナリの保存先
~/.clickhouse/ に保存されます。
プロジェクトを初期化する
init は、現在の作業ディレクトリに ClickHouse および Postgres のプロジェクトファイル用の標準的なフォルダー構成を作成します。これは必須ではなく、必要に応じて独自のフォルダー構成を使用できます。
次の構成が作成されます。
クエリを実行する
ClickHouse サーバーの作成と管理
.clickhouse/servers/<name>/data/ に割り当てられます。
--name を指定しない場合、最初のサーバーの名前は “default” になります。“default” がすでに実行中であれば、ランダムな名前 (例: “bold-crane”) が生成されます。繰り返し起動/停止する際に同じ識別子を使いたい場合は、--name を使用してください。
ポート: デフォルトでは HTTP 8123 と TCP 9000 を使用します。これらがすでに使用中の場合は、空いているポートが自動的に割り当てられ、出力に表示されます。ポートを明示的に指定するには、--http-port と --tcp-port を使用してください。
グローバルなサーバー管理: list、stop、stop-all では --global を使用することで、システム全体の全プロジェクトを対象に操作できます。server list --global は、実行中のすべての ClickHouse サーバーを表示し、各サーバーがどのディレクトリに属しているかを示す Project カラムも表示します。
ローカルサーバー向けのカスタム設定ファイル
~/.clickhouse/configs/ に配置し、サーバーの起動時に名前を指定して適用します。
config.d 経由) ため、変更したい設定だけを含めればよく、完全な config を再現する必要はありません。ファイルは .xml、.yaml、.yml のいずれでもよく、拡張子の有無にかかわらず名前で参照できます。
プロジェクトローカルのデータディレクトリ
.clickhouse/ に保存されます。
clickhousectl local server remove <name> を使用します。
ローカルのPostgresを実行する
clickhousectl ではローカルのPostgresインスタンスを実行・管理することもできます。ローカルのPostgresはDocker上で動作するため、Dockerがインストールされ、起動している必要があります。各インスタンスは名前とメジャーバージョンで識別されるため、複数のPostgresバージョンをそれぞれ別のデータディレクトリで並行して実行できます。
認証
clickhousectl cloud auth signup を実行すると、ブラウザでサインアップページが開きます。
API キー/シークレット (推奨)
.clickhouse/credentials.json (プロジェクトローカル) に保存されます。
環境変数を使用することもできます。セッションで export する場合は次のとおりです:
.env ファイルに配置します:
OAuthログイン
.clickhouse/tokens.json に保存されます (プロジェクトローカル) 。
OAuth アクセスは現在 読み取り専用 で、あなたが所属するすべての組織 にアクセスできます。書き込みアクセスが必要な場合、または CLI の対象を 1 つの組織に限定する場合は、代わりに スコープ付き API キーを作成 してください。
認証ステータスとログアウト
.clickhouse/credentials.json > export 済みの環境変数 > .env ファイル > OAuth トークン。
使用された認証情報の取得元をデバッグする
cloudコマンドに--debugを指定すると、コマンドの実行前に、解決された認証情報の取得元 (および API URL) が stderr に出力されます。
Cloud
組織
サービス
サービス作成オプション
| オプション | 説明 |
|---|---|
--name | サービス名 (必須) |
--provider | クラウドプロバイダー: aws, gcp, azure (デフォルト: aws) |
--region | リージョン (デフォルト: us-east-1) |
--min-replica-memory-gb | レプリカあたりの最小メモリ (GB) (8~356、4 の倍数) |
--max-replica-memory-gb | レプリカあたりの最大メモリ (GB) (8~356、4 の倍数) |
--num-replicas | レプリカ数 (1~20) |
--idle-scaling | ゼロまでのスケールを許可 (デフォルト: true) |
--idle-timeout-minutes | アイドルタイムアウトの最小値 (分) (>= 5) |
--ip-allow | 許可する IP CIDR (複数回指定可能、デフォルト: 0.0.0.0/0) |
--backup-id | 復元元の Backup ID |
--release-channel | リリースチャネル: slow, default, fast |
--data-warehouse-id | データウェアハウス ID (読み取りレプリカ用) |
--readonly | サービスを読み取り専用にする |
--encryption-key | 顧客のディスク暗号化キー |
--encryption-role | ディスク暗号化用のロール ARN |
--enable-tde | 透過的データ暗号化を有効にする |
--compliance-type | コンプライアンス: hipaa, pci |
--profile | インスタンスプロファイル (enterprise) |
--tag | GA サービスタグ (key または key=value) を付与 |
--enable-endpoint / --disable-endpoint | GA サービスエンドポイント (現在は mysql) を切り替える |
--private-preview-terms-checked | 必要な場合はプライベートプレビューの利用規約に同意 |
--enable-core-dumps | サービスのコアダンプ収集を有効または無効にする |
Query API の認証モード
cloud service query は、clickhouse バイナリやサービスのパスワードを使わずに、HTTP 経由で Cloud サービスに対して SQL を実行するための標準的な方法です。どちらの認証モードにも対応しています。
- API キー認証 (SQL の読み取り + 書き込み) : 保存済みの API キーがないサービスに対して
cloud service queryを初めて実行すると、そのサービス用の Query API エンドポイントがプロビジョニングされ、それに紐づく専用の API キーが作成されます。この key (keyId、keySecret、endpointId) は、.clickhouse/credentials.jsonのservice_query_keys.<service-id>に保存されます。この key のスコープは 1 つのサービスに限定されるため、そのサービスに対する読み取りと書き込み (SELECT、INSERT、DDL) はできますが、組織内の他のサービスにはアクセスできません。プロビジョニングせずに失敗させるには、--no-auto-enableを指定します。 - OAuth (
cloud auth login) : クエリは、Web の SQL コンソールと同様に、ユーザー自身の identity として実行されます。OAuth 使用時のサービス上の SQL permissions は read-only です。Query API キーがプロビジョニングまたは保存されることはありません。このモードでは--no-auto-enableは効果がありません。
cloud service start を実行するよう案内するヒント付きで失敗します。生成された Query API ホストを上書きするには、CLICKHOUSE_CLOUD_QUERY_HOST を設定します。
クエリエンドポイントの管理
プライベート エンドポイントの管理
バックアップ設定
Postgres サービス
clickhousectl では、上記の ClickHouse サービス用コマンドと同様に、ClickHouse Cloud Postgres サービスの作成や管理も行えます。
Postgres サービスの作成オプション
| オプション | 説明 |
|---|---|
--name | サービス名 (必須) |
--region | リージョン (例: us-east-1、必須) |
--size | インスタンスサイズ (例: m7i.2xlarge、必須) |
--provider | クラウドプロバイダー (デフォルト: aws) |
--pg-version | メジャーバージョン: 18、17 |
--ha-type | 高可用性: none、async、sync |
--tag | リソースタグ key または key=value (繰り返し指定可能) |
--pg-config-file | PgConfig オブジェクトを含む JSON ファイルのパス |
--pg-bouncer-config-file | PgBouncerConfig オブジェクトを含む JSON ファイルのパス |
バックアップ
ClickPipes
ClickPipes の作成
clickpipe create の配下にそれぞれ固有のサブコマンドがあります。
clickhousectl cloud clickpipe create <source> --helpで確認してください。
メンバー
招待
キー
アクティビティ
JSON 出力
--json フラグを使用します。
clickhousectl は、コーディングエージェントのコンテキスト (Claude Code、Cursor、Codex、Gemini CLI、Goose、Devin、および標準の AGENT 環境変数を設定する任意のツール) を自動検出し、--json を指定しなくても JSON を stdout に自動的に出力します。
終了コード
gh CLI の慣例に従います。
| Code | Meaning |
|---|---|
0 | 成功 |
1 | エラー (以下のいずれにも分類されないもの) |
2 | キャンセル (ユーザーによる中止) |
4 | 認証が必要 (認証情報なし、401/403、OAuth 専用の書き込み) |
スキル
非対話型フラグ
| フラグ | 説明 |
|---|---|
--agent <name> | 特定のエージェント向けのスキルをインストールします (繰り返し指定可能) |
--global | グローバルスコープを使用します。省略した場合はプロジェクトスコープが使用されます |
--all | サポートされているすべてのエージェント向けのスキルをインストールします |
--detected-only | システム上で検出された、サポート対象のエージェント向けのスキルをインストールします |
セルフアップデート
clickhousectl は自身を最新リリースに更新できます。