注意事项和限制
将 Lake Formation 与 EMR Serverless 结合使用时,请考虑以下注意事项和限制。
注意
在 EMR Serverless 上为 Spark 作业启用 Lake Formation 时,作业会启动系统驱动程序和用户驱动程序。如果在启动时指定了预初始化容量,则会从预初始化容量中预置驱动程序,系统驱动程序的数量与指定的用户驱动程序的数量相等。如果选择按需容量,EMR Serverless 除了会启动用户驱动程序外,还会启动系统驱动程序。要估算在 Lake Formation 作业中使用 EMR Serverless 相关的成本,请使用 AWS Pricing Calculator
启用 Lake Formation 的 Amazon EMR Serverless 适用于除 AWS GovCloud(美国东部)和 AWS GovCloud(美国西部)以外的所有受支持的 EMR Serverless 区域。
-
Amazon EMR Serverless 仅支持通过 Lake Formation 对 Apache Hive 和 Apache Iceberg 表进行精细访问控制。Apache Hive 格式包括 Parquet、ORC 和 xSV。
-
启用 Lake Formation 的应用程序不支持使用自定义 EMR Serverless 映像。
-
您不能为 Lake Formation 作业关闭
DynamicResourceAllocation
。 -
您只能将 Lake Formation 与 Spark 作业结合使用。
-
启用 Lake Formation 的 EMR Serverless 在整个作业中仅支持单个 Spark 会话。
-
启用 Lake Formation 的 EMR Serverless 仅支持通过资源链接共享的跨账户表查询。
-
不支持以下项:
-
弹性分布式数据集(RDD)
-
Spark 流
-
使用 Lake Formation 授予的权限写入
-
嵌套列的访问控制
-
-
EMR Serverless 会阻止可能破坏系统驱动程序完全隔离的功能,包括:
-
UDT、HiveUDFS 以及任何涉及自定义类的用户定义函数
-
自定义数据源
-
为 Spark 扩展、连接器或元存储提供额外的 jar
-
ANALYZE TABLE
命令
-
-
为了强制执行访问控制,
EXPLAIN PLAN
和 DDL 操作(如DESCRIBE TABLE
)不会公开受限信息。 -
EMR Serverless 限制访问启用 Lake Formation 的应用程序上的系统驱动程序 Spark 日志。由于系统驱动程序的运行权限更大,因此系统驱动程序生成的事件和日志可能包含敏感信息。为防止未经授权的用户或代码访问这些敏感数据,EMR Serverless 禁止访问系统驱动程序日志。要进行故障排除,请联系 AWS 支持。
-
如果您在 Lake Formation 中注册了表位置,则无论 EMR Serverless 作业运行时角色的 IAM 权限如何,数据访问路径都会经过 Lake Formation 存储的凭证。如果错误配置了在表位置注册的角色,那么使用具有 S3 IAM 权限的角色提交到表位置的作业就会失败。
-
写入 Lake Formation 表使用的是 IAM 权限,而不是 Lake Formation 授予的权限。如果作业运行时角色拥有必要的 S3 权限,就可以使用该权限来运行写操作。
以下是使用 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 DataFrameWriterV2,而不是 V1。