

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 考量和限制
<a name="emr-serverless-lf-enable-considerations"></a>

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

搭配 EMR Serverless 使用 Lake Formation 時，請檢閱下列限制。

**注意**  
當您在 EMR Serverless 上為 Spark 任務啟用 Lake Formation 時，任務會啟動系統驅動程式和使用者驅動程式。如果您在啟動時指定了預先初始化的容量，驅動程式會從預先初始化的容量佈建，且系統驅動程式的數量等於您指定的使用者驅動程式數量。如果您選擇隨需容量，EMR Serverless 會啟動使用者驅動程式以外的系統驅動程式。若要估算與具有 Lake Formation 的 EMR Serverless 任務相關聯的成本，請使用 [AWS 定價計算工具](https://calculator.aws/#/addService/EMR)。
+ Amazon EMR Serverless with Lake Formation 適用於所有支援的 [EMR Serverless 區域](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/considerations.html)。
+ 啟用 Lake Formation 的應用程式不支援使用[自訂 EMR Serverless 映像](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/application-custom-image.html)。
+ 您無法關閉 Lake Formation `DynamicResourceAllocation` 任務。
+ 只能將 Lake Formation 與 Spark 任務搭配使用。
+ 搭配 Lake Formation 的 EMR Serverless 僅支援整個任務的單一 Spark 工作階段。
+ EMR Serverless with Lake Formation 僅支援透過資源連結共用的跨帳戶資料表查詢。
+ 不支援下列內容：
  + 彈性分散式資料集 (RDD)
  + Spark 串流
  + 巢狀資料欄的存取控制
+ EMR Serverless 會封鎖可能會破壞系統驅動程式完整隔離的功能，包括下列項目：
  + UDT、HiveUDF 以及任何涉及自訂類別的使用者定義的函數
  + 自訂資料來源
  + 為 Spark 延伸模組、連接器或中繼存放區提供額外的 jar
  + `ANALYZE TABLE` 命令
+ 如果您的 EMR Serverless 應用程式位於具有 Amazon S3 VPC 端點的私有子網路中，且您連接端點政策來控制存取，則在任務將日誌資料傳送至 AWS Managed Amazon S3 之前，請將 VPC 政策中[受管儲存](logging.html#jobs-log-storage-managed-storage)中詳述的許可納入 S3 閘道端點。如需故障診斷請求，請聯絡 AWS 支援。
+ 從 Amazon EMR 7.9.0 開始，Spark FGAC 在與 s3a：// 方案搭配使用時支援 S3AFileSystem。
+ Amazon EMR 7.11 支援使用 CTAS 建立受管資料表。
+ Amazon EMR 7.12 支援使用 CTAS 建立受管和外部資料表。

## 許可
<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 會使用執行時間角色登入資料來修改資料表資料。
+ 使用檢視或快取資料表做為來源資料時，適用下列限制 （這些限制不適用於 AWS Glue Data Catalog 檢視）：
  + 對於 MERGE、DELETE 和 UPDATE 操作
    + 支援：使用檢視和快取資料表做為來源資料表。
    + 不支援：在指派和條件子句中使用檢視和快取資料表。
  + 對於建立或取代和取代資料表做為 SELECT 操作：
    + 不支援：使用檢視和快取資料表做為來源資料表。
+ 只有在啟用刪除向量時，來源資料中具有 UDFs Delta Lake 資料表才支援 MERGE、DELETE 和 UPDATE 操作。

## 日誌和偵錯
<a name="emr-s-lf-debug-logs"></a>
+ EMR Serverless 限制對已啟用 Lake Formation 之應用程式上的系統驅動程式 Spark 日誌的存取。由於系統驅動程式以更高的許可執行，因此系統驅動程式產生的事件和日誌可能包含敏感資訊。為了防止未經授權的使用者或程式碼存取此敏感資料，EMR Serverless 會停用對系統驅動程式日誌的存取。
+ 系統設定檔日誌一律保留在受管儲存中 – 這是無法停用的強制性設定。這些日誌會使用客戶受管 KMS 金鑰或 AWS 受管 KMS 金鑰安全地儲存和加密。

## 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 DataFrameWriterV2 而非 V1。