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 übernimmt die Berechtigungen des AWS Identity and Access Management (IAM) Rolle, die Sie angeben, wenn Sie Optimierungsoptionen (Komprimierung, Aufbewahrung von Snapshots und Löschen verwaister Dateien) für eine Tabelle aktivieren. Sie können entweder eine einzelne Rolle für alle Optimierer oder separate Rollen für jeden Optimierer erstellen.

Anmerkung

Für den Optimierer für das Löschen verwaister Dateien sind die Berechtigungen oder nicht erforderlich. glue:updateTable s3:putObject Die Optimierer für den Ablauf und die Komprimierung von Snapshots benötigen dieselben Berechtigungen.

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-/Schreibberechtigungen für den Standort für Daten gewährt, die nicht registriert sind AWS Lake Formation. Diese Richtlinie umfasst auch Berechtigungen zum Aktualisieren der Tabelle im Datenkatalog und zum Zulassen AWS Glue um Logs hinzuzufügen Amazon CloudWatch protokolliert und veröffentlicht Metriken. Für Quelldaten in Amazon S3, die nicht bei Lake Formation registriert sind, wird der Zugriff durch die IAM Berechtigungsrichtlinien für Amazon S3 bestimmt und AWS Glue Aktionen.

    Ersetzen Sie in den folgenden Inline-Richtlinien bucket-name durch Ihren Amazon S3 S3-Bucket-Namen aws-account-id und region durch einen gültigen AWS Kontonummer und Region des Datenkatalogs database_name mit dem Namen Ihrer Datenbank und table_name dem 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:*", "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:*" } ] }
  • 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:*", "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:*" } ] }
  • (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 der gewünschten Richtlinie die folgende Richtlinie hinzu AWS KMS Schlüssel. 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 AWS KMS Der Schlüssel ist in einem anderen gespeichert AWS Konto, Sie müssen die folgenden Berechtigungen für die Verdichtungsrolle angeben.

    { "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 für die folgende Vertrauensrichtlinie hinzu AWS Glue Dienst, der 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" } ] }