メインコンテンツまでスキップ
メインコンテンツまでスキップ

SQLコンソール

SQLコンソールは、ClickHouse Cloudでデータベースを探索し、クエリを実行する最も迅速で簡単な方法です。SQLコンソールを使用して、以下のことができます。

  • ClickHouse Cloud Servicesに接続する
  • テーブルデータを表示、フィルタリング、並べ替える
  • クエリを実行し、結果データを数回のクリックで視覚化する
  • チームメンバーとクエリを共有し、より効果的にコラボレーションする

テーブルの探索

テーブルリストとスキーマ情報の表示

ClickHouseインスタンスに含まれるテーブルの概要は、左側のサイドバーエリアにあります。左側のバーの上部にあるデータベースセレクターを使用して、特定のデータベース内のテーブルを表示します。

リスト内のテーブルは、カラムやタイプを表示するために展開することもできます。

テーブルデータの探索

リスト内のテーブルをクリックすると、新しいタブで開きます。テーブルビューでは、データを簡単に表示、選択、コピーできます。Microsoft ExcelやGoogle Sheetsなどのスプレッドシートアプリケーションにコピー&ペーストするときに構造とフォーマットが保持されることに注意してください。フッターのナビゲーションを使用して、テーブルデータのページ間を切り替えられます(30行ずつページネーションされています)。

セルデータの検査

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

テーブルのフィルタリングとソート

テーブルのソート

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

SQLコンソールでは、テーブルに複数のソートを追加することもできます。もう一度「ソート」ボタンをクリックして、別のソートを追加します。注意:ソートは、ソートペインに表示される順序(上から下)で適用されます。ソートを削除するには、単にそのソートの横にある「x」ボタンをクリックします。

テーブルのフィルタリング

SQLコンソールでテーブルをフィルタリングするには、テーブルを開き、「フィルター」ボタンを選択します。ソートと同様に、このボタンをクリックすると、フィルタを設定するためのメニューが開きます。フィルタに使用するカラムを選択し、必要な基準を選択できます。SQLコンソールは、カラムに含まれるデータのタイプに応じたフィルタオプションを賢く表示します。

フィルタが満足いくものであれば、「適用」を選択してデータをフィルタリングできます。また、以下に示すように追加のフィルタを追加することもできます。

ソート機能と同様に、フィルタを削除するにはフィルタの横にある「x」ボタンをクリックします。

フィルタリングとソートの同時適用

SQLコンソールでは、テーブルを同時にフィルタリングおよびソートすることができます。これを行うには、上記の手順で必要なすべてのフィルタとソートを追加し、「適用」ボタンをクリックします。

フィルタおよびソートからクエリを作成

SQLコンソールでは、フィルタとソートを1クリックでクエリに変換できます。「クエリを作成」ボタンをツールバーから選択し、選択したソートおよびフィルタのパラメータを使用するだけです。「クエリを作成」をクリックすると、新しいクエリタブが開き、テーブルビューに含まれるデータに対応するSQLコマンドが事前に入力されます。

注記

「クエリを作成」機能を使用する際にフィルタやソートは必須ではありません。

SQLコンソールでのクエリについて詳しく学ぶには、(link) クエリ文書をお読みください。

クエリの作成と実行

クエリの作成

SQLコンソールで新しいクエリを作成する方法は2つあります。

  • タブバーの「+」ボタンをクリックする
  • 左側のサイドバーのクエリリストから「新しいクエリ」ボタンを選択する

クエリの実行

クエリを実行するには、SQLエディタにSQLコマンドをタイプし、「実行」ボタンをクリックするか、ショートカット cmd / ctrl + enter を使用します。複数のコマンドを順次書き込み、実行するには、それぞれのコマンドの後にセミコロンを追加してください。

クエリ実行オプション デフォルトでは、実行ボタンをクリックするとSQLエディタに含まれるすべてのコマンドが実行されます。SQLコンソールは、他の2つのクエリ実行オプションをサポートしています。

  • 選択したコマンドを実行
  • カーソル位置のコマンドを実行

選択したコマンドを実行するには、希望のコマンドまたはコマンドのシーケンスを強調表示して「実行」ボタンをクリックします(または cmd / ctrl + enter ショートカットを使用)。選択がある場合、SQLエディタのコンテキストメニュー(エディタ内の任意の位置を右クリックすることで開く)から「選択したコマンドを実行」を選択することもできます。

現在のカーソル位置でコマンドを実行するには、次の2つの方法が利用できます。

  • 拡張実行オプションメニューから「カーソル位置で実行」を選択する(または対応する cmd / ctrl + shift + enter キーボードショートカットを使用)
  • SQLエディタのコンテキストメニューから「カーソル位置で実行」を選択する
注記

カーソル位置にあるコマンドは、実行時に黄色に点滅します。

クエリのキャンセル

クエリが実行中の場合、クエリエディタツールバーの「実行」ボタンが「キャンセル」ボタンに置き換えられます。このボタンをクリックするか、 Esc キーを押すだけでクエリをキャンセルできます。注意:キャンセルされた後でも、すでに返された結果は維持されます。

クエリの保存

以前に名前が付けられていない場合、クエリの名前は「無題のクエリ」となります。クエリ名をクリックして変更します。クエリの名前を変更すると、そのクエリが保存されます。

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

GenAIを使用してクエリを管理する

この機能により、ユーザーは自然言語の質問としてクエリを書くことができ、クエリコンソールは利用可能なテーブルのコンテキストに基づいてSQLクエリを作成します。GenAIは、ユーザーがクエリをデバッグするのにも役立ちます。

GenAIの詳細については、ClickHouse CloudにおけるGenAIによるクエリ提案の発表ブログ投稿をご覧ください。

テーブルセットアップ

UK Price Paidのサンプルデータセットをインポートし、それを使用していくつかのGenAIクエリを作成しましょう。

  1. ClickHouse Cloudサービスを開きます。

  2. _+_アイコンをクリックして新しいクエリを作成します。

  3. 次のコードを貼り付けて実行します:

    このクエリが完了するのに約1秒かかります。完了すると、uk_price_paidという名前の空のテーブルが作成されます。

  4. 新しいクエリを作成し、次のクエリを貼り付けます:

このクエリは、gov.uk ウェブサイトからデータセットを取得します。このファイルは約4GBであるため、処理には数分かかります。ClickHouseがクエリを処理した後、uk_price_paid テーブル内に全データセットが格納されるでしょう。

クエリ作成

自然言語を使用してクエリを作成してみましょう。

  1. uk_price_paid テーブルを選択し、次に クエリを作成 をクリックします。

  2. SQLを生成 をクリックします。クエリがChat-GPTに送信されることを受け入れるよう求められることがあります。続行するには、同意します を選択する必要があります。

  3. 自然言語クエリを入力し、ChatGPTがそれをSQLクエリに変換するようにプロンプトを使用できます。この例では、次のように入力します:

    年別のすべてのuk_price_paid取引の合計価格と総数を示してください。

  4. コンソールは、私たちが探しているクエリを生成し、新しいタブに表示します。この例では、GenAIは次のクエリを作成しました:

  5. クエリが正しいことを確認したら、実行 をクリックして実行します。

デバッグ

次に、GenAIのクエリデバッグ機能をテストしてみましょう。

  1. + アイコンをクリックし、新しいクエリを作成して次のコードを貼り付けます:

  2. 実行 をクリックします。このクエリは失敗します。なぜなら pricee から値を取得しようとしているからです。

  3. クエリを修正 をクリックします。

  4. GenAIはクエリを修正しようとします。この場合、priceepriceに変更しました。また、toYearがこのシナリオで使用するのに適した関数であることに気付きました。

  5. 推奨された変更をクエリに追加するために 適用 を選択し、実行 をクリックします。

GenAIは実験的な機能であるため、生成されたクエリを任意のデータセットに対して実行する際には注意してください。

高度なクエリ機能

クエリ結果の検索

クエリを実行した後、結果ペインの検索入力を使用して返された結果セットを迅速に検索できます。この機能は、追加の WHERE 句の結果をプレビューしたり、特定のデータが結果セットに含まれていることを確認したりするのに役立ちます。検索入力に値を入力すると、結果ペインが更新され、入力した値に一致するレコードが返されます。この例では、hackernews テーブル内で ClickHouse を含むコメントのすべての breakfast インスタンスを探してみましょう。

注意:入力した値に一致する任意のフィールドが返されます。たとえば、上記のスクリーンショットにおける3番目のレコードは by フィールドで 'breakfast' と一致しませんが、text フィールドは一致します:

ページネーション設定の調整

デフォルトでは、クエリの結果ペインは、単一のページにすべての結果レコードを表示します。大きな結果セットの場合、簡単に表示できるようにページネーションを使用することが望ましい場合があります。これを行うには、結果ペインの右下隅にあるページネーションセレクターを使用します:

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

クエリ結果データのエクスポート

クエリ結果セットは、SQLコンソールから直接CSV形式に簡単にエクスポートできます。これを行うには、結果ペインツールバーの右側にある ••• メニューを開き、「CSVとしてダウンロード」を選択します。

クエリデータの視覚化

いくつかのデータは、チャート形式でより簡単に解釈できます。クエリ結果データから数回のクリックで視覚化を迅速に作成できます。例として、NYCタクシーの週間統計を計算するクエリを使用してみましょう:

視覚化なしでは、これらの結果は解釈するのが難しいです。これらをチャートに変換しましょう。

チャートの作成

視覚化を構築するには、クエリ結果ペインツールバーから「チャート」オプションを選択します。チャート配置ペインが表示されます:

trip_totalweek別に追跡するシンプルな棒グラフを作成することから始めましょう。これを達成するために、weekフィールドをx軸に、trip_totalフィールドをy軸にドラッグします:

ほとんどのチャートタイプは数値軸に複数のフィールドをサポートしています。示すために、fare_totalフィールドをy軸にドラッグします:

チャートのカスタマイズ

SQLコンソールは、チャート設定ペインのチャートタイプセレクターから選択できる10種類のチャートタイプをサポートしています。たとえば、以前のチャートタイプを棒グラフから面グラフに簡単に変更できます:

チャートタイトルは、データを提供するクエリの名前と一致します。クエリの名前を更新すると、チャートのタイトルも更新されます:

さらに多くの高度なチャート特性は、チャート配置ペインの「高度な」セクションで調整できます。まず、以下の設定を調整します:

  • サブタイトル
  • 軸タイトル
  • x軸のラベルの向き

チャートはそれに応じて更新されます:

いくつかのシナリオでは、各フィールドの軸スケールを独自に調整する必要がある場合があります。これもまた、チャート配置ペインの「高度な」セクションで、軸範囲の最小値と最大値を指定することで実現できます。たとえば、上記のチャートは良好に見えますが、trip_totalfare_totalフィールドの相関関係を示すためには、軸範囲を調整する必要があります:

クエリの共有

SQLコンソールを使用すると、チームとクエリを共有できます。クエリが共有されると、チームの全員がそのクエリを確認、編集できるようになります。共有クエリは、チームとのコラボレーションに激しく役立ちます。

クエリを共有するには、クエリツールバーの「共有」ボタンをクリックします。

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

いくつかのシナリオでは、各フィールドの軸スケールを独自に調整する必要がある場合があります。これもまた、チャート配置ペインの「高度な」セクションで、軸範囲の最小値と最大値を指定することで実現できます。たとえば、上記のチャートは良好に見えますが、trip_totalfare_totalフィールドの相関関係を示すためには、軸範囲を調整する必要があります: