

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 注意事项和限制
<a name="emr-serverless-lf-enable-considerations"></a>

## General
<a name="emr-s-lf-considerations"></a>

在 EMR Serverless 中使用 Lake Formation 时，请查看以下限制。

**注意**  
在 EMR Serverless 上为 Spark 作业启用 Lake Formation 时，作业会启动系统驱动程序和用户驱动程序。如果在启动时指定了预初始化容量，则会从预初始化容量中预置驱动程序，系统驱动程序的数量与指定的用户驱动程序的数量相等。如果选择按需容量，EMR Serverless 除了会启动用户驱动程序外，还会启动系统驱动程序。要估算在 Lake Formation 作业中使用 EMR Serverless 相关的成本，请使用 [Amazon 定价计算器](https://calculator.aws/#/addService/EMR)。
+ 启用 Lake Formation 的 Amazon EMR Serverless 适用于所有受支持的 [EMR Serverless 区域](https://docs.amazonaws.cn/emr/latest/EMR-Serverless-UserGuide/considerations.html)。
+ 启用 Lake Formation 的应用程序不支持使用[自定义 EMR Serverless 映像](https://docs.amazonaws.cn/emr/latest/EMR-Serverless-UserGuide/application-custom-image.html)。
+ 您不能为 Lake Formation 作业关闭 `DynamicResourceAllocation`。
+ 您只能将 Lake Formation 与 Spark 作业结合使用。
+ 启用 Lake Formation 的 EMR Serverless 在整个作业中仅支持单个 Spark 会话。
+ 启用 Lake Formation 的 EMR Serverless 仅支持通过资源链接共享的跨账户表查询。
+ 不支持以下项：
  + 弹性分布式数据集（RDD）
  + Spark 流
  + 嵌套列的访问控制
+ EMR Serverless 会阻止可能破坏系统驱动程序完全隔离的功能，包括：
  + UDTs、Hive UDFs 以及任何涉及自定义类的用户定义函数
  + 自定义数据来源
  + 为 Spark 扩展、连接器或元存储提供额外的 jar
  + `ANALYZE TABLE` 命令
+ 如果您的 EMR Serverless 应用程序位于具有适用于 Amazon S3 的 VPC 终端节点的私有子网中，并且您附加了终端节点策略来控制访问权限，则在您的任务可以将日志数据发送到托管 A Amazon mazon S3 之前，请在您的 VPC 策略中将[托管存储](logging.html#jobs-log-storage-managed-storage)中详述的权限添加到 S3 网关终端节点。如需疑难解答请求，请联系 Amazon 支持人员。
+ 从 Amazon EMR 7.9.0 开始，Spark FGAC 在与 s3a://方案一起使用时支持 S3 AFile 系统。
+ 亚马逊 EMR 7.11 支持使用 CTAS 创建托管表。
+ Amazon EMR 7.12 支持使用 CTAS 创建托管表和外部表。

## Permissions
<a name="emr-s-lf-reads-writes"></a>
+ 为了强制执行访问控制，EXPLAIN PLAN 和 DDL 操作（例如 DESCRIBE TABLE）不会泄露受限信息。
+ 当您向 Lake Formation 注册表位置时，数据访问将使用 Lake Formation 存储的证书，而不是 EMR Serverless 作业运行时角色的 IAM 权限。如果表位置的注册角色配置错误，即使运行时角色对该位置拥有 S3 IAM 权限，任务也会失败。
+ 从 Amazon EMR 7.12 开始，你可以在追加模式下使用 DataFrameWriter (V2) 和 Lake Formation 凭证写入现有 Hive 和 Iceberg 表。对于覆盖操作或创建新表时，EMR 使用运行时角色凭据来修改表数据。
+ 使用视图或缓存表作为源数据时，存在以下限制（这些限制不适用于 Amazon Glue 数据目录视图）：
  + 用于合并、删除和更新操作
    + 支持：使用视图和缓存表作为源表。
    + 不支持：在赋值和条件子句中使用视图和缓存表。
  + 对于创建或替换和替换表作为选择操作：
    + 不支持：使用视图和缓存表作为源表。
+ 仅当启用删除向量时，包含 UDFs 源数据的 Delta Lake 表才支持合并、删除和更新操作。

## 日志和调试
<a name="emr-s-lf-debug-logs"></a>
+ EMR Serverless 限制访问启用 Lake Formation 的应用程序上的系统驱动程序 Spark 日志。由于系统驱动程序以提升的权限运行，因此系统驱动程序生成的事件和日志可能包含敏感信息。为防止未经授权的用户或代码访问此敏感数据，EMR Serverless 禁止访问系统驱动程序日志。
+ 系统配置文件日志始终保存在托管存储中：这是一项强制性设置，无法禁用。这些日志使用客户托管 KMS 密钥或托管 KMS 密钥 Amazon 进行安全存储和加密。

## Iceberg
<a name="emr-s-lf-iceberg"></a>

使用 Apache Iceberg 时，请查看以下注意事项：
+ 您只能在会话目录中使用 Apache Iceberg，而不能使用任意命名的目录。
+ 在 Lake Formation 中注册的 Iceberg 表仅支持元数据表 `history`、`metadata_log_entries`、`snapshots`、`files`、`manifests` 和 `refs`。Amazon EMR 会隐藏可能包含敏感数据的列，例如 `partitions`、`path` 和 `summaries`。此限制不适用于未在 Lake Formation 中注册的 Iceberg 表。
+ 未在 Lake Formation 中注册的表支持所有 Iceberg 存储过程。任何表都不支持 `register_table` 和 `migrate` 程序。
+ 我们建议你使用 Iceberg DataFrameWriter V2 而不是 V1。