Tutorial: Erste Schritte mit S3 Tables - Amazon Simple Storage Service

Tutorial: Erste Schritte mit S3 Tables

In diesem Tutorial erstellen Sie einen Tabellen-Bucket und integrieren Tabellen-Buckets in Ihrer Region in AWS-Analytikdienste. Als Nächstes verwenden Sie die, AWS CLI um Ihren ersten Namespace und Ihre erste Tabelle in Ihrem Tabellen-Bucket zu erstellen. Anschließend erteilen Sie zuvor Berechtigungen AWS Lake Formation für Ihre Tabelle, sodass Sie beginnen können, Ihre Tabelle mit Athena abzufragen.

Tipp

Wenn Sie tabellarische Daten von Allzweck-Buckets in Tabellen-Buckets migrieren, bietet Ihnen die AWS-Lösungsportfolio eine Anleitung, die Sie dabei unterstützt. Diese Lösung automatisiert das Verschieben von Apache Iceberg und Apache Hive Tabellen, die in AWS Glue Data Catalog registriert und in Allzweck-Buckets gespeichert sind, in Tabellen-Buckets unter Verwendung von AWS Step Functions und Amazon EMR mit Apache Spark. Weitere Informationen finden Sie unter Anleitung zur Migration von Tabellendaten von Amazon S3 zu S3 Tables in der AWS Lösungsportfolio.

Schritt 1: Erstellen eines Tabellen-Buckets und Integrieren eines Tabellen-Buckets in AWS-Analytikdienste

In diesem Schritt verwenden Sie die Amazon-S3-Konsole, um Ihren ersten Tabellen-Bucket zu erstellen. Weitere Möglichkeiten zum Erstellen eines Tabellen-Buckets finden Sie unter Tabellen-Bucket erstellen.

Anmerkung

Standardmäßig integriert die Amazon-S3-Konsole Ihre Tabellen-Buckets automatisch in Amazon SageMaker Lakehouse, wodurch AWS-Analytikservices Ihre S3-Tables-Daten automatisch erkennen und darauf zugreifen können. Wenn Sie Ihren ersten Tabellen-Bucket programmgesteuert mithilfe von AWS Command Line Interface (AWS CLI), AWS SDKs oder der REST-API erstellen, müssen Sie die Integration der AWS-Analytikservices manuell abschließen. Weitere Informationen finden Sie unter Integrieren von Amazon S3 Tables mit AWS-Analytikservices.

  1. Melden Sie sich bei der AWS-Managementkonsole an und öffnen Sie die Amazon-S3-Konsole unter https://console.aws.amazon.com/s3/.

  2. Wählen Sie in der Navigationsleiste oben auf der Seite den Namen der aktuell angezeigten AWS-Region aus. Wählen Sie anschließend die Region aus, in der Sie den Tabellen-Bucket erstellen möchten.

  3. Wählen Sie im linken Navigationsbereich Tabellen-Buckets aus.

  4. Wählen Sie Tabellen-Bucket erstellen aus.

  5. Geben Sie unter Allgemeine Konfiguration einen Namen für Ihren Tabellen-Bucket ein.

    Anforderungen an den Namen des Tabellen-Buckets:

    • Muss innerhalb einer Region in Ihrem AWS-Konto eindeutig sein.

    • Muss zwischen 3 und 63 Zeichen lang sein.

    • Darf nur aus Kleinbuchstaben, Zahlen und Bindestrichen (-) bestehen. (-).

    • Muss mit einer Zahl oder einem Buchstaben beginnen und enden.

    Der Name eines einmal erstellten Tabellen-Buckets kann nicht nachträglich geändert werden. Das AWS-Konto, mit dem der Bucket erstellt wird, ist Eigentümer des Tabellen-Buckets. Weitere Informationen zur Benennung von Tabellen-Buckets finden Sie unter Regeln für die Benennung von Tabellen-Buckets.

  6. Vergewissern Sie sich, dass im Abschnitt Integration mit AWS-Analytikservices das Kontrollkästchen Integration aktivieren aktiviert ist.

    Wenn Sie beim Erstellen Ihres ersten Tabellen-Bucket über die Konsole die Option Integration aktivieren auswählen, versucht Amazon S3, Ihren Tabellen-Bucket mit AWS-Analytikservices zu integrieren. Diese Integration ermöglicht es Ihnen, AWS-Analytikdienste zu verwenden, um auf alle Tabellen in der aktuellen Region zuzugreifen. Weitere Informationen finden Sie unter Integrieren von Amazon S3 Tables mit AWS-Analytikservices.

  7. Wählen Sie Create Bucket (Bucket erstellen) aus.

Schritt 2: Erstellen eines Tabellen-Namespace und einer Tabelle

Für diesen Schritt erstellen Sie einen Namespace in Ihrem Tabellen-Bucket und erstellen anschließend eine neue Tabelle unter diesem Namespace. Sie können einen Tabellen-Namespace und eine Tabelle entweder über die Konsole oder die AWS CLI erstellen.

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.“

Das folgende Verfahren erstellt mithilfe der Amazon-S3-Konsole einen Namespace und eine Tabelle mit Amazon Athena.

So erstellen Sie einen Tabellen-Namespace und eine Tabelle
  1. Melden Sie sich bei der AWS-Managementkonsole an und öffnen Sie die Amazon-S3-Konsole unter https://console.aws.amazon.com/s3/.

  2. Wählen Sie im linken Navigationsbereich Tabellen-Buckets aus.

  3. Wählen Sie auf der Seite Tabellen-Buckets den Tabellen-Bucket aus, in dem Sie eine Tabelle erstellen wollen.

  4. Wählen Sie auf der Detailseite des Tabellen-Bucket die Option Tabelle mit Athena erstellen.

  5. Wählen Sie im Dialogfeld Tabelle mit Athena erstellen die Option Namespace erstellen aus, und geben Sie dann einen Namen in das Feld Namespace-Name ein. Namespace-Namen müssen 1 bis 255 Zeichen lang sein und innerhalb des Tabellen-Buckets eindeutig sein. Gültige Zeichen sind a–z, 0–9 und Unterstriche (_). Unterstriche sind am Anfang von Namespace-Namen nicht zulässig.

  6. Wählen Sie Create namespace (Namespace erstellen) aus.

  7. Wählen Sie Tabelle mit Athena erstellen.

  8. Die Amazon-Athena-Athena-Konsole wird geöffnet und der Athena-Abfrage-Editor wird angezeigt. Der Abfrage-Editor enthält eine Beispielabfrage, mit der Sie eine Tabelle erstellen können. Ändern Sie die Abfrage, um den Tabellennamen und die Spalten anzugeben, die Ihre Tabelle haben soll.

  9. Wenn Sie mit dem Ändern der Abfrage fertig sind, wählen Sie Ausführen, um Ihre Tabelle zu erstellen.

Wenn Ihre Tabellenerstellung erfolgreich war, erscheint der Name Ihrer neuen Tabelle in der Tabellenliste in Athena. Wenn Sie zurück zur Amazon-S3-Konsole navigieren, erscheint Ihre neue Tabelle in der Tabellenliste auf der Detailseite für Ihren Tabellen-Bucket, nachdem Sie die Liste aktualisiert haben.

Um die folgenden AWS CLI Beispielbefehle zu verwenden, um einen Namespace in Ihrem Tabellen-Bucket zu erstellen und dann eine neue Tabelle mit einem Schema unter diesem Namespace zu erstellen, ersetzen Sie die user input placeholder Werte durch Ihre eigenen.

Voraussetzungen
  1. Erstellen Sie einen neuen Namespace in Ihrem Tabellen-Bucket, indem Sie den folgenden Befehl ausführen:

    aws s3tables create-namespace \ --table-bucket-arn arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-table-bucket \ --namespace my_namespace
    1. Bestätigen Sie, dass Ihr Namespace erfolgreich erstellt wurde, indem Sie den folgenden Befehl ausführen:

      aws s3tables list-namespaces \ --table-bucket-arn arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-table-bucket
  2. Erstellen Sie eine neue Tabelle mit einem Tabellenschema, indem Sie den folgenden Befehl ausführen:

    aws s3tables create-table --cli-input-json file://mytabledefinition.json

    Verwenden Sie für die mytabledefinition.json-Datei die folgende Beispieltabellendefinition:

    { "tableBucketARN": "arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-table-bucket", "namespace": "my_namespace", "name": "my_table", "format": "ICEBERG", "metadata": { "iceberg": { "schema": { "fields": [ {"name": "id", "type": "int","required": true}, {"name": "name", "type": "string"}, {"name": "value", "type": "int"} ] } } } }

(Optional) Schritt 3: Lake Formation Berechtigungen für Ihre Tabelle

In diesem Schritt gewähren Sie anderen IAM-Prinzipalen Lake Formation-Berechtigungen für Ihre neue Tabelle. Diese Berechtigungen ermöglichen es anderen Prinzipalen als Ihnen, mithilfe von Athena und anderen AWS-Analytikservices auf Tabellen-Bucket-Ressourcen zuzugreifen. Weitere Informationen finden Sie unter Erteilen der Lake Formation-Berechtigung für eine Tabelle oder Datenbank. Wenn Sie der einzige Benutzer sind, der auf Ihre Tabellen zugreift, können Sie diesen Schritt überspringen.

  1. Ö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 Data-Lake-Administrator erstellen.

  2. Wählen Sie im Navigationsbereich Data permissions (Datenberechtigungen) und dann Grant (Erteilen) aus.

  3. Wählen Sie auf der Seite Grant Permissions unter Prinzipale die Option IAM-Benutzer und -Rollen aus und wählen Sie dann den IAM-Benutzer oder die IAM-Rolle aus, dem/der Sie die Ausführung von Abfragen in Ihrer Tabelle erlauben möchten.

  4. Wählen Sie unter LF-Tags or catalog resources (LF-Tags oder Katalogressourcen) die Option Named Data Catalog resources (Benannte Datenkatalogressourcen).

  5. Führen Sie einen der folgenden Schritte aus, je nachdem, ob Sie Zugriff auf alle Tabellen in Ihrem Konto gewähren möchten oder ob Sie nur Zugriff auf die Ressourcen innerhalb des Tabellen-Buckets gewähren möchten, den Sie erstellt haben:

    • Wählen Sie für Kataloge den Katalog auf Kontoebene aus, den Sie bei der Integration Ihres Table-Buckets erstellt haben. Beispiel, 111122223333:s3tablescatalog.

    • Wählen Sie für Kataloge den Unterkatalog für Ihren Tabellen-Bucket aus. Beispiel, 111122223333:s3tablescatalog/amzn-s3-demo-table-bucket.

  6. (Optional) Wenn Sie den Unterkatalog für Ihren Tabellen-Bucket ausgewählt haben, führen Sie eine oder beide der folgenden Aktionen aus:

    • Wählen Sie für Datenbanken den Bucket-Tabellennamespace, den Sie erstellt haben.

    • Wählen Sie für Tabellen die Tabelle aus, die Sie in Ihrem Tabellen-Bucket erstellt haben, oder wählen Sie Alle Tabellen aus.

  7. Je nachdem, ob Sie einen Katalog oder Unterkatalog ausgewählt haben und je nachdem, ob Sie dann eine Datenbank oder eine Tabelle ausgewählt haben, können Sie Berechtigungen auf Katalog-, Datenbank- oder Tabellenebene festlegen. Weitere Informationen zu Lake-Formation-Berechtigungen finden Sie unter Verwalten von Lake Formation-Berechtigungen im AWS Lake Formation-Entwicklerhandbuch.

    Führen Sie eine der folgenden Aktionen aus:

    • Wählen Sie für Katalogberechtigungen Super aus, um dem anderen Prinzipal alle Berechtigungen für Ihren Katalog zu gewähren, oder wählen Sie detailliertere Berechtigungen wie Beschreiben aus.

    • Bei Datenbankberechtigungen können Sie Super nicht wählen, um dem anderen Prinzipal alle Berechtigungen für Ihre Datenbank zu gewähren. Wählen Sie stattdessen detailliertere Berechtigungen wie Beschreiben.

    • Wählen Sie für Tabellenberechtigungen Super aus, um dem anderen Prinzipal alle Berechtigungen für Ihre Tabelle zu gewähren, oder wählen Sie detailliertere Berechtigungen wie Auswählen oder Beschreiben.

      Anmerkung

      Wenn Sie Lake Formation-Berechtigungen für eine Datenkatalogressource einem externen Konto oder direkt einem IAM-Prinzipal in einem anderen Konto gewähren, verwendet Lake Formation den Dienst AWS Resource Access Manager (AWS RAM), um die Ressource gemeinsam zu nutzen. Befindet sich das Konto des Empfängers in derselben Organisation wie das Konto des Zuweisungsempfängers, steht die gemeinsam genutzte Ressource dem Empfänger sofort zur Verfügung. Wenn sich das Konto des Zuschussempfängers nicht in derselben Organisation befindet, sendet AWS RAM eine Einladung an das Konto des Empfängers, den Ressourcenzuschuss anzunehmen oder abzulehnen. Um die gemeinsam genutzte Ressource verfügbar zu machen, muss der Data Lake-Administrator des Empfängerkontos dann die AWS RAM-Konsole verwenden oder die AWS CLI-Einladung annehmen. Weitere Informationen zur kontenübergreifenden Datenfreigabe finden Sie unter Kontenübergreifender Datenaustausch in Lake Formation im AWS Lake Formation-Entwicklerhandbuch.

  8. Wählen Sie Grant (Erteilen).

Schritt 4: Abfragen von Daten mit SQL in Athena

Sie können Ihre Tabelle mit SQL in Athena abfragen. Athena unterstützt Abfragen in Data Definition Language (DDL), Data Manipulation Language (DML) und Data Query Language (DQL) für S3 Tables.

Sie können auf die Athena-Abfrage entweder über die Amazon-S3-Konsole oder über die Amazon Athena-Konsole zugreifen.

Das folgende Verfahren verwendet die Amazon-S3-Konsole, um auf den Athena-Abfrage-Editor zuzugreifen, sodass Sie eine Tabelle mit Amazon Athena abfragen können.

So fragen Sie eine Tabelle ab
  1. Melden Sie sich bei der AWS-Managementkonsole an und öffnen Sie die Amazon-S3-Konsole unter https://console.aws.amazon.com/s3/.

  2. Wählen Sie im linken Navigationsbereich Tabellen-Buckets aus.

  3. Wählen Sie auf der Seite Tabellen-Buckets den Tabellen-Bucket aus, der die Tabelle enthält, die Sie abfragen möchten.

  4. Wählen Sie auf der Seite Tabellen-Bucket-Details das Optionsfeld neben dem Namen der Tabelle aus, die Sie abfragen möchten.

  5. Wählen Sie Tabelle mit Athena abfragen.

  6. Die Amazon Athena-Konsole wird geöffnet und der Athena-Abfrageeditor wird mit einer für Sie geladenen SELECT-Beispielabfrage angezeigt. Ändern Sie diese Abfrage nach Bedarf für Ihren Anwendungsfall.

  7. Wählen Sie dann Run (Ausführen) aus, um die Abfrage auszuführen.

So fragen Sie eine Tabelle ab
  1. Öffnen Sie die Athena-Konsole unter https://console.aws.amazon.com/athena/.

  2. Fragen Sie Ihre Tabelle ab. Nachfolgend finden Sie eine Musterabfrage, die Sie ändern können. Ersetzen Sie user input placeholders durch Ihre eigenen Informationen.

    SELECT * FROM "s3tablescatalog/amzn-s3-demo-table-bucket"."my_namespace"."my_table" LIMIT 10
  3. Wählen Sie dann Run (Ausführen) aus, um die Abfrage auszuführen.