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

「翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。」

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

Amazon Redshift Spectrum を使用すると、効率的にクエリを実行し、Amazon S3 テーブルにデータをロードすることなく、Amazon Redshift のファイルから構造化または半構造化されたデータを取得することができます。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 Key Management Service カタログにアクセスするために AWS KMS の AWS Glue (AWS Glue) が必要です。AWS Glue カタログの暗号化は、一部の AWS リージョンでは使用できません。サポートされている AWS リージョンのリストについては、の「 の暗号化とセキュアなアクセス」を参照してくださいAWS GlueAWS Glue 開発者ガイドAWS Glue データカタログの暗号化の詳細については、の「データカタログAWS Glueの暗号化」を参照してくださいAWS Glue 開発者ガイド

注記

Redshift Spectrum、Amazon Redshift、PG_CLASS または information_schema など、標準の PG_TABLE_DEF テーブルに使用したものと同じリソースを使用して STV_TBL_PERM テーブルの詳細を表示することはできません。ビジネスインテリジェンスまたは分析ツールが 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 を使用する」を参照してください。

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

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

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

    grant temp on database spectrumdb to group spectrumusers;

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

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