本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
具有精細存取控制的 Apache Iceberg
當您使用 Spark SQL 讀取和寫入資料時,Amazon EMR 6.15.0 版及更高版本包括支援以 AWS Lake Formation Apache Iceberg 為基礎的精細存取控制。Amazon EMR 使用 Apache Iceberg 來支援資料表、資料列、資料欄和儲存格層級存取控制。此功能讓您能對寫入時複製資料表執行快照查詢,以查詢指定遞交或壓縮時的最新資料表快照。
若要使用 Iceberg 格式,請設定以下組態。 將 取代為 Iceberg 資料表所在的 Amazon S3 路徑,並將區域和帳戶 ID 預留位置取代為您自己的值。DB_LOCATION
spark-sql \ --conf spark.sql.extensions=org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions --conf spark.sql.catalog.spark_catalog=org.apache.iceberg.spark.SparkSessionCatalog --conf spark.sql.catalog.spark_catalog.warehouse=s3://DB_LOCATION--conf spark.sql.catalog.spark_catalog.catalog-impl=org.apache.iceberg.aws.glue.GlueCatalog --conf spark.sql.catalog.spark_catalog.io-impl=org.apache.iceberg.aws.s3.S3FileIO --conf spark.sql.catalog.spark_catalog.glue.account-id=ACCOUNT_ID--conf spark.sql.catalog.spark_catalog.glue.id=ACCOUNT_ID--conf spark.sql.catalog.spark_catalog.client.region=AWS_REGION
如果您想要在舊版 EMR 上使用 Iceberg 格式,請改用下列命令:
spark-sql \ --conf spark.sql.extensions=org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions,com.amazonaws.emr.recordserver.connector.spark.sql.RecordServerSQLExtension --conf spark.sql.catalog.spark_catalog=org.apache.iceberg.spark.SparkCatalog --conf spark.sql.catalog.spark_catalog.warehouse=s3://DB_LOCATION--conf spark.sql.catalog.spark_catalog.catalog-impl=org.apache.iceberg.aws.glue.GlueCatalog --conf spark.sql.catalog.spark_catalog.io-impl=org.apache.iceberg.aws.s3.S3FileIO --conf spark.sql.catalog.spark_catalog.glue.account-id=ACCOUNT_ID--conf spark.sql.catalog.spark_catalog.glue.id=ACCOUNT_ID--conf spark.sql.catalog.spark_catalog.client.assume-role.region=AWS_REGION--conf spark.sql.catalog.spark_catalog.lf.managed=true
以下支援矩陣列出了 Apache Iceberg 和 Lake Formation 的部分核心功能:
| 寫入時複製 | 讀取時合併的比較 | |
|---|---|---|
|
快照查詢:Spark SQL |
✓ |
✓ |
|
讀取優化查詢:Spark SQL |
✓ |
✓ |
|
增量查詢 |
✓ |
✓ |
|
時間歷程查詢 |
✓ |
✓ |
|
中繼資料表 |
✓ |
✓ |
|
DML |
✓ |
✓ |
|
DDL 命令 |
||
|
Spark 資料來源查詢 |
||
|
Spark 資料來源寫入 |