

# Athena 视图注意事项和限制
<a name="considerations-limitations-views"></a>

Athena 视图具有以下注意事项和限制。

## 注意事项
<a name="considerations-views"></a>

以下注意事项适用于在 Athena 中创建和使用视图：
+ 在 Athena 中，您可以预览和使用在 Athena 控制台、Amazon Glue Data Catalog 中或通过运行于连接到同一目录的 Amazon EMR 集群上的 Presto 创建的视图。
+ 如果您已在 Data Catalog 中创建了 Athena 视图，则数据目录会将视图视为表。您可以使用在 Data Catalog 中表级精细访问控制来[限制对这些视图的访问](fine-grained-access-to-glue-resources.md)。
+  Athena 可防止您运行递归视图，如有运行，则会显示错误消息。递归视图是引用自身的视图查询。
+ Athena 在检测到过时视图时会显示错误消息。发生以下一种情况时，会报告过时的视图：
  + 视图引用了不存在的表或数据库。
  + 在引用的表中进行了架构或元数据更改。
  + 删除了引用的表并使用不同的架构或配置重新创建。
+ 您可以创建并运行嵌套视图，只要嵌套视图背后的查询有效以及表和数据库存在。

## 限制
<a name="limitations-views"></a>
+ Athena 视图名称不能包含下划线 `(_)` 之外的特殊字符。有关更多信息，请参阅 [命名数据库、表和列](tables-databases-columns-names.md)。
+ 避免使用保留关键字来命名视图。如果使用保留关键字，请在视图查询中使用双引号将保留关键字括起来。请参阅[转义查询中的保留关键字](reserved-words.md)。
+ 您不能将 Athena 中创建的视图与外部 Hive 元存储或 UDF 结合使用。有关使用在 Hive 外部创建的视图的信息，请参阅 [使用 Hive 视图](hive-views.md)。
+ 您不能将视图与地理空间函数结合使用。
+ 您无法使用视图管理 Amazon S3 中数据的访问控制。要查询视图，您需要相应权限才能访问存储在 Amazon S3 中的数据。有关更多信息，请参阅 [控制从 Athena 对 Amazon S3 的访问](s3-permissions.md)。
+ 虽然 Athena 引擎版本 3 支持跨账户查询视图，但无法创建包含跨账户 Amazon Glue Data Catalog 的视图。有关访问跨账户数据目录的信息，请参阅 [配置 Amazon Glue 数据目录的跨账户存取](security-iam-cross-account-glue-catalog-access.md)。
+ Athena 视图不支持 Hive 或 Iceberg 隐藏的元数据列 `$bucket`、`$file_modified_time`、`$file_size` 和 `$partition`。有关在 Athena 中使用 `$path` 元数据列的信息，请参阅 [获取 Amazon S3 中源数据的文件位置](select.md#select-path)。