Iceberg-Tabellendaten abfragen - Amazon Athena

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.

Iceberg-Tabellendaten abfragen

Um einen Iceberg-Datensatz abzufragen, verwenden Sie eine SELECT-Standardanweisung wie die folgende. Abfragen folgen der Spezifikation des Apache-Iceberg-Formats v2 und führen Merge-on-Read von Positions- und Gleichheitslöschungen durch.

SELECT * FROM [db_name.]table_name [WHERE predicate]

Um die Abfragezeiten zu optimieren, werden alle Prädikate dorthin verschoben, wo sich die Daten befinden.

Informationen zu Zeitreise und Versionsreiseabfragen finden Sie unter Zeitreisen- und Versionsreiseabfragen durchführen.

Erstellen und Abfragen von Ansichten mit Iceberg-Tabellen

Verwenden Sie zum Erstellen und Abfragen von Athena-Ansichten für Iceberg-Tabellen CREATE VIEW-Ansichten wie in Arbeiten mit Ansichten beschrieben.

Beispiel:

CREATE VIEW view1 AS SELECT * FROM iceberg_table
SELECT * FROM view1

Wenn Sie daran interessiert sind, die Iceberg-Ansicht-Spezifikation zum Erstellen von Ansichten zu verwenden, wenden Sie sich an athena-feedback@amazon.com.

Iceberg-Tabellen-Metadaten abfragen

In einer SELECT-Abfrage können Sie die folgenden Eigenschaften hinter table_name verwenden, um Iceberg-Tabellenmetadaten abzufragen:

  • $files – Zeigt die aktuellen Datendateien einer Tabelle an.

  • $manifests – Zeigt die aktuellen Dateimanifeste einer Tabelle an.

  • $history – Zeigt den Verlauf einer Tabelle an.

  • $partitions – Zeigt die aktuellen Partitionen einer Tabelle an.

  • $snapshots – Zeigt die Snapshots einer Tabelle an.

  • $refs – Zeigt die Verweise einer Tabelle an.

Beispiele

Die folgende Anweisung listet die Dateien für eine Iceberg-Tabelle auf.

SELECT * FROM "dbname"."tablename$files"

Die folgende Anweisung listet das Manifest für eine Iceberg-Tabelle auf.

SELECT * FROM "dbname"."tablename$manifests"

Die folgende Anweisung zeigt die Historie einer Iceberg-Tabelle.

SELECT * FROM "dbname"."tablename$history"

Im folgenden Beispiel werden die Partitionen für eine Iceberg-Tabelle gezeigt.

SELECT * FROM "dbname"."tablename$partitions"

Im folgenden Beispiel werden die Snapshots für eine Iceberg-Tabelle gelistet.

SELECT * FROM "dbname"."tablename$snapshots"

Im folgenden Beispiel werden die Referenzen für eine Iceberg-Tabelle gezeigt.

SELECT * FROM "dbname"."tablename$refs"

Differenzierte Zugriffskontrolle von Lake Formation verwenden

Athena-Engine-Version 3 unterstützt die differenzierte Zugriffskontrolle von Lake Formation mit Iceberg-Tabellen, einschließlich der Sicherheitskontrolle auf Spalten- und Zeilenebene. Diese Zugriffskontrolle funktioniert mit Zeitreiseabfragen und mit Tabellen, die eine Schemaentwicklung durchgeführt haben. Weitere Informationen finden Sie unter Differenzierte Zugriffskontrolle von Lake Formation und Athena-Arbeitsgruppen.

Wenn Sie Ihre Iceberg-Tabelle außerhalb von Athena erstellt haben, verwenden Sie Apache Iceberg SDK Version 0.13.0 oder höher, damit Ihre Iceberg-Tabellenspalteninformationen im AWS Glue Data Catalog ausgefüllt werden. Wenn Ihre Iceberg-Tabelle keine Spalteninformationen in AWS Glue enthält, können Sie die Athena ALTER TABLE SET TBLPROPERTIES-Anweisung oder das neueste Iceberg-SDK verwenden, um die Tabelle zu korrigieren und die Spalteninformationen in AWS Glue zu aktualisieren.