Amazon Redshift Spectrum を使用した外部データのクエリ - Amazon Redshift

Amazon Redshift Spectrum を使用した外部データのクエリ

Amazon Redshift Spectrum を使用すると、効率的にクエリを実行し、Amazon Redshift テーブルにデータをロードすることなく、Amazon S3 のファイルから構造化および半構造化されたデータを取得できます。Redshift Spectrum クエリは超並列処理により、大きなデータセットに対して非常に高速で実行されます。処理の多くは Redshift Spectrum レイヤーで生じ、データの大部分が Amazon S3 に保持されます。複数のクラスターが Amazon S3 で同じデータセットを同時にクエリできます。クラスターごとにデータをコピーする必要はありません。

Amazon Redshift Spectrum の概要

Amazon Redshift Spectrum は、クラスターに依存しない専用の Amazon Redshift サーバー上にあります。Redshift Spectrum は、述語フィルタリングや集計など、大量の演算を行う多くのタスクを Redshift Spectrum レイヤーにプッシュします。したがって、Redshift Spectrum クエリが使用するクラスタの処理容量は他のクエリよりもはるかに少なくなります。Redshift Spectrum はさらに、インテリジェントに拡張します。クエリの需要に基づいて、Redshift Spectrum は潜在的に数千のインスタンスを使用して超並列処理を活用できます。

Redshift Spectrum テーブルは、ファイルの構造を定義して外部データカタログ内のテーブルとして登録することで作成します。外部データカタログは、AWS Glue、Amazon Athena を持つデータカタログ、もしくはユーザー所有の Apache Hive メタストアを指定することができます。外部テーブルは、データ定義言語 (DDL) コマンドを使用して、または外部データカタログに接続するその他の任意のツールを使用して Amazon Redshift から作成および管理できます。外部データカタログへの変更は、ただちにすべての Amazon Redshift クラスターで利用できます。

オプションで、外部テーブルを 1 つ以上の列でパーティション化できます。外部テーブルの一部としてパーティションを定義すると、パフォーマンスが向上します。パフォーマンスが向上するのは、Amazon Redshift クエリオプティマイザがクエリのデータを含まないパーティションを削除するためです。

Redshift Spectrum テーブルを定義すると、他の Amazon Redshift テーブルと同じようにクエリを実行してテーブル結合できるようになります。Redshift Spectrum は、外部テーブルに対する更新オペレーションをサポートしていません。Redshift Spectrum テーブルを複数の Amazon Redshift クラスターに追加して、同じ AWS リージョン内の任意のクラスターから Amazon S3 の同じデータにクエリを実行できます。Amazon S3 データファイルを更新すると、データはすぐにあらゆる Amazon Redshift クラスターからクエリに利用可能になります。

アクセスする AWS Glue データカタログは、セキュリティを強化するために暗号化されている可能性があります。AWS Glue カタログが暗号化されている場合、AWS Glue カタログにアクセスするには AWS Glue の AWS Key Management Service (AWS KMS) キーが必要です。AWS Glue カタログの暗号化は、一部の AWS リージョンでは使用できません。サポートされている AWS リージョンのリストについては、AWS Glue デベロッパーガイドの「 AWS Glue の暗号化と安全なアクセス」を参照してください。AWS Glue でのデータカタログ暗号化の詳細については、AWS Glue デベロッパーガイドの「AWS Glue データカタログの暗号化」を参照してください。

注記

PG_TABLE_DEFSTV_TBL_PERM、PG_CLASS、または information_schema など、標準の Amazon Redshift テーブルに使用したものと同じリソースを使用して Redshift Spectrum テーブルの詳細を表示することはできません。ビジネスインテリジェンスまたは分析ツールが Redshift Spectrum 外部テーブルを認識しない場合は、SVV_EXTERNAL_TABLES および SVV_EXTERNAL_COLUMNS にクエリを実行するようにアプリケーションを設定します。

Amazon Redshift Spectrum リージョン

Redshift Spectrum は以下の AWS リージョンでのみ利用可能です。

  • 米国東部 (バージニア北部) リージョン (us-east-1)

  • 米国東部 (オハイオ) リージョン (us-east-2)

  • 米国西部 (北カリフォルニア) リージョン (us-west-1)

  • 米国西部 (オレゴン) リージョン (us-west-2)

  • アフリカ (ケープタウン) リージョン (af-south-1)

  • アジアパシフィック (香港) リージョン (ap-east-1)

  • アジアパシフィック (ムンバイ) リージョン (ap-south-1)

  • アジアパシフィック (大阪) リージョン (ap-northeast-3)

  • アジアパシフィック (ソウル) リージョン (ap-northeast-2)

  • アジアパシフィック (シンガポール) リージョン (ap-southeast-1)

  • アジアパシフィック (シドニー) リージョン (ap-southeast-2)

  • アジアパシフィック (東京) リージョン (ap-northeast-1)

  • カナダ (中部) リージョン (ca-central-1)

  • 中国 (北京) リージョン (cn-north-1)

  • 中国 (寧夏) リージョン (cn-northwest-1)

  • 欧州 (フランクフルト) リージョン (eu-central-1)

  • 欧州 (アイルランド) リージョン (eu-west-1)

  • 欧州 (ロンドン) リージョン (eu-west-2)

  • 欧州 (ミラノ) リージョン (eu-south-1)

  • 欧州 (パリ) リージョン (eu-west-3)

  • 欧州 (ストックホルム) リージョン (eu-north-1)

  • 中東 (バーレーン) リージョン (me-south-1)

  • 南米 (サンパウロ) リージョン (sa-east-1)

  • AWS GovCloud (米国東部) (us-gov-east-1)

  • AWS GovCloud (米国西部) (us-gov-west-1)

Amazon Redshift Spectrum の考慮事項

Amazon Redshift Spectrum を使用する際は、次の点に留意してください。

  • Amazon Redshift クラスターと Amazon S3 バケットは、同じ AWS リージョンに存在する必要があります。

  • クラスターが拡張された VPC のルーティングを使用する場合は、追加のステップを行う必要がある場合があります。詳細については、「拡張された VPC のルーティングで Amazon Redshift Spectrum を使用する」を参照してください。

  • Redshift Spectrum は Amazon S3 のアクセスポイントのエイリアスをサポートしています。詳細については、Amazon Simple Storage Service コンソールユーザーガイドの「アクセスポイントでのバケットスタイルのエイリアスの使用」を参照してください。ただし、Redshift Spectrum では、Amazon S3 アクセスポイントのエイリアスを持つ VPC をサポートしていません。詳細については、Amazon Redshift クラスター管理ガイドの「拡張された VPC のルーティングで Amazon Redshift Spectrum を使用する」を参照してください。

  • 外部テーブルに対してオペレーションの更新または削除を実行することはできません。指定されたスキーマで新しい外部テーブルを作成するには、CREATE EXTERNAL TABLE を使用できます。CREATE EXTERNAL TABLE の詳細については、「CREATE EXTERNAL TABLE」を参照してください。SELECT クエリの結果を外部カタログの既存の外部テーブルに挿入するには、INSERT (外部テーブル) を使用できます。INSERT (外部テーブル) の詳細については、「INSERT (外部テーブル)」を参照してください。

  • AWS Lake Formationに対し有効になっている AWS Glue Data Catalog を使用する場合を除き、外部テーブルのユーザー権限を制御することはできません。代わりに、外部スキーマに対してアクセス権限の付与および取り消しを実行できます。AWS Lake Formation の使用方法の詳細については、「AWS Lake Formation で Redshift Spectrum を使用する」を参照してください。

  • Redshift Spectrum クエリを実行するには、データベースユーザーがデータベースに一時テーブルを作成するアクセス権限を持っている必要があります。次の例では、データベース spectrumdb の一時アクセス権限を spectrumusers ユーザーグループに付与しています。

    grant temp on database spectrumdb to group spectrumusers;

    詳細については、「GRANT」を参照してください。

  • Athena データカタログまたは AWS Glue データカタログをメタデータストアとして使用する場合は、Amazon Redshift クラスター管理ガイドの「クォータと制限」を参照してください。

  • Redshift Spectrum は、Kerberos を使用する Amazon EMR をサポートしていません。