

 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-querying-data-lake"></a>

このチュートリアルの一連のタスクに従って、Amazon S3 データレイク内のデータをクエリできます。まず、[AWS Glue Data Catalog](https://docs.aws.amazon.com/glue/latest/dg/components-overview.html#data-catalog-intro)内の外部データベースを参照する外部スキーマを作成します。作成後、Amazon S3 データレイク内のデータをクエリすることができます。

## デモ: データレイクをクエリする
<a name="query-editor-v2-example-data-lake-demo"></a>

データレイクのクエリ方法を学ぶには、次の動画をご覧ください。

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/-pyy0qNmEKo/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/-pyy0qNmEKo)


## 前提条件
<a name="query-editor-v2-querying-data-lake-prerequisites"></a>

クエリエディタ v2 でデータレイクの作業をする前に、お使いの Amazon Redshift 環境で以下が設定済みであることを確認してください。
+ AWS Glue を使用して Amazon S3 データをクローリングし、AWS Lake Formation のデータカタログを有効にします。
+ AWS Lake Formation に対して AWS Glue が有効化されているデータカタログを使用して、Amazon Redshift の IAM ロールを作成します。この手順の詳細については、「[AWS Lake Formation に対し有効化されている AWS Glue Data Catalog を使用して、Amazon Redshift の IAM ロールを作成するには](https://docs.aws.amazon.com/redshift/latest/dg/c-getting-started-using-spectrum-create-role.html#spectrum-get-stared-create-role-lake-formation)」を参照してください。Redshift Spectrum と Lake Formation の詳細については、「[AWS Lake Formation で Redshift Spectrum を使用する](https://docs.aws.amazon.com/redshift/latest/dg/spectrum-lake-formation.html)」を参照してください。
+ Lake Formation データベースでクエリを実行するテーブルの SELECT 権限を付与します。この手順の詳細については、「[Lake Formation データベースでクエリを実行するテーブルの SELECT 権限を付与するには](https://docs.aws.amazon.com/redshift/latest/dg/c-getting-started-using-spectrum-create-role.html#spectrum-get-started-grant-lake-formation-table)」を参照してください。

  Lake Formation コンソール (https://console.aws.amazon.com/lakeformation/) の **[許可]** セクションの **[データレイクの許可]** ページで、IAM ロール、AWS Glue データベース、テーブルに適切な権限があることを確認できます。
+ 接続しているユーザーが、Amazon Redshift データベースにスキーマを作成してデータレイク内のデータにアクセスする権限を持っていることを確認します。クエリエディタ v2 でデータベースに接続するときは、データベースユーザーまたは IAM ユーザーなどの認証情報を含む認証方法を選択します。接続ユーザーには、`superuser` などの適切な権限とデータベース権限が必要です。クラスターまたはワークグループを作成した Amazon Redshift `admin` ユーザーには `superuser` 権限があり、スキーマを作成して Redshift データベースを管理できます。クエリエディタ v2 でデータベースに接続する方法の詳細については、「[Amazon Redshift データベースに接続する](query-editor-v2-connecting.md)」を参照してください。

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

Amazon S3 データレイク内のデータをクエリするには、まず外部スキーマを作成します。外部スキーマは、[AWS Glue Data Catalog](https://docs.aws.amazon.com/glue/latest/dg/components-overview.html#data-catalog-intro)内の外部データベースを参照します。

1. クエリエディタ v2 の **[エディタ]** ビューで、![\[Create\]](http://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/images/qev2-add.png)**[作成]** を選択して、**[スキーマ]** を選択します。

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

1. **[スキーマタイプ]** では、**[外部]** を選択します。

1. **[データカタログ]** 詳細内の **[リージョン]** は、デフォルトで Redshift データベースが置かれている AWS リージョン に設定されます。

1. 外部スキーマのマッピング先で、AWS Glue テーブルへの参照を含む** AWS Glue データベース**を選択します。

1. Amazon S3 上のデータをクエリするために必要な許可を持つ、Amazon Redshift 用 **[IAM ロール]**を選択します。

1. オプションとして、データカタログへのアクセス許可を持つ **IAM ロール**を選択します。

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

   ツリービューパネルのデータベースの下にスキーマが表示されます。

スキーマの作成時に、データベースへのアクセスが拒否されたというエラーが表示された場合は、接続しているユーザーがスキーマを作成するためのデータベース権限を持っているかどうかを確認してください。

## Amazon S3 データレイク内のデータのクエリ
<a name="query-editor-v2-query-data-lake"></a>

前の手順で作成したスキーマを使用します。

1. ツリービューパネルで、スキーマを選択します。

1. テーブル定義を表示するには、テーブルを選択します。テーブルの列とデータ型が表示されます。

1. テーブルをクエリするには、テーブルを選択して、右クリックでコンテキストメニューを表示し、**[テーブルの選択]** をクリックします。

1. **[エディタ]** でクエリを実行します。

   次の SQL 例は、`flightscsv` という名前の AWS Glue テーブルのすべての行をクエリするためにクエリエディタ v2 で生成されました。出力の列と行は、単純にするために切り捨てられています。

   ```
   SELECT * FROM "dev"."mydatalake_schema"."flightscsv";
                           
   year    quarter   month   dom  day_of_week   fl_date    unique_carrier  airline_id   carrier   tail_num   fl_num		
   2016    4         10      19   3             10/19/16   OO              20304        OO         N753SK    3086	 
   2016    4         10      19   3             10/19/16   OO              20304        OO         N753SK    3086	
   2016    4         10      19   3             10/19/16   OO              20304        OO         N778SK    3087		
   2016	4         10      19   3             10/19/16   OO              20304        OO         N778SK    3087	
   ...
   ```