Iceberg-Tabellen erstellen - 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-Tabellen erstellen

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.

Verwenden Sie eine Anweisung CREATE TABLE

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

Beim Ausführen wird die Fehlermeldung Externes Schlüsselwort nicht unterstützt für den Tabellentyp CREATE EXTERNAL TABLE angezeigtICEBERG.

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://amzn-s3-demo-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.

Verwenden Sie Partitionen

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://amzn-s3-demo-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) Partitionierung nach Hash-Wert (Mod) N Eimer. Dies ist das gleiche Konzept wie Hash-Bucketing für Hive-Tabellen. int, long, decimal, date, timestamp, string, binary
truncate(L, col) Partition 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.

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 Sie 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 Verwenden Sie die Iceberg-Tabellenkomprimierung.
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 Verwenden Sie die Iceberg-Tabellenkomprimierung.
Standardwert

Die standardmäßige Schreibkomprimierung variiert je nach Athena-Engine-Version. Weitere Informationen finden Sie unter Verwenden Sie die Iceberg-Tabellenkomprimierung.

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 für CREATE TABLE eine Aussage

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://amzn-s3-demo-bucket/iceberg-folder' TBLPROPERTIES ( 'table_type'='ICEBERG', 'format'='parquet', 'write_compression'='snappy', 'optimize_rewrite_delete_file_threshold'='10' )

Verwenden Sie 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 CTASEigenschaften von Tabellen besondere Aufmerksamkeit geschenkt werden sollte.

Benutze einen AWS Glue Crawler

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 die 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