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.
Registrieren Sie Bucket-Kataloge von S3-Tabellen und fragen Sie Tabellen von Athena ab
Tabellen-Buckets für Amazon S3 sind ein Bucket-Typ in Amazon S3, der speziell zum Speichern von Tabellendaten in Apache-Iceberg-Tabellen entwickelt wurde. Tabellen-Buckets automatisieren Tabellenverwaltungsaufgaben wie Komprimierung, Snapshot-Verwaltung und Garbage Collection, um die Abfrageleistung kontinuierlich zu optimieren und die Kosten zu minimieren. Egal, ob Sie gerade erst anfangen oder Tausende von Tabellen in Ihrer Iceberg-Umgebung haben, Tabellen-Buckets vereinfachen Data Lakes in jeder Größenordnung. Weitere Informationen finden Sie unter Tabellen-Buckets.
Überlegungen und Einschränkungen
-
Alle DDL-Operationen, die für Iceberg-Tabellen unterstützt werden, werden für S3-Tabellen unterstützt, mit den folgenden Ausnahmen:
-
ALTER TABLE RENAME,CREATE VIEWundALTER DATABASEwerden nicht unterstützt. -
OPTIMIZEundVACUUM– Sie können die Komprimierung und die Snapshot-Verwaltung in S3 verwalten. Weitere Informationen finden Sie unter Wartungsdokumentation für S3-Tabellen.
-
-
DDL-Abfragen auf S3-Tabellen, die als Athena-Datenquellen registriert sind, werden nicht unterstützt.
-
Die Wiederverwendung von Abfrageergebnissen wird nicht unterstützt.
-
In Arbeitsgruppen mit aktivierter SSE-KMS- und CSE-KMS-Verschlüsselung können Sie keine Schreibvorgänge wie
INSERT,UPDATE,DELETEoderMERGEfür S3-Tabellen ausführen. -
In Arbeitsgruppen, in denen die Option „Zahlung durch den S3-Anforderer“ aktiviert ist, können Sie keine DML-Operationen für S3-Tabellen ausführen.
S3-Tabellen von Athena abfragen
Diese erforderlichen Schritte vor der Arbfrage von S3-Tabellen in Athena ausführen
Erstellen eines S3-Tabellen-Buckets. Weitere Informationen erhalten Sie unter Erstellen eines Buckets im Benutzerhandbuch für Amazon Simple Storage Service.
-
Stellen Sie sicher, dass die Integration Ihrer Tabellen-Buckets mit AWS Glue Data Catalog und AWS Lake Formation erfolgreich ist, indem Sie die Voraussetzungen für die Integration und Integration von Tabellen-Buckets mit AWS-Analytik im Benutzerhandbuch für Amazon Simple Storage Service befolgen.
Anmerkung
Wenn Sie die Integration beim Erstellen eines S3-Tabellen-Buckets über die S3-Konsole in Schritt 1 aktiviert haben, können Sie diesen Schritt überspringen.
Für den Prinzipal, den Sie zum Ausführen von Abfragen mit Athena verwenden, gewähren Sie Lake-Formation-Berechtigungen für den S3-Tabellenkatalog, entweder über die Lake-Formation-Konsole oder AWS CLI.
Abfragen für S3-Tabellen einreichen
Reichen Sie eine
CREATE DATABASE-Anfrage von Athena mit dem oben gewährten Benutzer/der oben gewährten Rolle ein. In diesem Beispiel ists3tablescatalogder übergeordnete Glue-Datenkatalog erstellt aus der Integration unds3tablescatalog/ist der untergeordnete Glue-Datenkatalog, der für jeden S3-Tabellen-Bucket erstellt wurde. Es gibt zwei Möglichkeiten, Abfragen durchzuführen.amzn-s3-demo-bucket-
Verwenden Sie die Datenbank, die Sie im vorherigen Schritt erstellt haben, und erstellen Sie mit
CREATE TABLEeine Tabelle. Das folgende Beispiel erstellt eine Tabelle in der-Datenbank, die Sie zuvor imtest_namespaces3tablescatalog/-Glue-Katalog erstellt haben.amzn-s3-demo-bucket -
Fügen Sie Daten in die Tabelle ein, die Sie im vorherigen Schritt erstellt haben.
-
Nachdem Sie Daten in die Tabelle eingefügt haben, können Sie sie abfragen.
S3-Tabellen in Athena erstellen
Athena unterstützt das Erstellen von Tabellen in vorhandenen S3-Tabellen-Namespaces oder in Athena erstellten Namespaces mit CREATE DATABASE-Anweisungen. Um eine S3-Tabelle aus Athena zu erstellen, ist die Syntax dieselbe wie beim Erstellen einer regulären Iceberg-Tabelle, außer dass Sie LOCATION nicht angeben, wie im folgenden Beispiel gezeigt.
CREATE TABLE [db_name.]table_name (col_name data_type [COMMENT col_comment] [, ...] ) [PARTITIONED BY (col_name | transform, ... )] [TBLPROPERTIES ([, property_name=property_value] )]
Sie können S3-Tabellen auch mit Anweisungen CREATE TABLE AS SELECT (CTAS) erstellen. Weitere Informationen finden Sie unter CTAS für S3-Tabellen.
S3-Tabellen-Bucket-Kataloge als Athena-Datenquellen registrieren
Um S3-Tabellen-Bucket-Kataloge in der Athena-Konsole zu registrieren, führen Sie die folgenden Schritte aus.
-
Öffnen Sie die Athena-Konsole unter https://console.aws.amazon.com/athena/
. -
Wählen Sie im Navigationsbereich Datenquellen und Kataloge aus.
-
Wählen Sie auf der Seite Datenquellen und Kataloge die Option Datenquellen erstellen aus.
-
Wählen Sie für Eine Datenquelle auswählen die Option Amazon S3 - AWS Glue Data Catalog.
-
Wählen Sie im AWS Glue Data Catalog-Abschnitt für Datenquellenkonto die Option AWS Glue Data Catalog in diesem Konto.
-
Wählen Sie für Tabelle erstellen oder Katalog registrieren die Option Neuen AWS Glue-Katalog registrieren.
-
Geben Sie im Abschnitt Datenquellendetails für Datenquellenname den Namen ein, den Sie verwenden möchten, um die Datenquelle in Ihren SQL-Abfragen anzugeben, oder verwenden Sie den generierten Standardnamen.
-
Wählen Sie für Katalog die Option Durchsuchen aus, um nach einer Liste von AWS Glue-Katalogen im selben Konto zu suchen. Wenn Ihnen keine Kataloge angezeigt werden, erstellen Sie einen in der AWS Glue-Konsole
. -
Wählen Sie im Dialogfeld AWS Glue-Kataloge durchsuchen den gewünschten Katalog aus und klicken Sie dann auf Auswählen.
-
(Optional) Geben Sie für Tags beliebige Schlüssel-Wert-Paare ein, die Sie mit der Datenquelle verknüpfen möchten.
-
Wählen Sie Weiter aus.
-
Überprüfen Sie auf der Seite Überprüfen und erstellen die Richtigkeit der eingegebenen Informationen und wählen Sie dann Datenquelle erstellen.
CTAS für S3-Tabellen
Amazon Athena unterstützt jetzt Operationen CREATE TABLE AS SELECT (CTAS) für S3-Tabellen. Mit dieser Feature können Sie neue S3-Tabellen auf der Grundlage der Ergebnisse einer SELECT-Abfrage erstellen.
Bei der Erstellung einer CTAS-Abfrage für eine S3-Tabelle gibt es einige wichtige Unterschiede zu Standard-Athena-Tabellen:
-
Sie müssen die Speicherort-Eigenschaft weglassen, da S3-Tabellen ihre eigenen Speicherorte automatisch verwalten.
-
Die
table_type-Eigenschaft ist standardmäßig aufICEBERG, sodass Sie sie in Ihrer Abfrage nicht explizit angeben müssen. -
Wenn Sie kein Format angeben, verwendet das System automatisch
PARQUETals Standardformat für Ihre Daten. -
Alle anderen Eigenschaften folgen derselben Syntax wie normale Iceberg-Tabellen.
Bevor Sie S3-Tabellen mit CTAS erstellen, stellen Sie sicher, dass Sie die erforderlichen Berechtigungen in AWS Lake Formation konfiguriert haben. Insbesondere benötigen Sie Berechtigungen, um Tabellen im S3-Taballen-Katalog zu erstellen. Ohne diese Berechtigungen schlagen Ihre CTAS-Operationen fehl.
Anmerkung
Wenn Ihre CTAS-Abfrage fehlschlägt, müssen Sie möglicherweise Ihre Tabelle mithilfe der S3 Tabellen-API löschen, bevor Sie versuchen, Ihre Abfrage erneut auszuführen. Sie können die DROP TABLE-Athena-Anweisungen nicht verwenden, um die Tabelle zu entfernen, die teilweise durch die Abfrage erstellt wurde.
Beispiel
CREATE TABLE "s3tablescatalog/amzn-s3-demo-bucket"."namespace"."s3-table-name" WITH ( format = 'PARQUET' ) AS SELECT * FROMsource_table;