

 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/)を参照してください。

# AWS Glue Data Catalog に対するクエリの実行
<a name="query-editor-v2-glue"></a>

クエリエディタ v2 を使用して、特定の SQL コマンドを使用し、このセクションで説明されているアクセス許可を付与することで、AWS Glue Data Catalog にカタログ化されたデータをクエリできます。デフォルトでは、AWS Glue Data Catalog は、`awsdatacatalog` という名前のクエリエディタ v2 のデータベースとして表示されます。AWS Glue Data Catalog に対するクエリの実行は、すべての Amazon Redshift AWS リージョンで利用できるわけではありません。この機能が使用可能かどうかは、SHOW コマンドを使用して確認します。AWS Glue の詳細については、*AWS Glue デベロッパーガイド* の「[What is AWS Glue?](https://docs.aws.amazon.com/glue/latest/dg/what-is-glue.html)」を参照してください。

**注記**  
AWS Glue Data Catalog に対するクエリの実行は、Amazon Redshift RA3 のノードタイプのクラスターと Amazon Redshift Serverless でのみサポートされています。

データウェアハウスを設定し、以下の SQL コマンドを使用してカタログ化された AWS Glue データベースのオブジェクトを表示できます。
+ SHOW — 現在接続されているデータウェアハウスに `awsdatacatalog` がマウントされているかを表示します。例えば、`data_catalog_auto_mount` パラメータ値を表示するには、次を実行します。

  ```
  SHOW data_catalog_auto_mount;
  ```

  詳細については、「Amazon Redshift データベース開発者ガイド」の「[SHOW](https://docs.aws.amazon.com/redshift/latest/dg/r_SHOW.html)」を参照してください。**
+ ALTER SYSTEM — `data_catalog_auto_mount` のシステムレベルの設定を変更します。例えば、`data_catalog_auto_mount` パラメータ値を `on` に変更するには、次を実行します。

  ```
  ALTER SYSTEM SET data_catalog_auto_mount = on;
  ```

  この変更は、プロビジョニングされたクラスターが再起動されるか、サーバーレスワークグループが自動的に一時停止して再開されたときに有効になります。詳細については、「Amazon Redshift データベース開発者ガイド」の「[ALTER SYSTEM](https://docs.aws.amazon.com/redshift/latest/dg/r_ALTER_SYSTEM.html)」を参照してください。**
+ SHOW SCHEMAS — スキーマのリストを表示します。`awsdatacatalog` という名前のデータベース内のスキーマは、AWS Glue Data Catalogでカタログ化されている AWS Glue データベースを表します。例えば、これらのスキーマを表示するには、次を実行します。

  ```
  SHOW SCHEMAS FROM DATABASE awsdatacatalog;
  ```

  詳細については、「Amazon Redshift データベース開発者ガイド」の「[SHOW SCHEMAS](https://docs.aws.amazon.com/redshift/latest/dg/r_SHOW_SCHEMAS.html)」を参照してください。**
+ SHOW TABLES — スキーマ内のテーブルを一覧表示します。例えば、スキーマ `myglue` にある、`awsdatacatalog` という AWS Glue Data Catalogのデータベース内のテーブルを表示するには、次を実行します。

  ```
  SHOW TABLES FROM SCHEMA awsdatacatalog.myschema;
  ```

  詳細については、「Amazon Redshift データベース開発者ガイド」の「[SHOW TABLES](https://docs.aws.amazon.com/redshift/latest/dg/r_SHOW_TABLES.html)」を参照してください。**
+ SHOW COLUMNS – テーブル内の列を一覧表示します。例えば、スキーマ `myglue` とテーブル `mytable` にある、`awsdatacatalog` という AWS Glue Data Catalogのデータベース内の列を表示するには、次を実行します。

  ```
  SHOW COLUMNS FROM TABLE awsdatacatalog.myglue.mytable;
  ```

  詳細については、「Amazon Redshift データベース開発者ガイド」の「[SHOW COLUMNS](https://docs.aws.amazon.com/redshift/latest/dg/r_SHOW_COLUMNS.html)」を参照してください。**

**IAM ユーザーまたはロールに対し、AWS Glue Data Catalog にクエリを実行する権限を付与するには、**

1. ツリービューペインで、**[データベースのユーザー名とパスワード]** による認証方法を使用して、プロビジョニングされたクラスターまたはサーバーレスワークグループの初期データベースに接続します。例えば、クラスターまたはワークグループの作成時に使用した管理者ユーザーとパスワードを使用して、`dev` データベースに接続します。

1. エディタタブで以下の SQL ステートメントを実行して、IAM ユーザーに AWS Glue Data Catalog へのアクセス権を付与します。

   ```
   GRANT USAGE ON DATABASE awsdatacatalog to "IAM:myIAMUser"
   ```

   ここで、*IAM:myIAMUser* は、AWS Glue Data Catalog に USAGE 権限を付与したい IAM ユーザーです。または、USAGE 権限を、IAM ロールの *IAMR:myIAMRole* に付与することもできます。

1. ツリービューペインで、以前に作成したクラスターまたはワークグループへの接続を編集または削除します。次のいずれかの方法で、クラスターまたはワークグループに接続します。
   + クラスターから `awsdatacatalog` データベースにアクセスするには、認証方法として、**[IAM ID を使用した一時的な認証情報]** を使用する必要があります。認証方法の詳細については、「[Amazon Redshift データベースに接続する](query-editor-v2-connecting.md)」を参照してください。この認証方法を接続ウィンドウに表示するには、クエリエディタ v2 の管理者がアカウントの **[アカウント設定]** を構成することが必要になる場合があります。
   + ワークグループから `awsdatacatalog` データベースに接続するには、認証方法として **[フェデレーションユーザー]** を使用する必要があります。認証方法の詳細については、「[Amazon Redshift データベースに接続する](query-editor-v2-connecting.md)」を参照してください。

1. 権限が付与されたら、IAM ID を使用して、ご自分の AWS Glue Data Catalog に対して SQL を実行できます。

接続後、クエリエディタ v2 を使用して、AWS Glue Data Catalog でカタログ化されたデータをクエリできます。クエリエディタ v2 のツリービューペインで、クラスターまたはワークグループと `awsdatacatalog` データベースを選択します。エディタまたはノートブックペインで、正しいクラスターまたはワークグループが選択されていることを確認します。選択するデータベースは、最初の Amazon Redshift データベース (`dev` など) でなければなりません。クエリの作成については、「[Amazon Redshift を使用したクエリの作成](query-editor-v2-query-run.md)」と「[Amazon Redshift のノートブックNotebooks](query-editor-v2-notebooks.md)」を参照してください。指定されたデータベース `awsdatacatalog` は、アカウント内の外部データカタログデータベースを参照するために予約されています。`awsdatacatalog` データベースに対するクエリは読み取り専用です。SELECT ステートメントでテーブルを参照するには、3 句構成の表記を使用してください。最初の部分はデータベース名、2 番目の部分は AWS Glue データベース名、3 番目の部分は AWS Glue テーブル名です。

```
SELECT * FROM awsdatacatalog.<aws-glue-db-name>.<aws-glue-table-name>;
```

AWS Glue Data Catalog データを読み取って Amazon Redshift テーブルにデータを入力するさまざまなシナリオを実行できます。

次の SQL 例では、AWS Glue で定義されている 2 つのテーブルを結合します。

```
SELECT pn.emp_id, alias, role, project_name 
FROM "awsdatacatalog"."empl_db"."project_name_table" pn, 
"awsdatacatalog"."empl_db"."project_alias_table" pa
WHERE pn.emp_id = pa.emp_id;
```

次の SQL 例では、Amazon Redshift テーブルを作成し、2 つの AWS Glue テーブルを結合したデータをそのテーブルに入力します。

```
CREATE TABLE dev.public.glue AS
SELECT pn.emp_id, alias, role, project_name 
FROM "awsdatacatalog"."empl_db"."project_name_table" pn, 
"awsdatacatalog"."empl_db"."project_alias_table" pa
WHERE pn.emp_id = pa.emp_id;
```

## Amazon S3 テーブルに対するクエリの実行 (プレビュー）
<a name="query-editor-v2-glue-s3-tables"></a>

クエリエディタ v2 を使用して、AWS Glue Data Catalog にマウントされた Amazon S3 テーブルカタログに保持されているデータをクエリできます。Amazon S3 テーブルカタログは、作成時に AWS Glue Data Catalog にマウントされ、同じアカウントの同じ AWS リージョン 内のすべてのプロビジョニング済みクラスターとサーバーレスワークグループで外部データベースとして自動的に表示されます。Amazon Redshift を使用した Amazon S3 テーブルへのアクセスの詳細については、「Amazon Simple Storage Service ユーザーガイド」の「[Accessing Amazon S3 tables with Amazon Redshift](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-integrating-redshift.html)」を参照してください。