クエリエディタ v2 の操作 - Amazon Redshift

クエリエディタ v2 の操作

クエリエディタ v2 は、主にクエリの編集と実行、結果の視覚化、チームとの作業の共有に使用されます。クエリエディタ v2 を使用すると、データベース、スキーマ、テーブル、およびユーザー定義関数 (UDF) を作成できます。ツリービューパネルでは、各データベースのスキーマが表示されます。スキーマごとに、テーブル、ビュー、UDF、および保存する手順が表示されます。

クエリエディタ v2 を開く

クエリエディタ v2 を開くには

  1. AWS Management Console にサインインして、(https://console.aws.amazon.com/redshift/)でAmazon Redshift コンソール を開きます。

  2. ナビゲーターメニューで、[エディタ]、次に [クエリエディタ V2] を選択します。新しいブラウザでクエリエディタ v2 が開きます。

クエリエディタページには、次のようにビューを選択するナビゲータメニューがあります。

データベース 
                            Database

テーブルとして編成され、データベースに含まれるデータを管理およびクエリします。データベースには、保存されたデータを格納することも、Amazon S3 などの他の場所に格納されたデータへの参照を含めることもできます。クラスターまたはサーバーレスワークグループに含まれるデータベースに接続します。

[データベース] ビューで操作する場合、次のコントロールがあります。

  • [Cluster] (クラスター) または [Workgroup] (ワークグループ) フィールドには、現在接続されている名前が表示されます。[Database] (データベース) フィールドには、クラスターまたはワークグループ内のデータベースが表示されます。[データベース] ビューで実行するアクションは、デフォルトでは選択したデータベースに対して動作します。

  • クラスター、データベース、スキーマのツリービュー階層ビュー。スキーマでは、テーブル、ビュー、関数、および保存する手順を操作できます。ツリービューの各オブジェクトにはコンテキストメニューが用意されており、そのオブジェクトに関連するアクション ([更新] または [ドロップ]など) を実行できます。

  • 
                                    Create [作成] アクションを使用して、データベース、スキーマ、テーブル、および関数を作成します。

  • 
                                    Load [Load data] (データのロード) アクションは、Amazon S3 からデータをデータベースにロードします。

  • 
                                    Save 保存 アイコンをクリックすると、クエリを保存できます。

  • 
                                    Shortcuts ショートカット アイコンをクリックすると、エディタのキーボードショートカットが表示されます。

  • クエリを入力および実行できる 
                                    Editor [Editor] (エディタ) 領域。

    クエリを実行した後、[結果] タブが表示され、結果が表示されます。ここで [チャート] をオンにすると、結果を視覚化できます。また、結果を[Export] (エクスポート) できます。

  • セクションを追加して SQL を入力および実行するか、[Markdown] (マークダウン) を追加できる
                                    Notebook [Notebook] (ノートブック) 領域。

    クエリを実行した後、[結果] タブが表示され、結果が表示されます。ここで結果を[Export] (エクスポート) できます。

クエリ 
                            Queries

クエリには、データベース内のデータを管理およびクエリする SQL コマンドが含まれています。クエリエディタ v2 を使用してサンプルデータをロードすると、サンプルクエリが作成され、保存されます。保存したクエリをチームと共有できます。

ノートブック 
                            Notebooks

SQL ノートブックには、SQL セルと Markdown セルが含まれています。ノートブックを使用して、1 つのドキュメント内で複数の SQL コマンドを編成、注釈付け、共有できます。SQL ノートブックをチームと共有できます。詳細については、「SQL ノートブックの操作 (プレビュー)」を参照してください。

チャート 
                            Chart

チャートは、データの視覚的な表示です。クエリエディタ v2 には、さまざまなタイプのチャートを作成して保存するためのツールが用意されています。チャートをチームと共有できます。詳細については、「クエリ結果の視覚化」を参照してください。

履歴 
                            History

クエリ履歴は、Amazon Redshift クエリエディタ v2 を使用して実行されたクエリの一覧です。これらのクエリは、個別のクエリまたは SQL ノートブックの一部として実行されます。詳細については、「クエリとタブの履歴を表示する」を参照してください。

すべてのクエリエディタ v2 ビューには次のアイコンがあります。

  • 
                    Visual mode [Visual mode] (ビジュアルモード) アイコンをクリックすると、ライトモードとダークモードが切り替わります。

  • 
                    Settings [Settings] (設定) アイコンをクリックすると、さまざまな設定画面のメニューが表示されます。

    • 
                            Editor preferences [Editor preferences] (エディタの環境設定) アイコンをクリックすると、クエリエディタ v2 を使用するときに、設定を編集できます。

    • 
                            Connections [Connections] (接続) アイコンをクリックすると、エディタタブで使用されている接続が表示されます。

      接続は、データベースからデータを取得するために使用されます。接続は、特定のデータベースに対して作成されます。分離された接続では、あるエディタタブで一時テーブルを作成するなど、データベースを変更する SQL コマンドの結果は、別のエディタタブに表示されません。クエリエディタ v2 でエディタタブを開くとき、デフォルトは分離された接続です。共有接続を作成するとき、つまり、分離されたセッションスイッチをオフにすると、同じデータベースへの他の共有接続の結果が相互に表示されます。ただし、データベースへの共有接続を使用するエディタタブは並列で実行されません。同じ接続を使用するクエリは、接続が使用可能になるまで待機する必要があります。あるデータベースへの接続は別のデータベースと共有できないため、SQL の結果は異なるデータベース接続では表示されません。

      アカウント内のユーザーがアクティブにできる接続の数は、クエリエディタ v2 管理者によって制御されます。

    • 
                            Account settings [Account settings] (アカウント設定) アイコンは、アカウント内のすべてのユーザーの特定の設定を変更するために管理者が使用します。詳細については、「アカウント設定の変更」を参照してください。

Amazon Redshift データベースに接続する

データベースに接続するには、ツリービューパネルでクラスターまたはワークグループ名を選択します。プロンプトが表示されたら、接続パラメータを入力します。

クラスターまたはワークグループとそのデータベースに接続するときは、[Database] (データベース) 名を指定します。また、次の認証方法のいずれかに必要なパラメータも指定します。

フェデレーティッドユーザー

この方法では、IAM ロールまたは IAM ユーザーのプリンシパルタグに接続の詳細が含まれている必要があります。これらのタグは、AWS Identity and Access Managementまたは ID プロバイダー (IdP) で設定します。クエリエディタ v2 では、次のタグを使用します。

  • RedshiftDbUser — このタグは、クエリエディタ v2 で使用されるデータベースユーザーを定義します。このタグは必須です。

  • RedshiftDbGroups — このタグは、クエリエディタ v2 に接続する場合に結合されるデータベースグループを定義します。このタグはオプションであり、その値は group1:group2:group3 のようにコロンで区切る必要があります。空の値は無視されます。つまり、group1::::group2group1:group2 と解釈されます。

これらのタグは、クラスターの認証情報を取得するために redshift:GetClusterCredentials API に転送されます。詳細については、「フェデレーションユーザーとしてクエリエディタ v2 に接続するためのプリンシパルタグの設定」を参照してください。

データベースユーザー名とパスワード

この方法では、接続先のデータベースのユーザー名パスワードも指定します。クエリエディタ v2 は、ユーザーに代わり、AWS Secrets Managerに保存するシークレットを作成します。この秘密には、データベースに接続するための認証情報が含まれます。

一時認証情報

この方法では、クエリエディタ v2 によって、データベースのユーザー名を指定され、データベースに接続するための一時パスワードが生成されます。

クエリエディタ v2 でクラスターまたはワークグループを選択すると、コンテキストに応じて、コンテキスト (右クリック) メニューを使用して接続を作成、編集、削除できます。

Amazon Redshift データベースの閲覧

データベース内では、ツリービューパネルでスキーマ、テーブル、ビュー、関数、および保存する手順を管理できます。ビュー内の各オブジェクトには、コンテキスト メニュー (右クリック) でアクションが関連付けられます。

階層ツリービューパネルには、データベースオブジェクトが表示されます。ツリービューパネルを更新して、ツリービューが最後に表示された後で作成された可能性があるデータベースオブジェクトを表示するには、
                        Refresh アイコンを選択します。オブジェクトを右クリックしてコンテキストメニューを開き、実行できるアクションを確認します。


                    Tree-view icons

テーブルを選択すると、次の操作を実行できます。

  • テーブル内のすべての列をクエリする SELECT ステートメントを使用してエディタでクエリを開始するには、[テーブルを選択] を使用します。

  • 属性またはテーブルを表示するには、[Show table definition] (テーブル定義を表示) を使用します。これを使用して、列名、列型、エンコーディング、分散キー、ソートキー、および列に Null 値を含めることができるかどうかを表示します。テーブル属性の詳細については、「Amazon Redshift データベースデベロッパーガイド」の「CREATE TABLE」を参照してください。

  • テーブルを削除するには、[削除] を使用します。テーブルからすべての行を削除するには [Truncate table] (テーブルの切り捨て) 、データベースからテーブルを削除するには [テーブルの削除] を使用します。詳細については、「Amazon Redshift データベースデベロッパーガイド」の「TRUNCATEDROP TABLE」を参照してください。

[スキーマ] を選択し、スキーマを [更新] または [削除] します。

[ビュー定義を表示] または [ドロップ ビュー] のビューを選択します。

関数を選択し、[Show function definition] (関数定義を表示) または [Drop function] (関数を削除) します。

保存する手順を選択して [Show procedure definition] (手順定義を表示) または [Drop procedure] (手順を削除) します。

データベースオブジェクトの作成

データベース、スキーマ、テーブル、およびユーザー定義関数 (UDF) など、データベースオブジェクトを作成できます。データベースオブジェクトを作成するには、クラスターまたはワークグループとデータベースに接続している必要があります。

データベースを作成する

この他のコマンドオプションについては、「Amazon Redshift データベースデベロッパーガイド」の「CREATE DATABASE」を参照してください。

  1. 
                        Create[作成] を選択し、次に [データベース] を選択します。

  2. [データベース名] を入力します。

  3. (任意) [ユーザーとグループ] を選択し、[データベースユーザー] を選択します。

  4. [データベースの作成] を選択します。

    ツリービューパネルに新しいデータベースが表示されます。

スキーマを作成するには

スキーマについては、「Amazon Redshift データベースデベロッパーガイド」の「スキーマ」を参照してください。

  1. 
                        Create[作成]を選択し、[スキーマ] を選択します。

  2. [スキーマ名] を入力します。

  3. [Local] (ローカル) または[External] (外部) を [Schema type] (スキーマタイプ) として選択します。

    ローカルスキーマの詳細については、Amazon Redshift データベースデベロッパーガイドの「スキーマの作成」を参照してください。外部スキーマの詳細については、Amazon Redshift データベースデベロッパーガイドの「外部スキーマの作成」を参照してください。

  4. [External] (外部) を選択すると、外部スキーマの次の選択肢があります。

    • Glue データカタログ — AWS Glue 内のテーブルを参照する外部スキーマを Amazon Redshift に作成します。AWS Glue データベースを選択する以外に、クラスターに関連付けられた IAM ロールとデータカタログに関連付けられた IAM ロールを選択します。

    • PostgreSQL — Amazon Redshift で、Amazon RDS for PostgreSQL または Amazon Aurora PostgreSQL-Compatible Edition データベースを参照する外部スキーマを作成します。データベースの接続情報も提供します。詳細については、Amazon Redshift データベースデベロッパーガイドの「フェデレーテッドクエリを使用したデータのクエリ」を参照してください。

    • MySQL — Amazon Redshift で、Amazon RDS for MySQL または Amazon Aurora MySQL-Compatible Edition データベースを参照する外部スキーマを作成します。データベースの接続情報も提供します。フェデレーティッドクエリの詳細については、「Amazon Redshift データベースデベロッパーガイド」の「フェデレーテッドクエリを使用したデータのクエリ」を参照してください。

  5. [スキーマの作成] を選択します。

    ツリービューパネルに新しいスキーマが表示されます。

テーブルを作成するには

テーブルの各列を指定または定義するカンマ区切り値 (CSV) ファイルに基づいてテーブルを作成できます。テーブルの詳細については、「Amazon Redshift データベースデベロッパーガイド」の「テーブル設計」と「CREATE TABLE」を参照してください。

[エディタでクエリを開く] をクリックして [CREATE TABLE] のステートメントを表示して編集してから、クエリを実行してテーブルを作成します。

  1. 
                        Create[Create] (作成)、[Table] (テーブル) の順に選択します。

  2. スキーマを選択します。

  3. テーブル名を入力します。

  4. 
                                Create
                            [フィールドの追加] を選択して列を追加します。

  5. CSV ファイルをテーブル定義のテンプレートとして使用します。

    1. [CSV からロードする] を選択します。

    2. ファイルの場所をブラウズします。

      CSV ファイルを使用する場合は、ファイルの最初の行に列見出しが含まれていることを確認してください。

    3. ファイルを選択し、[開く] を選択します。列の名前とデータ型が意図したものであることを確認します。

  6. 各列について、列を選択し、必要なオプションを選択します。

    • [エンコード] の値を選択します。

    • [デフォルト値] を選択します。

    • 列の値を増分させたい場合は、[Automatically increment] (自動増分) をオンにします。次に、[Auto increment seed] (自動増分シード) と [Auto increment step] (自動増分ステップ) の値を指定します。

    • 列が常に値を含む必要がある場合は、[Not NULL] をオンにします。

    • 列の [サイズ] 値を入力します。

    • 列をプライマリキーにしたい場合は、[プライマリキー] をオンにします。

    • 列を一意のキーにしたい場合は、[Unique key] (一意のキー) をオンにします。

  7. (任意) [テーブルの詳細] を選択し、以下のいずれかのオプションを選択します。

    • 分散キーの列とスタイル。

    • ソートキー列とソートタイプ。

    • [Backup] (バックアップ) をオンにして、クラスタースナップショットにテーブルを含めます。

    • [一時テーブル] をオンにして、一時テーブルを作成します。

  8. [エディタでクエリを開く] をクリックしてテーブルを定義するオプションの指定を続行するか テーブルの作成 を選択してテーブルを作成します。

関数を作成するには

  1. 
                        Create[作成] を選択し [関数] を選択します。

  2. [タイプ] については [SQL] または [Python] を選択します。

  3. [スキーマ] の値を選択します。

  4. 関数の [名前] に値を入力します。

  5. 関数の [Volatility] (ボラティリティ) に値を入力します。

  6. 入力パラメータの順に、データ型別に [パラメータ] を選択します。

  7. [戻り値] で、データ型を選択します。

  8. 関数の [SQL プログラム] コードを入力します。

  9. [Create] を選択します。

ユーザー定義関数 (UDF) の詳細については、「Amazon Redshift データベースデベロッパーガイド」の「ユーザー定義関数の作成」を参照してください。

クエリとタブの履歴を表示する

クエリ履歴は、クエリエディタ v2 で表示できます。クエリエディタ v2 を使用して実行したクエリのみがクエリ履歴に表示されます。[Editor] (エディタ) タブまたは [Notebook] (ノートブック) タブを使用して実行された両方のクエリが表示されます。表示されるリストを、This week のように月曜日から日曜日と 1 週間と定義するなど、期間でフィルタリングできます。クエリのリストは、フィルターに一致するクエリを一度に 25 行取得します。[Load more] (さらに読み込む) を選択すると、次のセットが表示されます。[Actions] (アクション) メニューからクエリを選択します。実行できるアクションは、選択したクエリが保存されているかどうかによって変わります。以下の操作を選択できます。

  • [View query details] (クエリの詳細を表示) — 実行済みクエリに関する情報の詳細ページを表示します。

  • [Open query in a new tab] (新しいタブでクエリを開く)— 新しいエディタタブを開き、選択したクエリをプライミングします。接続中の場合、クラスターまたはワークグループと、データベースが自動的に選択されます。クエリを実行するには、まず、正しいクラスターまたはワークグループと、データベースが選択されていることを確認します。

  • [Open source] (ソースを開く)–タブ — そのまま開いている場合は、クエリの実行時に含まれていたエディタまたはノートブックのタブに移動します。クエリの実行後にエディタまたはノートブックの内容が変更された可能性があります。

  • [Open saved query] (保存したクエリを開く) — [Editor] (エディタ) タブまたは [Notebook] (ノートブック) タブに移動してクエリを開きます。

また、[Editor] (エディタ) タブまたは [Notebook] (ノートブック) タブで実行されたクエリの履歴を表示できます。クエリの履歴をタブで表示するには、[Tab history] (タブ履歴) を選択します。タブ履歴では、次の操作を実行できます。

  • [Copy query] (クエリのコピー)— クエリバージョンの SQL コンテンツをクリップボードにコピーします。

  • [Open query in a new tab] (新しいタブでクエリを開く)— 新しいエディタタブを開き、選択したクエリをプライミングします。クエリを実行するには、クラスター、ワークグループ、データベースを選択する必要があります。

  • [View query details] (クエリの詳細を表示) — 実行済みクエリに関する情報の詳細ページを表示します。

サンプルデータをロードする

クエリエディタ v2 には、サンプルデータベースと対応するスキーマにロードできるサンプルデータとクエリが付属しています。

サンプルデータをロードするには、ロードするサンプルデータに関連付けられている 
                External アイコンをクリックします。クエリエディタ v2 は、データベース sample_data_dev のスキーマにデータをロードし、[Queries] (クエリ) フォルダに保存されたクエリのフォルダを作成します。

次のサンプルデータセットが利用可能です。

tickit

Amazon Redshift ドキュメントのほとんどの例では、tickit というサンプルデータを使用します。このデータは、7 個のテーブルで構成されています。そのうち 2 個はファクトテーブル、5 個はディメンションです。このデータをロードすると、スキーマ tickit がサンプルデータで更新されます。tickit データの詳細については、「Amazon Redshift データベースデベロッパーガイド」の「サンプルデータベース」を参照してください。

tpch

このデータは、決定サポートのベンチマークに使用されます。このデータをロードすると、スキーマ tpch がサンプルデータで更新されます。tpch データの詳細については、「TPC-H」を参照してください。

tpcds

このデータは、決定サポートのベンチマークに使用されます。このデータをロードすると、スキーマ tpcds がサンプルデータで更新されます。tpcds データの詳細については、「TPC-DS」を参照してください。

Amazon S3 からデータをロードする

既存のテーブルに Amazon S3 からデータをロードします。

データを既存のテーブルにロードするには

クエリエディタ v2 は、Amazon S3 からデータをロードするために COPY コマンドを使用します。クエリエディタ v2 の [データのロード] ウィザードで生成および使用される COPY コマンドは、Amazon S3 からのコピー時に COPY コマンド構文で使用できる、すべてのパラメータをサポートしています。Amazon S3 からデータをロードするための COPY コマンドと使用するオプションの詳細については、Amazon Redshift データベース開発者ガイドの「Amazon S3 からの COPY」を参照してください。

  1. データをロードするデータベースに、テーブルがすでに作成されていることを確認します。クエリエディタ v2 は、既存のテーブルにのみデータをロードできます。

  2. 
                        Load[Load data] (データをロード) をクリックします。

  3. [S3 URI][Browse S3] (S3 をブラウズ) をクリックして、ロードするデータが含まれている Amazon S3 バケットを検索します。

  4. 指定した Amazon S3 バケットがターゲットテーブルと同じ AWS リージョン にない場合、[S3 file location] (S3 ファイルの場所) でデータが置かれた AWS リージョン を選択します。

  5. Amazon S3 ファイルが実際に複数の Amazon S3 バケット URI を含むマニフェストである場合。[This file is a manifest file] (このファイルはマニフェストファイルです) を選択します。

  6. Amazon S3 からデータをロードするために必要な許可を持つ [IAM role] (IAM ロール) を選択します。

  7. アップロードするファイルの [File format] (ファイル形式) を選択します。サポートされているデータ形式は、CSV、JSON、DELIMITER、FIXEDWIDTH、SHAPEFILE、AVRO、PARQUET、ORC です。指定したファイル形式に応じて、それぞれの [File options] (ファイルオプション) を選択できます。また、データが暗号化されており、暗号化に使用する KMS キーの Amazon リソースネーム (ARN) を入力した場合には、[Data is encrypted] (データは暗号化されています) を選択できます。

    PARQUET と ORC 対しては、設定するファイルオプションはありません。

  8. 圧縮方法を選択してファイルを圧縮します。デフォルトでは圧縮なしです。

  9. (オプション) [Advanced settings] (詳細設定) では、さまざまな [Data conversion parameters] (データ変換パラメータ) や [Load operations] (ロードオペレーション) がサポートされています。ファイルの必要に応じて、この情報を入力します。

    データ変換パラメータとデータロードパラメータの詳細については、「Amazon Redshift データベースデベロッパーガイド」の「データ変換パラメータ」と「データのロード操作」を参照してください。

  10. データのロード先データベース、スキーマ、テーブル名など、[Target table] (ターゲットテーブル) の場所を確認または選択します。

  11. [Load data] (データをロード) をクリックして、データのロードを開始します。

    ロードが完了すると、データのロードのために生成された COPY コマンドとともに、クエリエディタが表示されます。COPY の [Result] (結果) は次のように表示されます。成功すると、ロードされたテーブルから SQL を使用してデータを選択できるようになります。エラーが発生した場合は、システムビュー STL_LOAD_ERRORS にクエリを実行して、詳細を取得します。COPY コマンドとそのエラーについては、Amazon Redshift データベース開発者ガイドの「STL_LOAD_ERRORS」を参照してください。

アカウント設定の変更

適切な IAM 権限を持つユーザーは、同じ AWS アカウント の他のユーザーに対して[Account settings] (アカウント設定) を表示および変更できます。この管理者は以下を表示または設定できます。

  • アカウント内のユーザーあたりの最大同時データベース接続。これには分離されたセッションも含まれます。この値を変更すると、変更が反映されるまで 10 分かかることがあります。

  • アカウントのユーザーが SQL コマンドからファイルに結果セット全体をエクスポートできるようにします。

  • 関連する保存済みクエリを含むサンプルデータベースをロードして表示します。

  • クエリエディタ v2 のリソースを暗号化するために使用される KMS キー ARN を表示します。

SQL ノートブックの操作 (プレビュー)

これは、プレビューで使用できるクエリエディタ v2 ノートブックに関する、暫定版のドキュメントです。ドキュメントと機能はどちらも変更されることがあります。この機能については、テスト環境のみで使用し、本番環境では使用しないことをお勧めします。プレビューの契約条件については、AWSのサービス条件の「ベータサービスへの参加」を参照してください。

SQL ノートブックを使用すると、1 つのドキュメント内で複数の SQL クエリを編成、注釈付け、共有できます。SQL ノートブックには、複数の SQL クエリセルと Markdown セルを追加できます。SQL ノートブックは、複数のクエリセルと Markdown セルを使用して、データ分析に関連するクエリと説明を 1 つのドキュメントにグループ化する方法を提供します。Markdown 構文を使用してテキストを追加し、外観の形式を設定して、データ分析タスクのコンテキストと追加情報を提供できます。SQL ノートブックは、チームのメンバーと共有することが可能です。

SQL ノートブック機能を使用するには、クエリエディタ v2 マネージドポリシーのいずれかをすでに持っているプリンシパル (IAM ユーザーまたは IAM ロール) に、SQL ノートブック (プレビュー) 機能用のポリシーを追加する必要があります。詳細については、「クエリエディタ v2 へのアクセス」を参照してください。

ノートブックのデモについては、次の動画をご覧ください。

SQL ノートブックを作成するには

  1. を選択した後、[Notebook] (ノートブック) をクリックします。

    デフォルトでは、新しい SQL ノートブックに SQL クエリセルが表示されます。

  2. (オプション) [Rename] (名前を変更) をクリックした後、SQL ノートブックの名前を入力します。

  3. SQL クエリセルで、以下のいずれかの操作を行います。

    • クエリを入力します。

    • コピーしたクエリを貼り付けます。

  4. (オプション) [Add markdown] (マークダウンを追加) をクリックして、標準の Markdown 構文を使用して説明または解説のためのテキストの提供が可能な Markdown セルを追加します。

  5. (オプション) [Add SQL] (SQL を追加) および [Add markdown] (Markdown を追加) をクリックして、追加の SQL および Markdown テキストセルを挿入します。

ノートブックを開くには

  1. ナビゲータメニューから、[Notebooks] (ノートブック) を選択します。

  2. 開きたい SQL ノートブックを選択し、それをダブルクリックします。

SQL ノートブックをチームと共有するには

  • [Share to team-name] (team-name と共有する) をクリックします。