SQL コンソール
SQL コンソールは、ClickHouse Cloud 上のデータベースを調査し、クエリを実行するための最速かつ最も簡単な方法です。SQL コンソールを使用すると、次のことができます。
- ClickHouse Cloud のサービスに接続する
- テーブルデータを表示、フィルター、並べ替えする
- クエリを実行し、数回のクリックで結果データを可視化する
- クエリをチームメンバーと共有し、より効率的に共同作業を行う
テーブルの探索
テーブル一覧とスキーマ情報の表示
ClickHouse インスタンスに含まれるテーブルの概要は、左サイドバーで確認できます。左サイドバー上部のデータベースセレクタを使用して、特定のデータベース内のテーブルを表示します。

一覧のテーブルは展開して、カラムと型を表示することもできます。

テーブルデータの探索
一覧のテーブルをクリックすると、新しいタブで開きます。Table View では、データを簡単に表示・選択・コピーできます。Microsoft Excel や Google Sheets などのスプレッドシートアプリケーションにコピー&ペーストする際も、構造と書式は保持されます。フッターのナビゲーションを使用して、テーブルデータのページ(30 行単位でページ分割)を切り替えられます。

セルデータの検査
Cell Inspector ツールを使用すると、単一セル内に含まれる大量のデータを表示できます。開くには、セルを右クリックし、「Inspect Cell」を選択します。Cell Inspector の内容は、インスペクタ右上にあるコピーアイコンをクリックすることでコピーできます。

テーブルのフィルタリングとソート
テーブルをソートする
SQL Console でテーブルをソートするには、テーブルを開き、ツールバーの「Sort」ボタンを選択します。このボタンをクリックすると、ソートを設定できるメニューが開きます。ソート対象のカラムと、ソート順序(昇順または降順)を選択できます。「Apply」を選択するか Enter キーを押してテーブルをソートします。

SQL Console では、テーブルに複数のソート条件を追加することもできます。再度「Sort」ボタンをクリックして、別のソート条件を追加します。注意: ソートはソートペイン内に表示されている順番(上から下)で適用されます。ソートを削除するには、該当するソートの横にある「x」ボタンをクリックします。
テーブルをフィルタリングする
SQL Console でテーブルをフィルタリングするには、テーブルを開き、「Filter」ボタンを選択します。ソートと同様に、このボタンをクリックするとフィルタを設定できるメニューが開きます。フィルタ対象のカラムを選択し、必要な条件を指定できます。SQL Console は、カラムに含まれるデータ型に対応したフィルタオプションを自動的に表示します。

フィルタの内容に満足したら、「Apply」を選択してデータをフィルタリングできます。以下に示すように、フィルタを追加することも可能です。

ソート機能と同様に、フィルタを削除するにはフィルタの横にある「x」ボタンをクリックします。
フィルタリングとソートを同時に行う
SQL Console では、テーブルに対してフィルタリングとソートを同時に適用できます。これを行うには、上記の手順に従って必要なフィルタとソートをすべて追加し、「Apply」ボタンをクリックします。

フィルタとソートからクエリを作成する
SQL Console は、ソートとフィルタの設定をワンクリックでクエリに変換できます。ツールバーから、任意のソートおよびフィルタパラメータを指定した状態で「Create Query」ボタンを選択します。「Create query」をクリックすると、新しいクエリタブが開き、現在のテーブルビューの内容に対応した SQL コマンドがあらかじめ入力されています。

「Create Query」機能を使用する際に、フィルタやソートは必須ではありません。
SQL Console でのクエリの実行については、(link) のクエリに関するドキュメントを参照してください。
クエリの作成と実行
クエリの作成
SQL コンソールで新しいクエリを作成する方法は 2 つあります。
- タブバーの「+」ボタンをクリックする
- 左サイドバーのクエリ一覧から「New Query」ボタンをクリックする

クエリの実行
クエリを実行するには、SQL Editor に SQL コマンドを入力し、「Run」ボタンをクリックするか、ショートカット cmd / ctrl + enter を使用します。複数のコマンドを順番に記述して実行する場合は、各コマンドの末尾にセミコロンを付けてください。
クエリ実行オプション
デフォルトでは、「Run」ボタンをクリックすると SQL Editor 内に含まれるすべてのコマンドが実行されます。SQL コンソールでは、次の 2 つのクエリ実行オプションもサポートしています。
- 選択したコマンドを実行
- カーソル位置のコマンドを実行
選択したコマンドを実行するには、対象のコマンドまたはコマンドの並びを選択し、「Run」ボタンをクリックします(またはショートカット cmd / ctrl + enter を使用します)。選択範囲がある場合は、SQL Editor のコンテキストメニュー(エディタ内の任意の場所を右クリックして表示)から「Run selected」を選択することもできます。

現在のカーソル位置のコマンドを実行する方法は 2 つあります。
- 「Run」の拡張オプションメニューから「At Cursor」を選択する(または対応するキーボードショートカット
cmd / ctrl + shift + enterを使用する)

- SQL Editor のコンテキストメニューから「Run at cursor」を選択する

カーソル位置にあるコマンドは、実行時に黄色く点滅します。
クエリのキャンセル
クエリが実行中の場合、Query Editor ツールバーの「Run」ボタンは「Cancel」ボタンに置き換えられます。このボタンをクリックするか、Esc を押すだけでクエリをキャンセルできます。注意:すでに返されている結果は、キャンセル後も保持されます。

クエリの保存
まだ名前が付けられていない場合、クエリ名は「Untitled Query」になっています。クエリ名をクリックして変更してください。クエリ名を変更すると、そのクエリは保存されます。

保存ボタンや、キーボードショートカット cmd / ctrl + s を使用してクエリを保存することもできます。

GenAI を使用したクエリ管理
この機能を使用すると、ユーザーはクエリを自然言語の質問として記述でき、それに基づいてクエリコンソールが、利用可能なテーブルのコンテキストに沿った SQL クエリを生成します。GenAI はクエリのデバッグにも役立ちます。
GenAI の詳細については、Announcing GenAI powered query suggestions in ClickHouse Cloud blog post を参照してください。
テーブルのセットアップ
UK Price Paid のサンプルデータセットをインポートし、それを使っていくつかの GenAI クエリを作成します。
-
ClickHouse Cloud サービスを開きます。
-
+ アイコンをクリックして新しいクエリを作成します。
-
次のコードを貼り付けて実行します:
このクエリは完了までに約 1 秒かかるはずです。完了すると、
uk_price_paidという空のテーブルが作成されているはずです。 -
新しいクエリを作成し、次のクエリを貼り付けます:
このクエリは gov.uk ウェブサイトからデータセットを取得します。このファイルは約 4GB あるため、クエリの完了までに数分かかります。ClickHouse がクエリを処理し終えると、uk_price_paid テーブル内にデータセット全体が取り込まれているはずです。
クエリの作成
自然言語でクエリを作成してみましょう。
-
uk_price_paid テーブルを選択し、Create Query をクリックします。
-
Generate SQL をクリックします。クエリが ChatGPT に送信されることへの同意を求められる場合があります。続行するには I agree を選択する必要があります。
-
ここで、プロンプトに自然言語のクエリを入力し、ChatGPT に SQL クエリへ変換させることができます。この例では次のように入力します:
uk_price_paid のすべてのトランザクションについて、年ごとの合計価格と件数を表示してください。
-
コンソールは目的のクエリを生成し、新しいタブに表示します。この例では、GenAI により次のクエリが作成されました:
-
クエリ内容を確認して問題なければ、Run をクリックして実行します。
デバッグ
次に、GenAI のクエリデバッグ機能を試してみましょう。
- + アイコンをクリックして新しいクエリを作成し、次のコードを貼り付けます:
- Run をクリックします。
priceではなくpriceeから値を取得しようとしているため、クエリは失敗します。 - Fix Query をクリックします。
- GenAI がクエリの修正を試みます。この例では、
priceeをpriceに変更しました。また、このケースではtoYear関数を使用する方が適切であることも認識しました。 - 提案された変更をクエリに適用するために Apply をクリックし、Run をクリックします。
GenAI は実験的な機能であることに注意してください。GenAI によって生成されたクエリをいかなるデータセットに対して実行する場合も、十分注意して実行してください。
高度なクエリ機能
クエリ結果の検索
クエリを実行した後、結果ペイン内の検索ボックスを使って、返された結果セットを素早く検索できます。この機能は、追加の WHERE 句を適用した場合の結果をプレビューしたり、特定のデータが結果セットに含まれているかを確認したりする際に役立ちます。検索ボックスに値を入力すると、結果ペインが更新され、入力した値に一致するエントリを含むレコードが返されます。この例では、ClickHouse を含むコメントについて、hackernews テーブル内の breakfast が登場するすべての箇所を検索します(大文字小文字は区別しません):

注記: 入力した値に一致するフィールドを含むレコードはすべて返されます。たとえば、上のスクリーンショットの 3 つ目のレコードは by フィールドでは「breakfast」に一致していませんが、text フィールドは一致しています。

ページネーション設定の調整
デフォルトでは、クエリ結果ペインはすべての結果レコードを 1 ページに表示します。結果セットが大きい場合は、閲覧しやすくするために結果をページ分割した方がよいことがあります。これは、結果ペインの右下にあるページネーションセレクタを使用して行います:

ページサイズを選択すると、すぐに結果セットにページネーションが適用され、結果ペインのフッター中央にナビゲーションオプションが表示されます。

クエリ結果データのエクスポート
クエリ結果セットは、SQL コンソールから直接 CSV 形式に簡単にエクスポートできます。エクスポートするには、結果ペインのツールバー右側にある ••• メニューを開き、「Download as CSV」を選択します。

クエリデータの可視化
一部のデータは、チャート形式にするとより理解しやすくなります。SQL コンソールからクエリ結果データを直接利用し、数回クリックするだけで素早く可視化を作成できます。例として、NYC タクシー乗車の週次統計を計算するクエリを使用します。

可視化しないと、これらの結果を解釈するのは困難です。チャートにしてみましょう。
チャートの作成
可視化の作成を開始するには、クエリ結果ペインのツールバーから「Chart」オプションを選択します。チャート設定ペインが表示されます。

まずは、week ごとの trip_total を追跡するシンプルな棒グラフを作成します。これを行うには、week フィールドを x 軸に、trip_total フィールドを y 軸にドラッグします。

ほとんどのチャートタイプでは、数値軸に複数のフィールドを設定できます。例として、fare_total フィールドを y 軸にドラッグしてみます。

チャートのカスタマイズ
SQL コンソールでは 10 種類のチャートタイプをサポートしており、チャート設定ペイン内のチャートタイプセレクタから選択できます。たとえば、先ほどのチャートタイプを「Bar」から「Area」に簡単に変更できます。

チャートタイトルは、データを提供しているクエリ名と一致します。クエリ名を更新すると、チャートタイトルも同様に更新されます。

より高度なチャートの特性も、チャート設定ペインの「Advanced」セクションで調整できます。ここでは、次の設定を調整します。
- サブタイトル
- 軸タイトル
- x 軸のラベルの向き
チャートはそれに応じて更新されます。

シナリオによっては、各フィールドごとに軸のスケールを個別に調整する必要がある場合があります。これは、チャート設定ペインの「Advanced」セクションで軸範囲の最小値および最大値を指定することで行えます。例として、上記のチャートは見た目には問題ありませんが、trip_total フィールドと fare_total フィールドの相関関係を示すには、軸範囲を少し調整する必要があります。

クエリの共有
SQL コンソールでは、クエリをチームと共有できます。クエリを共有すると、チームの全メンバーがそのクエリを閲覧および編集できるようになります。共有クエリは、チームで共同作業を行うための有効な手段です。
クエリを共有するには、クエリツールバーの「Share」ボタンをクリックします。

ダイアログが開き、チームの全メンバーとクエリを共有できるようになります。複数のチームがある場合は、どのチームとクエリを共有するかを選択できます。



状況によっては、各フィールドごとに軸のスケールを個別に調整する必要がある場合があります。これは、チャート設定ペインの「Advanced」セクションで軸範囲の最小値と最大値を指定することで実行できます。たとえば、上記のチャートは見た目には問題ありませんが、trip_total フィールドと fare_total フィールド間の相関関係を示すためには、軸の範囲を少し調整する必要があります。
