本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
搭配 AWS Glue 使用 Lake Formation 時,請考慮下列考量和限制。
AWS 除了 AWS GovCloud (美國東部) 和 AWS GovCloud (美國西部) 以外,所有支援的 區域都提供 Glue with Lake Formation。
-
AWS Glue 僅支援透過 Lake Formation 對 Apache Hive 和 Apache Iceberg 資料表進行精細存取控制。Apache Hive 格式包括 Parquet、ORC 和 CSV。
-
您只能將 Lake Formation 與 Spark 任務搭配使用。
-
AWS Glue with Lake Formation 僅支援整個任務的單一 Spark 工作階段。
-
啟用 Lake Formation 時,AWS Glue 需要更多工作者,因為它需要一個系統驅動程式、系統執行器、一個使用者驅動程式,以及選擇性的使用者執行器 (當您的任務具有 UDFs 或 時需要
spark.createDataFrame
)。 -
AWS Glue with Lake Formation 僅支援透過資源連結共用的跨帳戶資料表查詢。資源連結的名稱必須與來源帳戶的資源相同。
-
若要啟用 Glue AWS 任務的精細存取控制,請傳遞
--enable-lakeformation-fine-grained-access
任務參數。 -
您可以設定 AWS Glue 任務以使用 AWS Glue 多目錄階層。如需與 Glue
StartJobRun
API AWS 搭配使用之組態參數的相關資訊,請參閱在 EMR Serverless AWS 上使用 Glue 多目錄階層。 -
不支援下列項目:
-
彈性分散式資料集 (RDD)
-
Spark 串流
-
使用 Lake Formation 授予的許可寫入
-
巢狀資料欄的存取控制
-
-
AWS Glue 會封鎖可能會破壞系統驅動程式完全隔離的功能,包括下列項目:
-
UDTs、HiveUDFs和任何涉及自訂類別的使用者定義函數
-
自訂資料來源
-
為 Spark 延伸模組、連接器或中繼存放區提供額外的 jar
-
ANALYZE TABLE
命令
-
-
為了強制執行存取控制,
EXPLAIN PLAN
以及 DDL 操作,例如DESCRIBE TABLE
不會公開限制資訊。 -
AWS Glue 會限制對已啟用 Lake Formation 之應用程式上的系統驅動程式 Spark 日誌的存取。由於系統驅動程式執行時具有更多存取權,因此系統驅動程式產生的事件和日誌可能包含敏感資訊。為了防止未經授權的使用者或程式碼存取此敏感資料, AWS Glue 已停用對系統驅動程式日誌的存取。如需故障診斷,請聯絡 AWS 支援。
-
如果您已向 Lake Formation 註冊資料表位置,資料存取路徑會經過 Lake Formation 儲存的登入資料,而不論 AWS Glue 任務執行時間角色的 IAM 許可為何。如果您錯誤設定已向資料表位置註冊的角色,提交的任務若使用該角色並具有資料表位置的 S3 IAM 許可,將會失敗。
-
寫入 Lake Formation 資料表會使用 IAM 許可,而不是 Lake Formation 授予的許可。如果您的任務執行期角色具有必要的 S3 許可,您可以使用它來執行寫入操作。
以下是使用 Apache Iceberg 時的考量和限制:
-
您只能搭配工作階段目錄使用 Apache Iceberg,不能任意命名目錄。
-
在 Lake Formation 中註冊的 Iceberg 資料表僅支援中繼資料表
history
、metadata_log_entries
、manifests
、、snapshots
files
和refs
。 AWS Glue 會隱藏可能具有敏感資料的資料欄,例如partitions
、path
和summaries
。此限制不適用於未在 Lake Formation 中註冊的 Iceberg 資料表。 -
未在 Lake Formation 中註冊的資料表支援所有 Iceberg 預存程序。任何資料表都不支援
register_table
和migrate
程序。 -
我們建議您使用 Iceberg DataFrameWriterV2 而非 V1。
工作者配置範例
對於使用下列參數設定的任務:
--enable-lakeformation-fine-grained-access=true
--number-of-workers=20
工作者配置為:
使用者驅動程式的一個工作者。
系統驅動程式的一個工作者。
保留給使用者執行器的剩餘 18 個工作者 (即 2 個工作者) 的 10%。
最多配置 16 個工作者給系統執行器。
啟用自動調整規模後,使用者執行器可以視需要使用系統執行器中任何未配置的容量。
控制使用者執行器配置
您可以使用下列組態來調整使用者執行器的保留百分比:
--conf spark.dynamicAllocation.maxExecutorsRatio=<value between 0 and 1>
此組態允許微調控制相對於總可用容量預留的使用者執行器數量。