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.
Erstellen einer Amazon S3 Table.
Eine Amazon S3 S3-Tabelle ist eine Unterressource eines Tabellen-Buckets. Tabellen werden gespeichert im Apache Iceberg formatieren, sodass Sie mit ihnen arbeiten können, indem Sie Abfrage-Engines und andere Anwendungen verwenden, die Folgendes unterstützen Apache Iceberg. Amazon S3 optimiert Ihre Tabellen kontinuierlich, um die Speicherkosten zu senken und die Leistung von Analyseabfragen zu verbessern.
Wenn Sie eine Tabelle erstellen, generiert Amazon S3 automatisch einen Lagerort für die Tabelle. Ein Lagerort ist ein eindeutiger S3-Standort, an dem Sie mit der Tabelle verknüpfte Objekte lesen und schreiben können. Folgendes Beispiel zeigt das Format eines Warehouse-Speicherorts:
s3://63a8e430-6e0b-46f5-k833abtwr6s8tmtsycedn8s4yc3xhuse1b--table-s3
Tabellen haben das folgende Format für Amazon-Ressourcennamen (ARN):
arn:aws:s3tables:
region
:owner-account-id
:bucket/bucket-name
/table/table-id
Standardmäßig können Sie bis zu 10.000 Tabellen in einem Tabellen-Bucket erstellen. Wenn Sie eine Erhöhung des Kontingents für Tabellen-Buckets oder Tabellen beantragen möchten, wenden Sie sich an Support
Sie können eine Tabelle mithilfe der Amazon S3-Konsole, der Amazon S3-REST-API, AWS SDKs, AWS Command Line Interface (AWS CLI) oder Abfrage-Engines erstellen, die mit Ihren Tabellen-Buckets verbunden sind.
Wenn Sie eine Tabelle erstellen, können Sie die Verschlüsselungseinstellungen für diese Tabelle angeben, es sei denn, Sie erstellen die Tabelle mit Athena. Wenn Sie keine Verschlüsselungseinstellungen angeben, wird die Tabelle mit den Standardeinstellungen für den Tabellen-Bucket verschlüsselt. Weitere Informationen finden Sie unter Verschlüsselung für Tabellen angeben.
Voraussetzungen für das Erstellen von Tabellen
Um eine Tabelle zu erstellen, müssen Sie zunächst Folgendes tun:
Namespaces erstellenin Ihrem Tabellen-Bucket.
Stellen Sie sicher, dass Sie AWS Identity and Access Management (IAM-) Berechtigungen für
s3tables:CreateTable
unds3tables:PutTableData
haben.Anmerkung
Wenn Sie die SSE-KMS-Verschlüsselung für Ihre Tabelle verwenden, benötigen Sie Berechtigungen für und
DescribeKey
Berechtigungen fürs3tables:PutTableEncryption
den ausgewählten Schlüssel. AWS KMS Darüber hinaus muss der AWS KMS Schlüssel, den Sie verwenden, S3 Tables die Berechtigung zur automatischen Tabellenverwaltung gewähren. Weitere Informationen finden Sie unter Berechtigungsanforderungen für die SSE-KMS-Verschlüsselung von S3-Tabellen.
Hinweise zu gültigen Tabellennamen finden Sie unterBenennungsregeln für Tabellen und Namespaces.
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 Analysedienste wie Amazon Athena nicht sichtbar, auch wenn Ihre Tabellen-Buckets in AWS Analysedienste 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: Nicht unterstützte Verbundressource
— Ungültige Tabellen- oder Spaltennamen.“
Das folgende Verfahren verwendet die Amazon S3 S3-Konsole, um eine Tabelle mit Amazon Athena zu erstellen. Wenn Sie noch keinen Namespace in Ihrem Tabellen-Bucket erstellt haben, können Sie dies im Rahmen dieses Prozesses tun. Bevor Sie die folgenden Schritte ausführen, stellen Sie sicher, dass Sie Ihre Tabellen-Buckets in die AWS Analysedienste in dieser Region integriert haben. Weitere Informationen finden Sie unter Verwenden von Amazon S3 S3-Tabellen mit AWS Analysediensten.
Anmerkung
Wenn Sie eine Tabelle mit Athena erstellen, erbt diese Tabelle die Standardverschlüsselungseinstellungen aus dem Tabellen-Bucket. Wenn Sie einen anderen Verschlüsselungstyp verwenden möchten, müssen Sie die Tabelle mit einer anderen Methode erstellen.
Eine Tabelle erstellen
Melden Sie sich bei der an AWS Management Console und öffnen Sie die Amazon S3 S3-Konsole unter https://console.aws.amazon.com/s3/
. -
Wählen Sie im linken Navigationsbereich Tabellen-Buckets aus.
-
Wählen Sie auf der Seite Tabellen-Buckets den Bucket aus, in dem Sie eine Tabelle erstellen möchten.
-
Wählen Sie auf der Seite mit den Bucket-Details die Option Tabelle mit Athena erstellen aus.
-
Führen Sie im Dialogfeld Tabelle mit Athena erstellen einen der folgenden Schritte aus:
-
Erstellen Sie einen neuen Namespace. Wählen Sie Create a Namespace 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. -
Wählen Sie Create namespace (Namespace erstellen) aus.
-
Geben Sie einen vorhandenen Namespace an. Wählen Sie Geben Sie einen vorhandenen Namespace in diesem Tabellen-Bucket an. Wählen Sie dann entweder Aus vorhandenen Namespaces auswählen oder Geben Sie einen vorhandenen Namespace-Namen ein. Wenn Sie mehr als 1.000 Namespaces in Ihrem Bucket haben, müssen Sie den Namespace-Namen eingeben, falls er nicht in der Liste erscheint.
-
-
Wählen Sie Tabelle mit Athena erstellen.
-
Die Amazon Athena Athena-Konsole wird geöffnet und der Athena-Abfrage-Editor wird angezeigt. Das Feld Catalog sollte mit s3tablescatalog/ gefüllt werden, gefolgt vom Namen Ihres Tabellen-Buckets, zum Beispiel s3tablescatalog/.
amzn-s3-demo-bucket
Das Datenbankfeld sollte mit dem Namespace gefüllt werden, den Sie zuvor erstellt oder ausgewählt haben.Anmerkung
Wenn Sie diese Werte in den Feldern Katalog und Datenbank nicht sehen, stellen Sie sicher, dass Sie Ihre Tabellen-Buckets in die AWS Analysedienste in dieser Region integriert haben. Weitere Informationen finden Sie unter Verwenden von Amazon S3 S3-Tabellen mit AWS Analysediensten.
-
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.
-
Wenn Sie mit dem Ändern der Abfrage fertig sind, wählen Sie Ausführen, um Ihre Tabelle zu erstellen.
Anmerkung
-
Wenn Sie die Fehlermeldung
„Unzureichende Berechtigungen zum Ausführen der Abfrage“ erhalten. Principal hat keine Rechte für die angegebene Ressource. „
Wenn Sie versuchen, eine Abfrage in Athena auszuführen, müssen Ihnen die erforderlichen Lake Formation Formation-Berechtigungen für die Tabelle erteilt werden. Weitere Informationen finden Sie unter Erteilen von Berechtigungen für eine Tabelle oder Datenbank. -
Wenn Sie beim Versuch, eine Abfrage in Athena auszuführen,
die Fehlermeldung „Iceberg kann nicht auf die angeforderte Ressource zugreifen“
erhalten, rufen Sie die AWS Lake Formation Konsole auf und vergewissern Sie sich, dass Sie sich selbst Berechtigungen für den Tabellen-Bucket-Katalog und die Datenbank (Namespace) erteilt haben, die Sie erstellt haben. Geben Sie bei der Gewährung dieser Berechtigungen keine Tabelle an. Weitere Informationen finden Sie unter Erteilen von Berechtigungen für eine Tabelle oder Datenbank. -
Wenn Sie beim Ausführen einer
SELECT
Abfrage in Athena die folgende Fehlermeldung erhalten, wird diese Meldung dadurch verursacht, dass Ihr Tabellenname oder Ihre Spaltennamen in Ihrer Tabellendefinition Großbuchstaben enthalten:„GENERIC_INTERNAL_ERROR: Get table request failed: com.amazonaws.services.glue.model. ValidationException: Nicht unterstützte
Verbundressource — Ungültige Tabellen- oder Spaltennamen.“ Stellen Sie sicher, dass Ihre Tabellen- und Spaltennamen alle in Kleinbuchstaben geschrieben sind.
-
Wenn Ihre Tabellenerstellung erfolgreich war, erscheint der Name Ihrer neuen Tabelle in der Tabellenliste in Athena. Wenn Sie zurück zur Amazon S3 S3-Konsole navigieren, erscheint Ihre neue Tabelle in der Tabellenliste auf der Bucket-Detailseite für Ihren Tabellen-Bucket, nachdem Sie die Liste aktualisiert haben.
Dieses Beispiel zeigt, wie Sie eine Tabelle mit einem Schema erstellen, indem Sie die Tabellenmetadaten verwenden AWS CLI und angeben mit JSON. Um dieses Beispiel zu verwenden, ersetzen Sie das
durch Ihre eigenen Informationen.user
input placeholders
aws s3tables create-table --cli-input-json file://
mytabledefinition.json
Verwenden Sie für die mytabledefinition.json
Datei die folgende Beispieltabellendefinition. Wenn Sie dieses Beispiel verwenden möchten, ersetzen Sie die
(Platzhalter für Benutzereingaben) durch Ihre Informationen. user input
placeholders
{ "tableBucketARN": "arn:aws:s3tables:
us-east-1
:111122223333
:bucket/amzn-s3-demo-table-bucket
", "namespace": "your_namespace
", "name": "example_table
", "format": "ICEBERG", "metadata": { "iceberg": { "schema": { "fields": [ {"name": "id
", "type": "int
","required": true
}, {"name": "name
", "type": "string
"}, {"name": "value
", "type": "int
"} ] } } } }
Sie können eine Tabelle in einer unterstützten Abfrage-Engine erstellen, die mit Ihren Tabellen-Buckets verbunden ist, z. B. in einem Apache Spark Sitzung auf Amazon EMR.
Das folgende Beispiel zeigt, wie Sie eine Tabelle mit erstellen Spark mithilfe von CREATE
Anweisungen und Hinzufügen von Tabellendaten mithilfe von INSERT
Anweisungen oder durch Lesen von Daten aus einer vorhandenen Datei. Wenn Sie dieses Beispiel verwenden möchten, ersetzen Sie die
(Platzhalter für Benutzereingaben) durch Ihre Informationen.user input
placeholders
spark.sql( " CREATE TABLE IF NOT EXISTS s3tablesbucket.
example_namespace
.`example_table
` ( id INT, name STRING, value INT ) USING iceberg " )
Nachdem Sie die Tabelle erstellt haben, können Sie Daten in die Tabelle laden. Wählen Sie dazu eine der folgenden Methoden aus:
Fügen Sie der Tabelle mithilfe der
INSERT
Anweisung Daten hinzu.spark.sql( """ INSERT INTO s3tablesbucket.
my_namespace
.my_table
VALUES (1, 'ABC', 100), (2, 'XYZ', 200) """)Laden Sie eine vorhandene Datendatei.
Lesen Sie die Daten in Spark ein:
val data_file_location = "
Path such as S3 URI to data file
" val data_file = spark.read.parquet(data_file_location
)Schreiben Sie die Daten in eine Iceberg-Tabelle:
data_file.writeTo("s3tablesbucket.
my_namespace
.my_table
").using("Iceberg").tableProperty ("format-version", "2").createOrReplace()