Prerequisiti per l'ottimizzazione delle tabelle - AWS Glue

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Prerequisiti per l'ottimizzazione delle tabelle

L'ottimizzatore delle tabelle presuppone le autorizzazioni di AWS Identity and Access Management (IAM) ruolo specificato quando abilitate le opzioni di ottimizzazione (compattazione, conservazione delle istantanee ed eliminazione di file orfani) per una tabella. È possibile creare un singolo ruolo per tutti gli ottimizzatori o creare ruoli separati per ogni ottimizzatore.

Nota

L'ottimizzatore per l'eliminazione dei file orfani non richiede le autorizzazioni o. glue:updateTable s3:putObject Gli ottimizzatori di scadenza e compattazione delle istantanee richiedono lo stesso set di autorizzazioni.

Il IAM ruolo deve disporre delle autorizzazioni per leggere i dati e aggiornare i metadati nel Data Catalog. Puoi creare un IAM ruolo e allegare le seguenti politiche in linea:

  • Aggiungi la seguente politica in linea che concede le autorizzazioni di lettura/scrittura di Amazon S3 sulla posizione per i dati che non sono registrati con AWS Lake Formation. Questa politica include anche le autorizzazioni per aggiornare la tabella nel Data Catalog e per consentire AWS Glue per aggiungere log in Amazon CloudWatch registra e pubblica le metriche. Per i dati di origine in Amazon S3 che non sono registrati con Lake Formation, l'accesso è determinato dalle politiche di IAM autorizzazione per Amazon S3 e AWS Glue azioni.

    Nelle seguenti politiche in linea, sostituiscilo bucket-name con il nome del tuo bucket Amazon S3 e con un valore aws-account-id valido region AWS numero di account e regione del catalogo dati, database_name con il nome del database e table_name con il nome della tabella.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::<bucket-name>/*" ] }, { "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::<bucket-name>" ] }, { "Effect": "Allow", "Action": [ "glue:UpdateTable", "glue:GetTable" ], "Resource": [ "arn:aws:glue:<region>:<aws-account-id>:table/<database-name>/<table-name>", "arn:aws:glue:<region>:<aws-account-id>:database/<database-name>", "arn:aws:glue:<region>:<aws-account-id>:catalog" ] }, { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:<region>:<aws-account-id>:log-group:/aws-glue/iceberg-compaction/logs:*", "arn:aws:logs:<region>:<aws-account-id>:log-group:/aws-glue/iceberg-retention/logs:*", "arn:aws:logs:<region>:<aws-account-id>:log-group:/aws-glue/iceberg-orphan-file-deletion/logs:*" } ] }
  • Utilizza la seguente policy per abilitare la compattazione dei dati registrati con Lake Formation.

    Se al ruolo di ottimizzazione non sono concesse le autorizzazioni di IAM_ALLOWED_PRINCIPALS gruppo sulla tabella, il ruolo richiede Lake Formation ALTER INSERT e DELETE le autorizzazioni sulla tabella. DESCRIBE

    Per ulteriori informazioni sulla registrazione di un bucket Amazon S3 con Lake Formation, consulta Aggiungere una posizione Amazon S3 al data lake.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lakeformation:GetDataAccess" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "glue:UpdateTable", "glue:GetTable" ], "Resource": [ "arn:aws:glue:<region>:<aws-account-id>:table/<databaseName>/<tableName>", "arn:aws:glue:<region>:<aws-account-id>:database/<database-name>", "arn:aws:glue:<region>:<aws-account-id>:catalog" ] }, { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:<region>:<aws-account-id>:log-group:/aws-glue/iceberg-compaction/logs:*", "arn:aws:logs:<region>:<aws-account-id>:log-group:/aws-glue/iceberg-retention/logs:*", "arn:aws:logs:<region>:<aws-account-id>:log-group:/aws-glue/iceberg-orphan-file-deletion/logs:*" } ] }
  • (Facoltativo) Per ottimizzare le tabelle Iceberg con i dati nei bucket Amazon S3 crittografati utilizzando la crittografia lato server, il ruolo di compattazione richiede le autorizzazioni per decrittografare gli oggetti Amazon S3 e generare una nuova chiave dati per scrivere oggetti nei bucket crittografati. Aggiungi la seguente politica alla politica desiderata AWS KMS chiave. Supportiamo solo la crittografia a livello di bucket.

    { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::<aws-account-id>:role/<optimizer-role-name>" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*" }
  • (Facoltativo) Per la posizione dei dati registrati con Lake Formation, il ruolo utilizzato per registrare la posizione richiede le autorizzazioni per decrittografare gli oggetti Amazon S3 e generare una nuova chiave dati per scrivere oggetti nei bucket crittografati. Per ulteriori informazioni, consulta la pagina Registrazione di una posizione crittografata Amazon S3.

  • (Facoltativo) Se AWS KMS la chiave è memorizzata in un altro AWS account, è necessario includere le seguenti autorizzazioni per il ruolo di compattazione.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": ["arn:aws:kms:<REGION>:<KEY_OWNER_ACCOUNT_ID>:key/<KEY_ID>" ] } ] }
  • Il ruolo utilizzato per eseguire la compattazione deve disporre dell'autorizzazione iam:PassRole relativa al ruolo.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::<account-id>:role/<optimizer-role-name>" ] } ] }
  • Aggiungi la seguente politica di fiducia al ruolo per AWS Glue servizio che assumerà il IAM ruolo di eseguire il processo di compattazione.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "glue.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }