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 di tabella presuppone le autorizzazioni del ruolo AWS Identity and Access Management (IAM) specificato quando si abilitano le opzioni di ottimizzazione per una tabella. È possibile creare un singolo ruolo per tutti gli ottimizzatori o creare ruoli separati per ogni ottimizzatore. 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 policy in linea che concede le autorizzazioni di lettura/scrittura di Amazon S3 sulla posizione per i dati non registrati con Lake Formation. Questa politica include anche le autorizzazioni per aggiornare la tabella nel Data Catalog e per consentire AWS Glue l'aggiunta di log nei Amazon CloudWatch log e la pubblicazione di 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 dalle azioni. AWS Glue

    Nelle seguenti policy in linea, sostituisci bucket-name con il nome del bucket Amazon S3, aws-account-id e region con un numero di account AWS valido e una 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:*" } ] }
  • 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:*" } ] }
  • (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 AWS KMS la seguente policy alla chiave desiderata. 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 la AWS KMS chiave è archiviata 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 attendibilità al ruolo affinché il AWS Glue servizio assuma 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" } ] }