Integrieren von Amazon S3 Tables mit AWS-Analytikservices
Dieses Thema behandelt die Voraussetzungen und Verfahren, die erforderlich sind, um Ihre Amazon S3-Tabellen-Buckets in AWS-Analytikservices zu integrieren. Eine Übersicht über die Funktionsweise der Integration finden Sie unterÜberblick über die Integration von S3 Tables.
Anmerkung
Diese Integration verwendet die Dienste AWS Glue und AWS Lake Formation und kann AWS Glue-Anforderungs- und Speicherkosten verursachen. Weitere Informationen finden Sie unter AWS Glue – Preise
Für die Ausführung von Abfragen in Ihren S3 Tables fallen zusätzliche Preise an. Weitere Informationen finden Sie in den Preisinformationen für die von Ihnen verwendete Query Engine.
Voraussetzungen für die Integration
Die folgenden Voraussetzungen müssen erfüllt sein, um Tabellen-Buckets in AWS-Analytikservices zu integrieren:
Fügen Sie die AWS-verwaltete Richtlinie AWSLakeFormationDataAdmin Ihrem AWS Identity and Access Management(IAM-)Prinzipal hinzu, um diesen Benutzer zum Data Lake-Administrator zu ernennen. Weitere Informationen zum Erstellen eines Data Lake-Administrators finden Sie unter Erstellen eines Data Lake-Administrators im AWS Lake Formation-Entwicklerhandbuch.
-
Sie fügen Ihrem IAM-Prinzipal Berechtigungen für die Operation
glue:PassConnectionhinzu. -
Fügen Sie Ihrem IAM-Prinzipal Berechtigungen für die Operationen
lakeformation:RegisterResourceundlakeformation:RegisterResourceWithPrivilegedAccesshinzu. Auf die neueste Version von AWS Command Line Interface (AWS CLI) aktualisieren.
Wichtig
Achten Sie beim Erstellen von Tabellen darauf, dass Sie in Ihren Tabellennamen und Tabellendefinitionen ausschließlich Kleinbuchstaben verwenden. Stellen Sie beispielsweise sicher, dass Ihre Spaltennamen ausschließlich in Kleinbuchstaben geschrieben sind. Wenn Ihr Tabellenname oder Ihre Tabellendefinition Großbuchstaben enthält, wird die Tabelle von AWS Lake Formation oder der AWS Glue Data Catalog nicht unterstützt. In diesem Fall ist Ihre Tabelle für AWS-Analytikservices wie Amazon Athena nicht sichtbar, auch wenn Ihre Tabellen-Buckets in AWS-Analytikservices integriert sind.
Wenn Ihre Tabellendefinition Großbuchstaben enthält, erhalten Sie beim Ausführen einer SELECT-Abfrage in Athena die folgende Fehlermeldung: „GENERIC_INTERNAL_ERROR: Get table request failed: com.amazonaws.services.glue.model.ValidationException: Unsupported Federation Resource - Invalid table or column names.“
Integrieren von Tabellen-Buckets in AWS-Analytikdienste
Diese Integration muss einmal pro AWS-Region durchgeführt werden.
Wichtig
Die AWS Analytics-Services-Integration verwendet jetzt die WithPrivilegedAccess Option im registerResource Lake Formation-API-Vorgang, um S3-Tabellen-Buckets zu registrieren. Die Integration erstellt jetzt auch den s3tablescatalog Katalog in der, AWS Glue Data Catalog indem die AllowFullTableExternalDataAccess Option im CreateCatalog AWS Glue API-Vorgang verwendet wird.
Wenn Sie die Integration mit der Vorschauversion einrichten, können Sie Ihre aktuelle Integration weiterhin verwenden. Der aktualisierte Integrationsprozess bietet jedoch Leistungsverbesserungen, weshalb wir eine Migration empfehlen. Informationen zur Migration zur aktualisierten Integration finden Sie unterMigration zum aktualisierten Integrationsprozess.
Öffnen Sie die Amazon-S3-Konsole unter https://console.aws.amazon.com/s3/
. Wählen Sie im linken Navigationsbereich Tabellen-Buckets aus.
Wählen Sie Tabellen-Bucket erstellen aus.
Anschließend wird die Seite Tabellen-Bucket erstellen geöffnet.
Geben Sie einen Namen für den Tabellen-Bucket ein und stellen Sie sicher, dass das Kontrollkästchen Integration aktivieren ausgewählt ist.
Wählen Sie Tabellen-Bucket erstellen aus. Amazon S3 versucht daraufhin, Ihre Tabellen-Buckets automatisch in diese Region zu integrieren.
Wenn Sie Tabellen-Buckets zum ersten Mal in eine Region integrieren, erstellt Amazon S3 für Sie eine neue IAM-Servicerolle. Diese Rolle ermöglicht Lake Formation den Zugriff auf alle Tabellen-Buckets in Ihrem Konto und Verbundzugriff auf Ihre Tabellen in AWS Glue Data Catalog.
Tabellen-Buckets über die AWS CLI integrieren
Die folgenden Schritte zeigen, wie die AWS CLI verwendet wird, um Tabellen-Buckets zu integrieren. Wenn Sie diese Schritte verwenden wollen, ersetzen Sie durch Ihre eigenen Informationen.user input placeholders
Erstellen Sie einen Tabellen-Bucket.
aws s3tables create-table-bucket \ --regionus-east-1\ --nameamzn-s3-demo-table-bucket-
Erstellen Sie eine IAM-Servicerolle, die Lake Formation Zugriff auf Ihre Tabellenressourcen erteilt.
-
Erstellen Sie eine Datei, die
Role-Trust-Policy.jsonheißt und die folgende Vertrauensrichtlinie enthält:Erstellen Sie die IAM-Servicerolle mit dem folgenden Befehl:
aws iam create-role \ --role-nameS3TablesRoleForLakeFormation\ --assume-role-policy-document file://Role-Trust-Policy.json -
Erstellen Sie eine Datei, die
LF-GluePolicy.jsonheißt und die folgende Richtlinie enthält:Fügen Sie die Richtlinie mit dem folgenden Befehl zur Rolle hinzu:
aws iam put-role-policy \ --role-nameS3TablesRoleForLakeFormation\ --policy-name LakeFormationDataAccessPermissionsForS3TableBucket \ --policy-document file://LF-GluePolicy.json
-
-
Erstellen Sie eine Datei, die
input.jsonheißt und die Folgendes enthält:{ "ResourceArn": "arn:aws:s3tables:us-east-1:111122223333:bucket/*", "WithFederation": true, "RoleArn": "arn:aws:iam::111122223333:role/S3TablesRoleForLakeFormation" }Registrieren von Tabellen-Buckets bei Lake Formation mithilfe des folgenden Befehls:
aws lakeformation register-resource \ --regionus-east-1\ --with-privileged-access \ --cli-input-json file://input.json -
Erstellen Sie eine Datei, die
catalog.jsonheißt und den folgenden Katalog enthält:{ "Name": "s3tablescatalog", "CatalogInput": { "FederatedCatalog": { "Identifier": "arn:aws:s3tables:us-east-1:111122223333:bucket/*", "ConnectionName": "aws:s3tables" }, "CreateDatabaseDefaultPermissions":[], "CreateTableDefaultPermissions":[], "AllowFullTableExternalDataAccess": "True" } }Erstellen Sie den
s3tablescatalog-Katalog mit dem folgenden Befehl. Durch das Erstellen dieses Katalogs werden die AWS Glue Data Catalog mit Objekten gefüllt, die Tabellen-Buckets, Namespaces und Tabellen entsprechen.aws glue create-catalog \ --regionus-east-1\ --cli-input-json file://catalog.json Vergewissern Sie sich mit dem folgenden Befehl, dass der
s3tablescatalog-Katalog im AWS Glue hinzugefügt wurde:aws glue get-catalog --catalog-id s3tablescatalog
Der Integrationsprozess für AWS-Analytikservices wurde aktualisiert. Wenn Sie die Integration mit der Vorschauversion eingerichtet haben, können Sie Ihre aktuelle Integration weiterhin verwenden. Der aktualisierte Integrationsprozess bietet jedoch Leistungsverbesserungen, daher empfehlen wir, die Migration anhand der folgenden Schritte durchzuführen. Weitere Informationen zum Migrations- oder Integrationsprozess finden Sie unter Erstellen eines Amazon S3 Tables-Katalogs im AWS Glue Data Catalog im AWS Lake Formation-Entwicklerhandbuch.
-
Öffnen Sie die AWS Lake Formation-Konsole unter https://console.aws.amazon.com/lakeformation/
und melden Sie sich als Data-Lake-Administrator an. Weitere Informationen zum Erstellen eines Data Lake-Administrators finden Sie unter Erstellen eines Data Lake-Administrators im AWS Lake Formation-Entwicklerhandbuch. -
Gehen Sie wie folgt vor, um Ihren
s3tablescatalogKatalog zu löschen:-
Wählen Sie im linken Navigationsbereich Kataloge aus.
-
Wählen Sie in der Katalogliste das Optionsfeld neben dem
s3tablescatalogKatalog aus. Wählen Sie im Menü Actions die Option Delete.
-
-
Gehen Sie wie folgt vor, um die Registrierung des Datenspeicherorts für den
s3tablescatalogKatalog aufzuheben:-
Gehen Sie im linken Navigationsbereich zum Abschnitt Administration und wählen Sie Data Lake-Standorte aus.
-
Bitte wählen Sie die Optionsschaltfläche neben dem Speicherort des
s3tablescatalog-Data-Lake, beispielsweises3://tables:.region:account-id:bucket/* -
Wählen Sie im Menü Aktionen die Option Entfernen.
-
Wählen Sie im angezeigten Bestätigungsdialogfeld die Option Entfernen.
-
-
Nachdem Sie Ihren
s3tablescatalogKatalog und den Data Lake-Standort gelöscht haben, können Sie die Schritte zur Integration Ihrer Tabellen-Buckets in AWS Analytics-Services mithilfe des aktualisierten Integrationsprozesses ausführen.
Anmerkung
Wenn Sie mit SSE-KMS-verschlüsselten Tabellen in integrierten AWS-Analytikservices arbeiten möchten, benötigt die Rolle, die Sie verwenden, die Berechtigung, Ihren AWS KMS-Schlüssel für Verschlüsselungsvorgänge zu verwenden. Weitere Informationen finden Sie unter Gewähren von Berechtigungen für IAM-Prinzipale zur Arbeit mit verschlüsselten Tabellen in integrierten AWS-Analytikservices.
Nach der Integration erhält Ihr IAM-Prinzipal Lake Formation-Berechtigungen für den Zugriff auf Ihre Tabellen. Wenn Sie anderen IAM-Prinzipalen den Zugriff auf Tabellen ermöglichen möchten, müssen Sie diesen Prinzipalen Lake Formation-Berechtigungen für Ihre Tabellen gewähren. Weitere Informationen finden Sie unter Verwaltung des Zugriffs auf eine Tabelle oder Datenbank mit Lake Formation.