Erstellen von Iceberg-Tabellen - 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.

Erstellen von Iceberg-Tabellen

Um eine Iceberg-Tabelle für die Verwendung in Athena zu erstellen, können Sie eine CREATE TABLE Anweisung verwenden, wie auf dieser Seite dokumentiert, oder Sie können einen AWS Glue Crawler verwenden.

CREATE-TABLE-Anweisung verwenden

Athena erstellt Iceberg-v2-Tabellen. Den Unterschied zwischen v1- und v2-Tabellen finden Sie unter Formatversionsänderungen in der Apache-Iceberg-Dokumentation.

Athena CREATE TABLE erstellt eine Iceberg-Tabelle ohne Daten. Sie können eine Tabelle direkt aus externen Systemen wie Apache Spark abfragen, wenn die Tabelle den Open-Source-Glue-Katalog von Iceberg verwendet. Sie müssen keine externe Tabelle erstellen.

Warnung

Das Ausführen von CREATE EXTERNAL TABLE führt zu der Fehlermeldung Externes Schlüsselwort wird für den Tabellentyp ICEBERG nicht unterstützt.

Um eine Iceberg-Tabelle aus Athena zu erstellen, legen Sie die 'table_type'-Tabellen-Eigenschaft in der 'ICEBERG'-Klausel auf TBLPROPERTIES, wie in der folgenden Syntaxzusammenfassung.

CREATE TABLE [db_name.]table_name (col_name data_type [COMMENT col_comment] [, ...] ) [PARTITIONED BY (col_name | transform, ... )] LOCATION 's3://DOC-EXAMPLE-BUCKET/your-folder/' TBLPROPERTIES ( 'table_type' ='ICEBERG' [, property_name=property_value] )

Informationen zu den Datentypen, die Sie in Iceberg-Tabellen abfragen können, finden Sie unter Unterstützte Datentypen für Iceberg-Tabellen in Athena.

Partitionierung

Um Iceberg-Tabellen mit Partitionen zu erstellen, verwenden Sie die PARTITIONED BY-Syntax. Spalten, die für die Partitionierung verwendet werden, müssen zuerst in den Spaltendeklarationen angegeben werden. Innerhalb der PARTITIONED BY-Klausel darf der Spaltentyp nicht enthalten sein. Sie können auch die Partitionstransformationen in der CREATE TABLE-Syntax definieren. Um mehrere Spalten für die Partitionierung anzugeben, trennen Sie die Spalten durch das Komma (,), wie im folgenden Beispiel.

CREATE TABLE iceberg_table (id bigint, data string, category string) PARTITIONED BY (category, bucket(16, id)) LOCATION 's3://DOC-EXAMPLE-BUCKET/your-folder/' TBLPROPERTIES ( 'table_type' = 'ICEBERG' )

Die folgende Tabelle zeigt die verfügbaren Partitionstransformationsfunktionen.

Funktion Beschreibung Unterstützte Typen
year(ts) Partition nach Jahr date, timestamp
month(ts) Partition nach Monat date, timestamp
day(ts) Partition nach Tag date, timestamp
hour(ts) Partition nach Stunde timestamp
bucket(N, col) Partitionieren nach Hash-Werte-Mod N-Buckets. Dies ist das gleiche Konzept wie Hash-Bucketing für Hive-Tabellen. int, long, decimal, date, timestamp, string, binary
truncate(L, col) Partitionieren nach Wert gekürzt auf L int, long, decimal, string

Athena unterstützt Icebergs versteckte Partitionierung. Weitere Informationen finden Sie unter Icebergs versteckte Partitionierung in der Apache-Iceberg-Dokumentation.

Tabelleneigenschaften

In diesem Abschnitt werden Tabelleneigenschaften beschrieben, die als Schlüssel-Wert-Paare in der TBLPROPERTIES-Klausel der Erklärung CREATE TABLE angegeben werden. Athena erlaubt nur eine vordefinierte Liste von Schlüssel-Wert-Paaren in den Tabelleneigenschaften zum Erstellen oder Ändern von Iceberg-Tabellen. In den folgenden Tabellen finden Sie die Tabelleneigenschaften, die Sie angeben können. Weitere Hinweise zu den Verdichtungsoptionen finden Sie unter Optimieren von Iceberg-Tabellen in diesem Dokument. Wenn Sie möchten, dass Athena eine bestimmte Open-Source-Tabellen-Konfigurationseigenschaft unterstützt, senden Sie Feedback an athena-feedback@amazon.com.

Format

Beschreibung Dateidaten-Format
Zulässige Eigenschaftswerte Die unterstützten Dateiformat- und Komprimierungskombinationen variieren je nach Athena-Engine-Version. Weitere Informationen finden Sie unter Unterstützung der Komprimierung von Iceberg-Tabellen nach Dateiformaten.
Standardwert parquet

write_compression

Beschreibung Dateikomprimierungscodec
Zulässige Eigenschaftswerte Die unterstützten Dateiformat- und Komprimierungskombinationen variieren je nach Athena-Engine-Version. Weitere Informationen finden Sie unter Unterstützung der Komprimierung von Iceberg-Tabellen nach Dateiformaten.
Standardwert

Die standardmäßige Schreibkomprimierung variiert je nach Athena-Engine-Version. Weitere Informationen finden Sie unter Unterstützung der Komprimierung von Iceberg-Tabellen nach Dateiformaten.

optimize_rewrite_data_file_threshold

Beschreibung Spezifische Konfiguration zur Datenoptimierung. Wenn es weniger Datendateien gibt, die eine Optimierung erfordern als der angegebene Schwellenwert, werden die Dateien nicht neu geschrieben. Dies ermöglicht die Ansammlung von mehr Datendateien, um Dateien näher an der Zielgröße zu erzeugen und unnötige Berechnungen zur Kosteneinsparung zu überspringen.
Zulässige Eigenschaftswerte Eine positive Zahl. Muss kleiner als 50 sein.
Standardwert 5

optimize_rewrite_delete_file_threshold

Beschreibung Spezifische Konfiguration zur Datenoptimierung. Wenn weniger Löschdateien mit einer Datendatei verknüpft sind als der Schwellenwert, wird die Datendatei nicht neu geschrieben. Dies ermöglicht die Anhäufung von mehr Löschdateien für jede Datendatei zur Kosteneinsparung.
Zulässige Eigenschaftswerte Eine positive Zahl. Muss kleiner als 50 sein.
Standardwert 2

vacuum_min_snapshots_to_keep

Beschreibung

Mindestanzahl von Snapshots, die im Hauptzweig einer Tabelle beibehalten werden sollen.

Dieser Wert hat Vorrang vor der vacuum_max_snapshot_age_seconds-Eigenschaft. Wenn die Mindestanzahl der verbleibenden Snapshots älter als das von vacuum_max_snapshot_age_seconds angegebene Alter ist, werden die Snapshots beibehalten und der Wert von vacuum_max_snapshot_age_seconds wird ignoriert.

Zulässige Eigenschaftswerte Eine positive Zahl.
Standardwert 1

vacuum_max_snapshot_age_seconds

Beschreibung Höchstalter der Snapshots, die auf dem Hauptzweig beibehalten werden sollen. Dieser Wert wird ignoriert, wenn die verbleibende Mindestanzahl an Snapshots, die von vacuum_min_snapshots_to_keep angegeben wurden, älter als das angegebene Alter ist. Diese Eigenschaft des Tabellenverhaltens entspricht der history.expire.max-snapshot-age-ms Eigenschaft in der Apache Iceberg-Konfiguration.
Zulässige Eigenschaftswerte Eine positive Zahl.
Standardwert 432 000 Sekunden (5 Tage)

vacuum_max_metadata_files_to_keep

Beschreibung Die maximale Anzahl früherer Metadatendateien, die im Hauptzweig der Tabelle beibehalten werden sollen.
Zulässige Eigenschaftswerte Eine positive Zahl.
Standardwert 100

Beispiel einer CREATE-TABLE-Anweisung

Im folgenden Beispiel wird eine Iceberg-Tabelle mit drei Spalten erstellt.

CREATE TABLE iceberg_table ( id int, data string, category string) PARTITIONED BY (category, bucket(16,id)) LOCATION 's3://DOC-EXAMPLE-BUCKET/iceberg-folder' TBLPROPERTIES ( 'table_type'='ICEBERG', 'format'='parquet', 'write_compression'='snappy', 'optimize_rewrite_delete_file_threshold'='10' )

CREATE TABLE AS SELECT (CTAS)

Informationen zum Erstellen einer Iceberg-Tabelle mithilfe der CREATE TABLE AS-Anweisung finden Sie unter CREATE TABLE AS, wobei dem Abschnitt CTAS-Tabelleneigenschaften besondere Aufmerksamkeit geschenkt werden sollte.

Einen AWS Glue -Crawler verwenden

Sie können einen AWS Glue Crawler verwenden, um Ihre Iceberg-Tabellen automatisch in der zu registrieren. AWS Glue Data Catalog Wenn Sie aus einem anderen Iceberg-Katalog migrieren möchten, können Sie einen AWS Glue Crawler erstellen und planen und die Amazon S3 S3-Pfade angeben, in denen sich die Iceberg-Tabellen befinden. Sie können die maximale Tiefe der Amazon-S3-Pfade angeben, die der AWS Glue -Crawler durchqueren kann. Nachdem Sie einen AWS Glue Crawler geplant haben, extrahiert der Crawler Schemainformationen und aktualisiert sie bei jeder Ausführung AWS Glue Data Catalog mit den Schemaänderungen. Der AWS Glue Crawler unterstützt das Zusammenführen von Schemas über Snapshots hinweg und aktualisiert den aktuellen Speicherort der Metadatendatei in. AWS Glue Data Catalog Weitere Informationen finden Sie unter Datenkatalog und Crawler in. AWS Glue