Iceberg-Tabellendaten abfragen - Amazon Athena

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.