system テーブルを調査して SQL を実行するための iOS/iPadOS クライアントです。デバイスのネットワーク経由または SSH 踏み台サーバー経由で ClickHouse HTTP インターフェイスに接続でき、リレーサーバーは不要です。
始める前に
- App StoreからProbeDeckをインストールします。
- iOSまたはiPadOS 17.0以降を使用します。
- ネットワーク、VPN、または SSH踏み台サーバー経由で、デバイスからClickHouseのHTTPまたはHTTPSエンドポイントに到達できるようにします。
- クエリ対象のデータベースにアクセスできるClickHouseユーザーを作成します。
- 監視に必要な
systemテーブルに対するSELECT権限をユーザーに付与します。
一部の監視セクションは、任意のログテーブルや新しいシステムテーブルに依存しています。たとえば、
ProbeDeckが設定済みのメモリ制限の取得に使用する
system.server_settingsには、ClickHouse
23.3以降が必要です。ログソースが使用不可の場合、ProbeDeckは該当するセクションを制限付きとして表示します。
仕組み
- ProbeDeck は ClickHouse の HTTP(S) エンドポイントに SQL リクエストを送信します。
- 設定済みの ClickHouse ユーザーを使用して、
systemテーブルから監視データを読み取ります。 - アプリはデバイス上にクエリ結果と監視ビューを表示します。デバイスからエンドポイントへの直接経路がない場合は、SSH 踏み台サーバー経由で 同じ HTTP(S) 接続を中継できます。
ClickHouse Cloud への接続
1
サービスの接続情報を確認する
ClickHouse Cloud console でサービスを開き、Connect を選択して HTTPS を選択します。HTTP(S) で ClickHouse に接続するには、次の情報が必要です。
HTTPS を選択します。接続情報は 
セルフマネージド ClickHouse を使用している場合、接続情報は ClickHouse 管理者によって設定されます。
ClickHouse Cloud サービスの詳細は、ClickHouse Cloud コンソールで確認できます。
サービスを選択し、Connect をクリックします。

curl コマンドの例として表示されます。
2
ProbeDeck に接続を追加する
- Connections 画面で + をタップします。
- 接続名と、
https://を除いたホストを入力します。 - Port を
8443に設定し、TLS をオンにします。 - Connect ダイアログに表示されるデータベースのユーザー名とパスワードを入力します。データベース名は 任意です。
- Test Connection をタップします。接続テストに成功すると、ProbeDeck にサーバーバージョンと往復時間が表示されます。
- Save をタップします。
セルフホストの ClickHouse に接続する
1
HTTP エンドポイントを選択する
デフォルトの暗号化されていない HTTP インターフェイスには、ポート
8123 を使用します。HTTPS を使用する場合は、TLS を有効にし、
サーバーに設定されているポートを使用します。一般的には 8443 が使用されます。ポート
9000 と 9440 は、ネイティブ ClickHouse プロトコル用です。ProbeDeck は HTTP(S)
インターフェイスを使用するため、サーバーの HTTP ポートを入力してください。2
接続を追加してテストする
- Connections 画面で、+ をタップします。
- URL スキームを含めずにサーバーのホスト名を入力します。
- HTTP(S) ポートと TLS オプションを設定します。
- ClickHouse のユーザー名、パスワード、および任意のデータベースを入力します。
- Test Connection をタップし、次に Save をタップします。
SSH 踏み台サーバー経由で接続する
- 踏み台サーバーのホスト名と SSH ポート (デフォルトは
22) 。 - SSH ユーザー名。
- SSH パスワードまたは秘密鍵。
direct-tcpip チャネルを開きます。初回接続時には、踏み台サーバーの SHA-256 ホストキー
フィンガープリントを受け入れる前に、サーバー管理者から取得した値と照合してください。
認証と TLS を設定する
X-ClickHouse-User および
X-ClickHouse-Key リクエストヘッダーで送信します。認証情報を URL に含めることはありません。
相互 TLS を使用するには、TLS Client Certificate を有効にし、クライアント証明書と秘密鍵を含む
PKCS#12 (.p12) ファイルをインポートして、そのパスフレーズを入力します。
セルフホストのエンドポイントが自己署名証明書またはプライベート CA が発行した証明書を提示した場合、
ProbeDeck は SHA-256 フィンガープリント、発行者、subject、有効期間を表示します。受け入れる前に、
フィンガープリントをサーバー管理者から提供された値と照合してください。ProbeDeck はこの判断をその
接続に紐付けます。証明書が変更されると、確認するまで接続は停止します。
ProbeDeck は、接続のシークレットとインポートした鍵素材をデバイス上の iOS Keychain に保存します。
ClickHouse を監視する
実行中のクエリをタップすると、アクティブなクエリを経過時間順にソートし、メモリ使用量と読み取り行数を確認できます。
UK property price dataset をクエリする
uk_price_paid にロードしたら、次の操作を行います。
- 接続を開き、Data を選択します。
- SQL エディタを開きます。
- 範囲が限定された読み取り専用クエリを実行します。
既知の制限事項
- ProbeDeck は iOS および iPadOS 17.0 以降で動作します。
- 無料ユーザーが保存できる接続は一度に 1 つです。削除すると枠が空きます。ProbeDeck Pro では 保存済み接続を無制限に利用できます。
- ネイティブプロトコルではなく、ClickHouse の HTTP(S) インターフェイスをサポートしています。
- ProbeDeck は SQL の結果を 200 行単位で読み込み、各リクエストは最大 10,000 行に制限されます。大規模な
テーブルでは、絞り込み条件を指定した
WHERE句とLIMITを使用してください。 - 監視で確認できる情報は、ClickHouse ユーザーの権限と任意のログテーブルによって異なります。
- デバイスからエンドポイントへの経路が、ネットワーク、VPN、または組み込みの SSH トンネル経由で確保されている必要があります。
- 監視と読み取り専用 SQL にアプリ内課金は必要ありません。
KILL QUERY、KILL MUTATION、 書き込みおよび DDL ステートメント、その他の運用操作には ProbeDeck Pro が必要です。
トラブルシューティング
認証に失敗しました
認証に失敗しました
データベースのユーザー名とパスワードを再度コピーしてください。ClickHouse Cloud サービスエンドポイントには、サービスの Connect ダイアログに表示される
データベース認証情報を使用します。ClickHouse Cloud API Keys ページにある組織レベルの
キーは使用しないでください。
接続が拒否された、またはタイムアウトしました
接続が拒否された、またはタイムアウトしました
デバイスからホストおよび HTTP(S) ポートに到達できることを確認してください。Cloud IP アクセスリスト、VPN、
ファイアウォール、ポートマッピングを確認してください。ネイティブプロトコルのポート
9000 または 9440 は使用しないでください。監視で権限が制限されていると表示される
監視で権限が制限されていると表示される
ClickHouse ユーザーに、必要な
system テーブルの一部またはすべてを読み取る権限がありません。サーバー管理者に、
使用予定の監視領域に必要な最小限の SELECT 権限の付与を依頼し、その後再接続してください。TLS フィンガープリントが変更された
TLS フィンガープリントが変更された
新しいフィンガープリントを受け入れる前に、サーバー管理者に証明書のローテーションを確認してもらってください。予期しない変更は、別の
エンドポイントや TLS インターセプト経路を示している可能性があります。
次のステップ
- 製品固有の詳細については、ProbeDeck のウェブサイトを参照してください。
- サーバー設定については、ClickHouse HTTP インターフェイスのドキュメントを参照してください。