SQL Console は、ClickHouse Cloud でデータベースの探索やクエリの実行を最もすばやく簡単に行える方法です。SQL Console では、次のことができます。
- ClickHouse Cloud サービスに接続する
- テーブルデータの表示、フィルタリング、ソートを行う
- 数回クリックするだけでクエリを実行し、結果データを可視化する
- クエリをチームメンバーと共有し、より効果的にコラボレーションする
ClickHouseインスタンスに含まれるテーブルの概要は、左側のサイドバーで確認できます。左側のバー上部にあるデータベースセレクターを使用すると、特定のデータベース内のテーブルを表示できます
一覧内のテーブルは展開して、カラムと型を表示することもできます
リスト内のテーブルをクリックすると、新しいタブで開きます。Table View では、データの表示、選択、コピーを簡単に行えます。Microsoft Excel や Google Sheets などのスプレッドシートアプリケーションにコピー&ペーストする場合でも、構造とフォーマットは保持されます。フッターのナビゲーションを使って、テーブルデータのページ (30行ごとにページ分割) を切り替えられます。
Cell Inspectorツールを使用すると、1つのセルに含まれる大量のデータを表示できます。開くには、セルを右クリックして「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 Console で新しいクエリを作成する方法は 2 つあります。
- タブバーの「+」ボタンをクリックします
- 左側のサイドバーのクエリ一覧から「New Query」ボタンを選択します
クエリを実行するには、SQL エディタに SQL コマンドを 1 つまたは複数入力し、[Run] ボタンをクリックするか、cmd / ctrl + enter ショートカットを使用します。複数のコマンドを順に記述して実行する場合は、各コマンドの末尾に必ずセミコロンを付けてください。
クエリ実行オプション
デフォルトでは、実行ボタンをクリックすると、SQL エディタ内のすべてのコマンドが実行されます。SQL Console では、このほかに 2 つのクエリ実行オプションを利用できます。
- 選択したコマンドを実行
- カーソル位置のコマンドを実行
選択したコマンドを実行するには、目的のコマンドまたは一連のコマンドを選択して [Run] ボタンをクリックします (または cmd / ctrl + enter ショートカットを使用します) 。選択範囲がある場合は、SQL エディタのコンテキストメニュー (エディタ内の任意の場所を右クリックして開きます) から [Run selected] を選択することもできます。
現在のカーソル位置のコマンドは、次の 2 つの方法で実行できます。
- 拡張実行オプションメニューから [At Cursor] を選択する (または、対応する
cmd / ctrl + shift + enter キーボードショートカットを使用する)
- SQL エディタのコンテキストメニューから [Run at cursor] を選択する
実行時には、カーソル位置にあるコマンドが黄色く点滅します。
クエリの実行中は、Query Editor ツールバーの ‘Run’ ボタンが ‘Cancel’ ボタンに変わります。クエリをキャンセルするには、このボタンをクリックするか、Esc キーを押します。注: すでに返された結果は、キャンセル後もそのまま表示されます。
クエリを保存すると、後で簡単に見つけられるほか、チームメンバーと共有しやすくなります。SQL Console では、クエリをフォルダーに整理することもできます。
クエリを保存するには、ツールバーで “Run” ボタンのすぐ隣にある “Save” ボタンをクリックします。任意の名前を入力し、“Save Query” をクリックします。
ショートカット cmd / ctrl + s を使って、現在のクエリタブでの作業内容を保存することもできます。
また、ツールバーの “Untitled Query” をクリックして名前を変更し、Enter キーを押すことで、クエリに名前を付けるのと同時に保存することもできます。
SQL Console では、チームメンバーとクエリを簡単に共有できます。SQL Console では、全体設定とユーザーごとの設定の両方で調整できる、4 段階のアクセスレベルをサポートしています。
- オーナー (共有オプションを変更可能)
- 書き込みアクセス
- 読み取り専用アクセス
- アクセスなし
クエリを保存したら、ツールバーの「Share」ボタンをクリックします。共有オプションを設定できるモーダルが表示されます。
サービスにアクセスできる組織内のすべてのメンバーに対するクエリのアクセス権を調整するには、最上部のアクセスレベルセレクターを変更します。
これを適用すると、そのサービスの SQL Console にアクセスできるすべてのチームメンバーが、そのクエリを表示 (および実行) できるようになります。
特定のメンバーに対するクエリのアクセス権を調整するには、「Add a team member」セレクターから対象のチームメンバーを選択します。
チームメンバーを選択すると、アクセスレベルセレクターを含む新しい項目が表示されます。
クエリが共有されている場合は、SQL Console の左側のサイドバーにある「Queries」タブに表示されます。
保存クエリにもパーマリンクが設定されるため、共有されたクエリへのリンクを送受信して、直接開くことができます。
クエリに含まれるパラメータの値は、自動的に保存クエリの URL にクエリパラメータとして追加されます。たとえば、クエリに {start_date: Date} と {end_date: Date} パラメータが含まれている場合、パーマリンクは次のようになります: https://console.clickhouse.cloud/services/:serviceId/console/query/:queryId?param_start_date=2015-01-01¶m_end_date=2016-01-01.
クエリを実行すると、結果ペインの検索入力を使って、返された結果セットをすばやく検索できます。この機能は、追加の WHERE 句を適用した場合の結果をプレビューしたり、特定のデータが結果セットに含まれていることを確認したりするのに役立ちます。検索入力に値を入力すると、結果ペインが更新され、入力した値に一致するエントリを含むレコードが返されます。この例では、ClickHouse を含むコメントについて、hackernews テーブル内の breakfast のすべての出現箇所を探します (大文字と小文字は区別されません) :
注: 入力した値に一致するフィールドがあるレコードは返されます。たとえば、上のスクリーンショットの 3 番目のレコードは by フィールドでは ‘breakfast’ に一致していませんが、text フィールドでは一致しています:
デフォルトでは、クエリ結果ペインにはすべての結果レコードが1ページに表示されます。結果セットが大きい場合は、見やすくするために結果をページ分けして表示する方が適していることがあります。これは、結果ペインの右下にあるページネーションセレクターを使用して設定できます。
ページサイズを選択すると、結果セットにすぐにページネーションが適用され、ナビゲーションオプションが結果ペインのフッター中央に表示されます
クエリ結果は、SQL Consoleから直接CSV形式で簡単にエクスポートできます。操作するには、結果ペインのツールバー右側にある•••メニューを開き、‘Download as CSV’ を選択します。
データによっては、チャートで表示したほうが把握しやすい場合があります。SQL Console から直接、クエリ結果データをもとに、数回クリックするだけで可視化をすばやく作成できます。ここでは例として、NYC のタクシー乗車の週次統計を計算するクエリを使用します:
SELECT
toStartOfWeek(pickup_datetime) AS week,
sum(total_amount) AS fare_total,
sum(trip_distance) AS distance_total,
count(*) AS trip_total
FROM
nyc_taxi
GROUP BY
1
ORDER BY
1 ASC
可視化しないと、これらの結果は解釈しづらくなります。チャートにしてみましょう。
可視化の作成を始めるには、クエリ結果ペインのツールバーで「Chart」オプションを選択します。チャート設定ペインが表示されます。
まず、week ごとの trip_total を表すシンプルな棒グラフを作成します。そのために、week フィールドを x 軸に、trip_total フィールドを y 軸にドラッグします。
ほとんどのチャートタイプでは、数値軸に複数のフィールドを設定できます。これを示すため、fare_total フィールドを y 軸にドラッグします。
SQL Console では、チャート設定ペインのチャートタイプセレクターから 10 種類のチャートタイプを選択できます。たとえば、前のチャートタイプを Bar から Area に簡単に変更できます。
チャートのタイトルは、データを提供するクエリ名に対応しています。クエリ名を変更すると、チャートのタイトルも更新されます。
さらに高度なチャートの設定も、チャート設定ペインの「Advanced」セクションで調整できます。まずは、次の設定を変更してみましょう。
これに応じて、チャートも更新されます。
場合によっては、各フィールドの軸スケールを個別に調整する必要があります。これは、チャート設定ペインの「Advanced」セクションで、軸の範囲に最小値と最大値を指定することで行えます。たとえば、上のチャートは見やすく表示されていますが、trip_total フィールドと fare_total フィールドの相関を示すには、軸の範囲を少し調整する必要があります。