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
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
Warnung
Beim Ausführen wird die Fehlermeldung Externes Schlüsselwort nicht unterstützt für den Tabellentyp
angezeigtICEBERG. CREATE EXTERNAL TABLE
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 PartitionstransformationenCREATE 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( |
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( |
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 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 |
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