Athena ビューには次の考慮事項と制限があります。
考慮事項
Athena でビューを作成して使用する場合は、次の考慮事項が適用されます。
-
Athena では、Athena コンソール、AWS Glue Data Catalog、または同じカタログに接続されている Amazon EMR クラスターで実行されている Presto で作成されたビューをプレビューして使用できます。
-
データカタログで Athena ビューを作成した場合、データカタログはビューをテーブルとして扱います。データカタログでテーブルレベルのきめ細かなアクセスコントロールを使用して、これらのビューへのアクセスを制限できます。
-
Athena は再帰的なビューの実行を妨げ、そのような場合にはエラーメッセージを表示します。再帰的なビューとは、Athena 自体を参照するビュークエリです。
-
Athena は、古いビューを検出するとエラーメッセージを表示します。以下のいずれかが発生すると、古いビューが報告されます。
-
このビューは、存在しないテーブルまたはデータベースを参照します。
-
スキーマまたはメタデータの変更は、参照されるテーブルで行われます。
-
参照されるテーブルは削除され、異なるスキーマまたは設定で再度作成されます。
-
-
ネストされたビューのクエリが有効であり、テーブルおよびデータベースが存在する限り、ネストされたビューを作成して実行できます。
制限
-
Athena ビューの名前には、アンダースコア
(_)
以外の特殊文字を使用できません。詳細については、「データベース、テーブル、列に名前を付ける」を参照してください。 -
ビューの名前に予約キーワードを使用しないようにします。予約キーワードを使用している場合、ビューでのクエリでは予約キーワードを二重引用符で囲みます。「クエリで予約キーワードをエスケープする」を参照してください。
-
Athena で作成したビューを外部 Hive メタストア、UDF で使用することはできません。Hive で外部で作成したビューを使用する方法については、「Hive ビューを使用する」を参照してください。
-
地理空間関数ではビューを使用できません。
-
Amazon S3 のデータに対するアクセスコントロールを管理するためにビューを使用することはできません。ビューをクエリするには、Amazon S3 に保存されているデータにアクセスするためのアクセス許可が必要です。詳細については、「Athena から Amazon S3 へのアクセスを制御する」を参照してください。
-
アカウント間でのビューのクエリは Athena エンジンバージョン 3 でサポートされていますが、クロスアカウント AWS Glue Data Catalogを含むビューを作成することはできません。クロスアカウントデータカタログへのアクセスについては、「AWS Glue データカタログへのクロスアカウントアクセスを構成する」を参照してください。
-
Hive または Iceberg の非表示メタデータ列
$bucket
、$file_modified_time
、$file_size
、および$partition
は Athena のビューでサポートされていません。Athena の$path
メタデータ列の使用方法については「Amazon S3 内にあるソースデータのファイルの場所の取得 」を参照してください。