Voraussetzungen für die Tabellenoptimierung - AWS Glue

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Voraussetzungen für die Tabellenoptimierung

Der Tabellenoptimierer nimmt die Berechtigungen der Rolle AWS Identity and Access Management (IAM) an, die Sie angeben, wenn Sie Optimierungsoptionen für eine Tabelle aktivieren. Sie können entweder eine einzelne Rolle für alle Optimierer oder separate Rollen für jeden Optimierer erstellen. Die IAM Rolle muss über die Berechtigungen zum Lesen von Daten und zum Aktualisieren von Metadaten im Datenkatalog verfügen. Sie können eine IAM Rolle erstellen und die folgenden Inline-Richtlinien anhängen:

  • Fügen Sie die folgende Inline-Richtlinie hinzu, die Amazon S3 Lese-/Schreibzugriff auf den Standort für Daten gewährt, die nicht bei Lake Formation registriert sind. Diese Richtlinie umfasst auch Berechtigungen zum Aktualisieren der Tabelle im Datenkatalog und zum Hinzufügen von Protokollen AWS Glue zu Protokollen und zum Veröffentlichen von Metriken. Amazon CloudWatch Für Quelldaten in Amazon S3, die nicht bei Lake Formation registriert sind, wird der Zugriff durch die IAM Berechtigungsrichtlinien für Amazon S3 und AWS Glue Aktionen bestimmt.

    Ersetzen Sie bucket-name in den folgenden Inline-Richtlinien durch den Namen Ihres Amazon-S3-Buckets, aws-account-id und region durch eine gültige AWS -Kontonummer und Region des Datenkatalogs, database_name durch den Namen Ihrer Datenbank und table_name durch den Namen der Tabelle.

    { "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:*" } ] }
  • Verwenden Sie die folgende Richtlinie, um die Verdichtung für Daten zu aktivieren, die bei Lake Formation registriert sind.

    Wenn der Optimierungsrolle keine IAM_ALLOWED_PRINCIPALS Gruppenberechtigungen für die Tabelle erteilt wurden, benötigt die Rolle Lake FormationALTER,DESCRIBE, INSERT und DELETE Berechtigungen für die Tabelle.

    Weitere Informationen zur Registrierung eines Amazon S3 S3-Buckets bei Lake Formation finden Sie unter Hinzufügen eines Amazon S3 S3-Standorts zu Ihrem 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:*" } ] }
  • (Optional) Um Iceberg-Tabellen mit Daten in Amazon S3 S3-Buckets zu optimieren, die mit serverseitiger Verschlüsselung verschlüsselt wurden, benötigt die Verdichtungsrolle Berechtigungen zum Entschlüsseln von Amazon S3 S3-Objekten und zum Generieren eines neuen Datenschlüssels, um Objekte in die verschlüsselten Buckets zu schreiben. Fügen Sie dem gewünschten Schlüssel die folgende Richtlinie hinzu. AWS KMS Wir unterstützen nur Verschlüsselung auf Bucket-Ebene.

    { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::<aws-account-id>:role/<optimizer-role-name>" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*" }
  • (Optional) Für den bei Lake Formation registrierten Datenspeicherort benötigt die Rolle, die zur Registrierung des Speicherorts verwendet wird, Berechtigungen zum Entschlüsseln von Amazon-S3-Objekten und Generieren eines neuen Datenschlüssels, um Objekte in die verschlüsselten Buckets zu schreiben. Weitere Informationen finden Sie unter Registrieren eines verschlüsselten Amazon-S3-Speicherorts.

  • (Optional) Wenn der AWS KMS Schlüssel in einem anderen AWS Konto gespeichert ist, müssen Sie der Verdichtungsrolle die folgenden Berechtigungen hinzufügen.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": ["arn:aws:kms:<REGION>:<KEY_OWNER_ACCOUNT_ID>:key/<KEY_ID>" ] } ] }
  • Die Rolle, die Sie zum Ausführen der Verdichtung verwenden, muss die iam:PassRole-Berechtigung für die Rolle haben.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::<account-id>:role/<optimizer-role-name>" ] } ] }
  • Fügen Sie der Rolle die folgende Vertrauensrichtlinie hinzu, damit der AWS Glue Dienst die IAM Rolle beim Ausführen des Verdichtungsprozesses übernimmt.

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