本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon EMR 搭配 Lake Formation 的考量事項
搭配 使用 Amazon EMR 時,請考慮下列事項 AWS Lake Formation。
Amazon EMR with Lake Formation 適用於所有可用區域。
-
Amazon EMR 僅支援透過 Lake Formation 對 Apache Hive 和 Apache Iceberg 資料表進行精細存取控制。Apache Hive 格式包括 Parquet、ORC 和 xSV。
-
您無法關閉 Lake Formation
DynamicResourceAllocation
任務。 -
您只能將 Lake Formation 與 Spark 任務搭配使用。
-
Amazon EMR with Lake Formation 僅支援整個任務的單一 Spark 工作階段。
-
Amazon EMR with Lake Formation 僅支援透過資源連結共用的跨帳戶資料表查詢。
-
不支援下列項目:
-
彈性分散式資料集 (RDD)
-
Spark 串流
-
使用 Lake Formation 授予的許可寫入
-
巢狀資料欄的存取控制
-
-
Amazon EMR 會封鎖可能會破壞系統驅動程式完整隔離的功能,包括下列項目:
-
UDTs、HiveUDFs和任何涉及自訂類別的使用者定義函數
-
自訂資料來源
-
為 Spark 延伸模組、連接器或中繼存放區提供額外的 jar
-
ANALYZE TABLE
命令
-
-
為了強制執行存取控制
EXPLAIN PLAN
和 DDL 操作,例如DESCRIBE TABLE
不會公開限制資訊。 -
Amazon EMR 限制對已啟用 Lake Formation 之應用程式上的系統驅動程式 Spark 日誌的存取。由於系統驅動程式以更高的許可執行,因此系統驅動程式產生的事件和日誌可能包含敏感資訊。為了防止未經授權的使用者或程式碼存取此敏感資料,Amazon EMR 會停用對系統驅動程式日誌的存取。
系統設定檔日誌一律保留在受管儲存中 – 這是無法停用的強制性設定。這些日誌會使用客戶受管 KMS 金鑰或 AWS 受管 KMS 金鑰安全地儲存和加密。
如果您的 Amazon EMR 應用程式位於具有 Amazon S3 VPC 端點的私有子網路中,且您連接端點政策來控制存取,則在任務將日誌資料傳送至 AWS Managed Amazon S3 之前,您必須將 VPC 政策中受管儲存中詳述的許可納入 S3 閘道端點。如需故障診斷請求,請聯絡 AWS 支援。
-
如果您已向 Lake Formation 註冊資料表位置,無論 Amazon EMR 任務執行時間角色的 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。
-
如果您想要使用 RecordServer 支援的功能,但尚未支援原生 FGAC,例如回寫至 Lake Formation 註冊資料表,EMR 7.10 提供切換回 RecordServer 的方法。若要切換回,請在啟動叢集時指定下列組態。
{ "Classification": "spark-defaults", "Properties": { "spark.emr.lakeformation.legacy.enabled": "true" } }, { "Classification": "yarn-site", "Properties": { "spark.emr.lakeformation.legacy.enabled": "true" } }