# SQLの実行

MyScaleでは、SQLワークスペースを提供しており、SQLワークシートの編集、実行、保存、クエリ結果の表示ができます。

# SQLワークスペースを開く


SQLワークスペースは、サイドナビゲーションバーからアクセスできます。

# SQLワークスペースの使用方法

SQLワークスペースは、3つの主要な領域に分かれています。

  • 左側には**「オブジェクトビューア」**があり、データベースのテーブルやビューを閲覧することができます。オブジェクトを調査する前に、対応するクラスタを起動する必要があります。ビューアでオブジェクト(テーブルや列、データ型など)を選択することで、そのオブジェクトの特定の属性を調べることができます。
  • 右上部には**「エディタ」**があり、SQLステートメントの記述、SQLワークシートの保存、SQLステートメントの実行ができます。
  • 右下部には**「結果」**があり、現在のSQLステートメントの実行状態と結果を表示することができます。

SQLワークスペースの使用方法

# ワークスペース内のクラスタ操作

**「オブジェクトビューア」**では、SQLステートメントの実行に使用するクラスタの管理オプションが提供されています。ビューアの上部から、クラスタの切り替え、起動、停止を必要に応じて行うことができます。SQLステートメントを実行するための特定のクラスタを選択するには、クラスタ選択リストをクリックし、必要なオプションを選択します。

# エディタ

エディタは、SQLステートメントの整理に役立ちます。ワークシートは複数のクエリステートメントをサポートしていますが、各ステートメントはセミコロン(;)で終了する必要があります。

エディタ

# ステートメントの自動補完

エディタにSQLステートメントを入力すると、MyScaleがキーワードやオブジェクト名を提案します。Tab/Enterキーを押すと、リストの最初の提案された単語がステートメントに迅速に追加されます。または、矢印キーを使用してリストから別のアイテムを選択し、Tab/Enterキーを押すこともできます。

# フォーマット機能

「フォーマット」ボタンをクリックするか、ショートカットopt/alt+shift+fを使用して、エディタ全体をフォーマットすることができます。

エディタに長いコンテンツ(高次元ベクトルデータなど)を入力する場合は、フォーマット機能を使用することをおすすめします。これにより、エディタ内のインターフェースが整理され、SQLステートメントを簡単に確認および検査することができます。

フォーマット前:

フォーマット前

フォーマット後:

フォーマット後

# ワードラップモード

高次元ベクトルデータの全体像を便利に表示する場合は、ショートカットopt/alt+zを使用してワードラップモードをオンまたはオフに切り替えることができます。

ワードラップモードオフ:

ワードラップモードオフ

ワードラップモードオン:

ワードラップモードオン

# キーボードショートカット

キーボードアイコンをクリックすると、利用可能なキーボードショートカットが表示されます。または、キーボードショートカットページで完全なリストを参照することもできます。

キーボードショートカット

# ワークシートの実行

クエリを実行するには、SQLエディタにSQLコマンドを入力し、「実行」ボタンをクリックするか、ショートカットcmd/ctrl+enterを使用します。

クエリの実行オプション: デフォルトでは、「実行」ボタンを使用すると、選択したコマンドが実行されます。コマンドが選択されていない場合、MyScaleは自動的にSQLステートメントを分割し、カーソルがある位置でステートメントを実行します。

また、SQLエディタ内のすべてのコマンドを順番に実行する場合は、実行ボタンの右側にあるドロップダウンボタンをクリックし、「すべて実行」を選択することもできます(または、ショートカットcmd/ctrl+shift+enterを使用)。

# 結果の表示

SQLステートメントが実行されると、その状態が結果セクションに表示されます。

# 実行状態

SQLクエリには、実行中成功バックグラウンドキャンセルエラーの5つの実行状態があります。

各クエリには、デフォルトで最大実行時間制限があります。デフォルトでは、最大実行時間制限は30秒です。クエリがこの時間制限を超えると、次の2つのシナリオのいずれかが発生します。

  1. クエリがSELECTステートメントの場合、キャンセルされ、エラーが発生します。
  2. それ以外のすべてのステートメントはバックグラウンド状態に変換されます。このクエリの実行状態を監視する場合は、次のステートメントを使用してください。
SELECT * 
FROM clusterAllReplicas('{cluster}', system.query_log)
WHERE query_id='YOUR_QUERY_ID'
ORDER BY event_time_microseconds DESC
LIMIT 1;

YOUR_QUERY_ID実行統計情報で見つけることができます。

# クエリ結果

クエリが完了すると、結果セクションに最新のSQL実行結果とクエリ実行の統計情報が表示されます。

結果の表示

結果テーブルには最大で10,000行が表示されます。クエリが10,000行を超える場合は、結果のローカルディスクへのエクスポートセクションに従って結果をダウンロードしてすべての結果を取得することができます。

セルをクリックすると、そのセルの具体的な内容を表示することができます。

内容の表示

# 実行統計情報

統計情報タブを開くことで、クエリの実行統計情報を表示することができます。


項目 定義
クエリID 現在の操作のID
ユーザー この操作を作成したユーザー
実行時間 この操作の合計実行時間は、TransmissionとExecutionの2つのフェーズに分かれています
行数 クエリ結果が返す行数
終了時刻 操作が終了した時刻

項目 定義
Transmission Transmissionは、ネットワークの転送などの非実行タスクにかかる時間を指します。
Execution Executionは、データベースがクエリを実行するためにかかる時間を指します。

# 結果のローカルディスクへのエクスポート

クエリを実行した後、結果をローカルハードドライブにエクスポートするオプションがあります。

  • 以下の図に示すように、ダウンロードアイコンをクリックします。
  • .csv、.json、または.tsv形式でダウンロードすることができます。MyScaleは、選択に応じてファイルをブラウザのデフォルトのダウンロード場所にダウンロードします。

# ワークシートの保存

SQLステートメントが実行されるたびに、MyScaleは自動的に現在のワークシートの内容を保存します。いつでもどのデバイスからでもログインして、このワークシートの内容を確認することができます。