

 Amazon Redshift は、パッチ 198 以降、新しい Python UDF の作成をサポートしなくなります。既存の Python UDF は、2026 年 6 月 30 日まで引き続き機能します。詳細については、[ブログ記事](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)を参照してください。

# データベースオブジェクトの作成
<a name="query-editor-v2-object-create"></a>

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

## データベースの作成
<a name="query-editor-v2-object-create-database"></a>

クエリエディタ v2 を使用して、クラスターまたはワークグループにデータベースを作成できます。

**データベースを作成する**

この他のコマンドオプションについては、「*Amazon Redshift データベースデベロッパーガイド*」の「[CREATE DATABASE](https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_DATABASE.html)」を参照してください。

1. ![\[Plus sign icon inside a circle, indicating an add or create action.\]](http://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/images/qev2-add.png)**[作成]** を選択し、次に **[データベース]** を選択します。

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

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

1. (オプション) データベースはデータ共有または AWS Glue Data Catalog から作成できます。AWS Glue の詳細については、*AWS Glue デベロッパーガイド* の「[What is AWS Glue?](https://docs.aws.amazon.com/glue/latest/dg/what-is-glue.html)」を参照してください。
   + (オプション) **[データ共有を使用して作成する]** を選択し、**[データ共有の選択]** を選択します。このリストには、現在のクラスターまたはワークグループでコンシューマーデータ共有の作成に使用できるプロデューサーデータ共有が含まれています。
   + (オプション) **[AWS Glue Data Catalogを使用して作成する]** を選択し、**[AWS Glue データベースを選択]** を選択します。**[データカタログスキーマ]** に、データを参照するときにスキーマで使用する名前を 3 つの部分からなる表記 (database.schema.table) で入力します。

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

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

   データ共有から作成したデータベースをクエリするオプションのステップを選択する場合は、クラスターまたはワークグループ内の Amazon Redshift データベース (例えば、デフォルトデータベース `dev`) に接続し、**[データ共有を使用して作成する]** の選択時に作成したデータベース名を参照する 3 つの部分からなる表記 (database.schema.table) を使用します。データ共有データベースは、クエリエディタ v2 のエディタタブに表示されますが、直接接続には使用できません。

   AWS Glue Data Catalog から作成したデータベースをクエリするオプションのステップを選択する場合は、クラスターまたはワークグループ内の Amazon Redshift データベース (例えば、デフォルトデータベース `dev`) に接続し、**[AWS Glue Data Catalog を使用して作成する]** の選択時に作成したデータベース名、**[データカタログスキーマ]** で名前を付けたスキーマ、および AWS Glue Data Catalog のテーブルを参照する 3 つの部分からなる表記 (database.schema.table) を使用します。次のような表記になります。

   ```
   SELECT * FROM glue-database.glue-schema.glue-table
   ```
**注記**  
接続方法として **[IAM ID を使用した一時的な認証情報]** を使用してデフォルトのデータベースに接続していること、および AWS Glue データベースの使用権限が IAM 認証情報に付与されていることを確認します。  

   ```
   GRANT USAGE ON DATABASE glue-database to "IAM:MyIAMUser"
   ```

   AWS Glue データベースは、クエリエディタ v2 のエディタタブに表示されますが、直接接続には使用できません。

   AWS Glue Data Catalog にクエリを実行する方法の詳細については、「Amazon Redshift データベース開発者ガイド」の「[コンシューマーとして Lake Formation 管理のデータ共有を使用する](https://docs.aws.amazon.com/redshift/latest/dg/lake-formation-getting-started-consumer.html)」と「[プロデューサーとして Lake Formation 管理のデータ共有を使用する](https://docs.aws.amazon.com/redshift/latest/dg/lake-formation-getting-started-producer.html)」を参照してください。**。

**データ共有コンシューマーとしてデータベースを作成する例**

次の例は、クエリエディタ v2 を使用してデータ共有からデータベースを作成するために使用した特定のシナリオを示しています。このシナリオを通じて、使用環境でデータ共有からデータベースをどのようにして作成できるかを確認してください。このシナリオでは、`cluster-base`(プロデューサークラスター) と `cluster-view` (コンシューマークラスター) の 2 つのクラスターを使用します。

1. Amazon Redshift コンソールを使用してクラスター `cluster-base` でテーブル `category2` のデータ共有を作成します。プロデューサーデータ共有の名前は `datashare_base` です。

   データ共有の作成の詳細については、「Amazon Redshift データベース開発者ガイド」の「[Amazon Redshift でのクラスター間のデータの共有](https://docs.aws.amazon.com/redshift/latest/dg/datashare-overview.html)」を参照してください。**

1. Amazon Redshift コンソールを使用して、クラスター `cluster-view` でテーブル `category2` のコンシューマーとしてデータ共有 `datashare_base` を受け入れます。

1. クエリエディタ v2 のツリービューパネルを開いて、次のような `cluster-base` の階層を表示します。
   + クラスター: `cluster-base`
     + データベース: `dev`
       + スキーマ：`public`
         + テーブル: `category2`

1. ![\[Plus sign icon inside a circle, indicating an add or create action.\]](http://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/images/qev2-add.png)**[作成]** を選択し、次に **[データベース]** を選択します。

1. **[データベース名]** に「`see_datashare_base`」と入力します。

1. **[データ共有を使用して作成する]** を選択し、**[データ共有を選択]** を選択します。作成するデータベースのソースとして使用する `datashare_base` を選択します。

   クエリエディタ v2 のツリービューパネルに、次のように `cluster-view` の階層が表示されます。
   + クラスター: `cluster-view`
     + データベース: `see_datashare_base`
       + スキーマ：`public`
         + テーブル: `category2`

1. データをクエリするときは、クラスター `cluster-view` のデフォルトデータベース (通常は `dev` という名前) に接続しますが、SQL でデータ共有データベース `see_datashare_base` を参照します。
**注記**  
クエリエディタ v2 のエディタビューでは、選択したクラスターは `cluster-view` です。選択したデータベースは `dev` です。データベース `see_datashare_base` は表示されますが、直接接続には使用できません。`dev` データベースを選択し、実行した SQL で `see_datashare_base` を参照します。

   ```
   SELECT * FROM "see_datashare_base"."public"."category2";
   ```

   クエリは、クラスター `cluster_base` のデータ共有 `datashare_base` からデータを取得します。

**AWS Glue Data Catalog からデータベースを作成する例**

次の例は、クエリエディタ v2 を使用して AWS Glue Data Catalog からデータベースを作成するために使用した特定のシナリオを示しています。このシナリオを通じて、使用環境で AWS Glue Data Catalog からデータベースをどのようにして作成できるかを確認してください。このシナリオでは 1 つのクラスター `cluster-view` を使用して、作成したデータベースを格納します。

1. ![\[Plus sign icon inside a circle, indicating an add or create action.\]](http://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/images/qev2-add.png)**[作成]** を選択し、次に **[データベース]** を選択します。

1. **[データベース名]** に「`data_catalog_database`」と入力します。

1. **[AWS Glue Data Catalogを使用して作成する]** を選択し、**[AWS Glue データベースを選択]** を選択します。作成するデータベースのソースとして使用する `glue_db` を選択します。

   **[データカタログスキーマ]** を選択し、3 つの部分からなる表記で使用するスキーマ名として「`myschema`」と入力します。

   クエリエディタ v2 のツリービューパネルに、次のように `cluster-view` の階層が表示されます。
   + クラスター: `cluster-view`
     + データベース: `data_catalog_database`
       + スキーマ：`myschema`
         + テーブ: `category3`

1. データをクエリするときは、クラスター `cluster-view` のデフォルトデータベース (通常は `dev` という名前) に接続しますが、SQL でデータベース `data_catalog_database` を参照します。
**注記**  
クエリエディタ v2 のエディタビューでは、選択したクラスターは `cluster-view` です。選択したデータベースは `dev` です。データベース `data_catalog_database` は表示されますが、直接接続には使用できません。`dev` データベースを選択し、実行した SQL で `data_catalog_database` を参照します。

   ```
   SELECT * FROM "data_catalog_database"."myschema"."category3";
   ```

   クエリは、AWS Glue Data Catalog でカタログ化されたデータを取得します。

## スキーマの作成
<a name="query-editor-v2-object-create-schema"></a>

クエリエディタ v2 を使用して、クラスターまたはワークグループにスキーマを作成できます。

**スキーマを作成するには**

スキーマについては、「*Amazon Redshift データベースデベロッパーガイド*」の「[スキーマ](https://docs.aws.amazon.com/redshift/latest/dg/r_Schemas_and_tables.html)」を参照してください。

1. ![\[Plus sign icon inside a circle, indicating an add or create action.\]](http://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/images/qev2-add.png)**[作成]**を選択し、**[スキーマ]** を選択します。

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

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

   ローカルスキーマの詳細については、*Amazon Redshift データベースデベロッパーガイド*の「[スキーマの作成](https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_SCHEMA.html)」を参照してください。外部スキーマの詳細については、*Amazon Redshift データベースデベロッパーガイド*の「[外部スキーマの作成](https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_EXTERNAL_SCHEMA.html)」を参照してください。

1. **[External]** (外部) を選択すると、外部スキーマの次の選択肢があります。
   + **Glue データカタログ** — AWS Glue 内のテーブルを参照する外部スキーマを Amazon Redshift に作成します。AWS Glue データベースを選択する以外に、クラスターに関連付けられた IAM ロールとデータカタログに関連付けられた IAM ロールを選択します。
   + **PostgreSQL** — Amazon Redshift で、Amazon RDS for PostgreSQL または Amazon Aurora PostgreSQL-Compatible Edition データベースを参照する外部スキーマを作成します。データベースの接続情報も提供します。フェデレーティッドクエリの詳細については、「**Amazon Redshift データベースデベロッパーガイド」の「[フェデレーテッドクエリを使用したデータのクエリ](https://docs.aws.amazon.com/redshift/latest/dg/federated-overview.html)」を参照してください。
   + **MySQL** — Amazon Redshift で、Amazon RDS for MySQL または Amazon Aurora MySQL-Compatible Edition データベースを参照する外部スキーマを作成します。データベースの接続情報も提供します。フェデレーティッドクエリの詳細については、「*Amazon Redshift データベースデベロッパーガイド*」の「[フェデレーテッドクエリを使用したデータのクエリ](https://docs.aws.amazon.com/redshift/latest/dg/federated-overview.html)」を参照してください。

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

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

## テーブルの作成
<a name="query-editor-v2-object-create-table"></a>

クエリエディタ v2 を使用して、クラスターまたはワークグループにテーブルを作成できます。

**テーブルを作成するには**

テーブルの各列を指定または定義するカンマ区切り値 (CSV) ファイルに基づいてテーブルを作成できます。テーブルの詳細については、「*Amazon Redshift データベースデベロッパーガイド*」の「[テーブル設計](https://docs.aws.amazon.com/redshift/latest/dg/c_designing-tables-best-practices.html)」と「[CREATE TABLE](https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_TABLE_NEW.html)」を参照してください。

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

1. ![\[Plus sign icon inside a circle, indicating an add or create action.\]](http://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/images/qev2-add.png)**[Create]** (作成)、**[Table]** (テーブル) の順に選択します。

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

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

1. ![\[Plus sign icon representing an addition or new item action.\]](http://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/images/add-plus.png) **[フィールドの追加]** を選択して列を追加します。

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

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

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

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

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

1. 各列について、列を選択し、必要なオプションを選択します。
   + **[エンコード]** の値を選択します。
   + **[デフォルト値]** を選択します。
   + 列の値を増分させたい場合は、**[Automatically increment]** (自動増分) をオンにします。次に、**[Auto increment seed]** (自動増分シード) と **[Auto increment step]** (自動増分ステップ) の値を指定します。
   + 列が常に値を含む必要がある場合は、**[Not NULL]** をオンにします。
   + 列の **[サイズ]** 値を入力します。
   + 列をプライマリキーにしたい場合は、**[プライマリキー]** をオンにします。
   + 列を一意のキーにしたい場合は、**[Unique key]** (一意のキー) をオンにします。

1. (任意) **[テーブルの詳細]** を選択し、以下のいずれかのオプションを選択します。
   + 分散キーの列とスタイル。
   + ソートキー列とソートタイプ。
   + **[Backup]** (バックアップ) をオンにして、クラスタースナップショットにテーブルを含めます。
   + **[一時テーブル]** をオンにして、一時テーブルを作成します。

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

## 関数の作成
<a name="query-editor-v2-object-create-function"></a>

クエリエディタ v2 を使用して、クラスターまたはワークグループに関数を作成できます。

**関数を作成するには**

1. ![\[Plus sign icon inside a circle, indicating an add or create action.\]](http://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/images/qev2-add.png)**[作成]** を選択し **[関数]** を選択します。

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

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

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

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

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

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

1. 関数の **[SQL プログラム]** または **[Python プログラム]** コードを入力します。

1. **[作成]** を選択します。

ユーザー定義関数 (UDF) の詳細については、「*Amazon Redshift データベースデベロッパーガイド*」の「[ユーザー定義関数の作成](https://docs.aws.amazon.com/redshift/latest/dg/user-defined-functions.html)」を参照してください。