本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Apache Iceberg 和 Lake Formation
Amazon EMR 版本 6.15.0 及更高版本包括支持基於 Apache Iceberg 的精細訪問控制,當您使 AWS Lake Formation 用 Spark 讀取和寫入數據時。SQLAmazon 通過 Apache Iceberg EMR 支持表,行,列和單元級訪問控制。使用此功能,您可以在 copy-on-write 資料表上執行快照查詢,以便在指定認可或壓縮瞬間查詢資料表的最新快照集。
若要使用 Iceberg 格式,請設定以下組態。使用 Iceberg 資料表所在的 Amazon S3 路徑取代
,並使用您的值取代區域和帳戶 ID 預留位置。DB_LOCATION
spark-sql \ --conf spark.sql.extensions=org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions,com.amazonaws.emr.recordserver.connector.spark.sql.RecordServerSQLExtension --conf spark.sql.catalog.iceberg_catalog=org.apache.iceberg.spark.SparkCatalog --conf spark.sql.catalog.iceberg_catalog.warehouse=s3://
DB_LOCATION
--conf spark.sql.catalog.iceberg_catalog.catalog-impl=org.apache.iceberg.aws.glue.GlueCatalog --conf spark.sql.catalog.iceberg_catalog.io-impl=org.apache.iceberg.aws.s3.S3FileIO --conf spark.sql.catalog.iceberg_catalog.glue.account-id=ACCOUNT_ID
--conf spark.sql.catalog.iceberg_catalog.glue.id=ACCOUNT_ID
--conf spark.sql.catalog.iceberg_catalog.client.assume-role.region=AWS_REGION
--conf spark.sql.secureCatalog=iceberg_catalog
如果您希望 Lake Formation 使用記錄服務器來管理您的 Spark 目錄,請設置spark.sql.catalog.<managed_catalog_name>.lf.managed
為 true。
您還應該小心通過NOT以下假設角色設置:
--conf spark.sql.catalog.my_catalog.client.assume-role.region --conf spark.sql.catalog.my_catalog.client.assume-role.arn --conf spark.sql.catalog.my_catalog.client.assume-role.tags.LakeFormationAuthorizedCaller
以下支援矩陣列出了 Apache Iceberg 和 Lake Formation 的部分核心功能:
寫入時複製 | 讀取時合併的比較 | |
---|---|---|
快照查詢-星火 SQL |
✓ |
✓ |
讀取優化查詢-星火 SQL |
✓ |
✓ |
增量查詢 |
✓ |
✓ |
時間歷程查詢 |
✓ |
✓ |
中繼資料表 |
✓ |
✓ |
DML |
✓ |
✓ |
DDL命令 |
||
Spark 資料來源查詢 |
||
Spark 資料來源寫入 |