

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.

# CREATE TABLE AS
<a name="create-table-as"></a>

Erstellt eine neue Tabelle mit den Ergebnissen einer [SELECT](select.md)-Abfrage. Um eine leere Tabelle zu erstellen, verwenden Sie [CREATE TABLE](create-table.md). `CREATE TABLE AS` kombiniert eine `CREATE TABLE`-DDL-Anweisung mit einer `SELECT`-DML-Anweisung und enthält daher technisch gesehen sowohl DDL als auch DML. Beachten Sie, dass CTAS-Abfragen in Athena, obwohl `CREATE TABLE AS` hier mit anderen DDL-Anweisungen gruppiert ist, für Service Quotas als DML behandelt werden. Informationen zu Service Quotas für Athena finden Sie unter [Service Quotas](service-limits.md).

**Anmerkung**  
Für CTAS-Anweisungen gilt die erwartete Bucket-Eigentümereinstellung nicht für den Speicherort der Zieltabelle in Amazon S3. Die erwartete Bucket-Eigentümereinstellung gilt nur für den Amazon-S3-Ausgabespeicherort, den Sie für Athena-Abfrageergebnisse angeben. Weitere Informationen finden Sie unter [Angeben eines Speicherorts des Abfrageergebnisses mithilfe der Athena-Konsole](query-results-specify-location-console.md).

Weitere Informationen zu `CREATE TABLE AS`, die über den Rahmen dieses Referenzthemas hinausgehen, finden Sie unter [Erstellen einer Tabelle aus Abfrageergebnissen (CTAS)](ctas.md).

**Topics**
+ [Syntax](#synopsis)
+ [CTAS-Tabelleneigenschaften](#ctas-table-properties)
+ [Beispiele](#ctas-table-examples)

## Syntax
<a name="synopsis"></a>

```
CREATE TABLE table_name
[ WITH ( property_name = expression [, ...] ) ]
AS query
[ WITH [ NO ] DATA ]
```

Wobei Folgendes gilt:

**WITH ( property\_name = expression [, ...] )**  
Eine Liste der optionalen CTAS-Tabelleneigenschaften, von denen einige für das Datenspeicherformat spezifisch sind. Siehe [CTAS-Tabelleneigenschaften](#ctas-table-properties).

**query**  
Eine [SELECT](select.md)-Abfrage, die verwendet wird, um eine neue Tabelle zu erstellen.  
Wenn Sie eine Abfrage mit Partitionen erstellen möchten, geben Sie die Namen der partitionierten Spalten am Ende der Liste in der Liste der Spalten in der `SELECT` Anweisung an.

**[ WITH [ NO ] DATA ]**  
Wenn `WITH NO DATA` verwendet wird, wird eine neue leere Tabelle mit demselben Schema wie die ursprüngliche Tabelle erstellt.

**Anmerkung**  
Um Spaltenüberschriften in Ihre Abfrageergebnis-Ausgabe einzubeziehen, können Sie eine einfache `SELECT`-Abfrage statt einer CTAS-Abfrage verwenden. Sie können die Ergebnisse aus Ihrem Speicherort für Abfrageergebnisse abrufen oder die Ergebnisse direkt über die Athena-Konsole herunterladen. Weitere Informationen finden Sie unter [Arbeiten mit Abfrageergebnissen und aktuellen Abfragen](querying.md). 

## CTAS-Tabelleneigenschaften
<a name="ctas-table-properties"></a>

Jede CTAS-Tabelle in Athena verfügt über eine Liste der optionalen CTAS-Tabelleneigenschaften, die Sie mit `WITH (property_name = expression [, ...] )` angeben. Informationen zur Verwendung dieser Parameter finden Sie unter [Beispiele für CTAS-Abfragen](ctas-examples.md).

** `WITH (property_name = expression [, ...], )` **    
 `table_type = ['HIVE', 'ICEBERG']`   
Optional. Der Standardwert ist `HIVE`. Gibt den Tabellentyp der resultierenden Tabelle an  
Beispiel:  

```
WITH (table_type ='ICEBERG')
```  
 `external_location = [location]`   
Da Iceberg-Tabellen nicht extern sind, gilt diese Eigenschaft nicht für Iceberg-Tabellen. Um den Stammspeicherort einer Iceberg-Tabelle in einer CTAS-Anweisung zu definieren, verwenden Sie die später in diesem Abschnitt beschriebene `location`-Eigenschaft.
Optional. Der Speicherort, an dem Athena Ihre CTAS-Abfrage in Amazon S3 speichert.  
Beispiel:  

```
 WITH (external_location ='s3://amzn-s3-demo-bucket/tables/parquet_table/')
```
Athena verwendet nicht zweimal denselben Pfad für Abfrageergebnisse. Wenn Sie den Speicherort manuell angeben, müssen Sie sicherstellen, dass der von Ihnen angegebene Amazon-S3-Speicherort keine Daten enthält. Athena versucht nie, Ihre Daten zu löschen. Wenn Sie denselben Speicherort erneut verwenden möchten, müssen Sie die Daten manuell löschen. Andernfalls schlägt Ihre CTAS-Abfrage fehl.  
Wenn Sie eine CTAS-Abfrage ausführen, die einen `external_location` in einer Arbeitsgruppe angibt, die [einen Speicherort für Abfrageergebnisse erzwingt](workgroups-settings-override.md), schlägt die Abfrage mit einer Fehlermeldung fehl. Sie können den für die Arbeitsgruppe angegebenen Abfrageergebnisspeicherort in den [Arbeitsgruppendetails](viewing-details-workgroups.md) anzeigen.  
Wenn Ihre Arbeitsgruppe die clientseitige Einstellung für den Abfrageergebnisspeicherort überschreibt, erstellt Athena die Tabelle am folgenden Speicherort:  

```
s3://amzn-s3-demo-bucket/tables/{{query-id}}/
```
Wenn Sie nicht die Eigenschaft `external_location` verwenden, um einen Speicherort anzugeben, und Ihre Arbeitsgruppe clientseitige Einstellungen nicht überschreibt, verwendet Athena Ihre [clientseitige Einstellung](query-results-specify-location-console.md) für den Abfrageergebnisspeicherort, um die Tabelle am folgenden Speicherort zu erstellen:  

```
s3://amzn-s3-demo-bucket/{{Unsaved-or-query-name}}/{{year}}/{{month}}/{{date}}/tables/{{query-id}}/
```  
 `is_external = [boolean]`   
Optional. Gibt an, ob es sich bei der Tabelle um eine externe Tabelle handelt. Der Standardwert ist true. Für Iceberg-Tabellen muss dies auf „false“ gesetzt werden.  
Beispiel:  

```
WITH (is_external = false)
```  
 `location = [location]`   
Erforderlich für Iceberg-Tabellen. Gibt den Stammspeicherort für die aus den Abfrageergebnissen zu erstellende Iceberg-Tabelle an.  
Beispiel:  

```
WITH (location ='s3://amzn-s3-demo-bucket/tables/{{iceberg_table}}/')
```  
 `field_delimiter = [delimiter]`   
Optionale und speziell für Text-basierte Datenspeicherformate. Das einstellige Feldtrennzeichen für Dateien in CSV-, TSV- und Textdateien. Beispiel, `WITH (field_delimiter = ',')`. Derzeit werden mehrzeilige Feldtrennzeichen für CTAS-Abfragen nicht unterstützt. Wenn Sie kein Feldtrennzeichen angeben, wird `\001` standardmäßig verwendet.  
 `format = [storage_format]`   
Das Speicherformat für die CTAS-Abfrageergebnisse, z. B. `ORC`, `PARQUET`, `AVRO`, `JSON`, `ION` oder `TEXTFILE`. Für Iceberg-Tabellen sind die zulässigen Formate `ORC`, `PARQUET` und `AVRO`. Wenn nichts angegeben ist, wird standardmäßig `PARQUET` verwendet. Der Name dieses Parameters, `format`, muss in Kleinbuchstaben angegeben werden oder Ihre CTAS-Abfrage schlägt fehl.   
Beispiel:  

```
WITH (format = 'PARQUET')
```  
 `bucketed_by = ARRAY[ column_name[,…], bucket_count = [int] ]`   
Diese Eigenschaft gilt nicht für Iceberg-Tabellen. Verwenden Sie für Iceberg-Tabellen die Partitionierung mit Bucket-Transformation.
Eine Array-Liste der Buckets zum Gruppieren von Daten. Wenn nicht angegeben, gruppiert Athena Ihre Daten nicht in dieser Abfrage.  
 `bucket_count = [int]`   
Diese Eigenschaft gilt nicht für Iceberg-Tabellen. Verwenden Sie für Iceberg-Tabellen die Partitionierung mit Bucket-Transformation.
Die Anzahl der Buckets für das Bucketing Ihrer Daten. Wenn nicht angegeben, gruppiert Athena Ihre Daten nicht. Beispiel:  

```
CREATE TABLE bucketed_table WITH (
  bucketed_by = ARRAY[{{column_name}}], 
  bucket_count = 30, format = 'PARQUET', 
  external_location ='s3://amzn-s3-demo-bucket/tables/parquet_table/'
) AS 
SELECT 
  * 
FROM 
  {{table_name}}
```  
 `partitioned_by = ARRAY[ col_name[,…] ]`   
Diese Eigenschaft gilt nicht für Iceberg-Tabellen. Verwenden Sie die später in diesem Abschnitt beschriebene `partitioning`-Eigenschaft, um Partitionstransformationen für Iceberg-Tabellen zu verwenden.
Optional. Eine Array-Liste der Spalten, nach denen die CTAS-Tabelle partitioniert wird. Stellen Sie sicher, dass die Namen der partitionierten Spalten am Ende der Liste in der Liste der Spalten in der `SELECT`-Anweisung aufgeführt werden.   
 `partitioning = ARRAY[partition_transform, ...]`   
Optional. Gibt die Partitionierung der zu erstellenden Iceberg-Tabelle an. Iceberg unterstützt eine Vielzahl von Partitionstransformationen und Partitionsentwicklungen. Partitionstransformationen sind in der folgenden Tabelle zusammengefasst.    
****    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/de_de/athena/latest/ug/create-table-as.html)
Beispiel:  

```
 WITH (partitioning = ARRAY['month(order_date)', 
                            'bucket(account_number, 10)', 
                            'country']))
```  
 `optimize_rewrite_min_data_file_size_bytes = [long]`   
Optional. Spezifische Konfiguration zur Datenoptimierung. Dateien, die kleiner als der angegebene Wert sind, werden zur Optimierung eingeschlossen. Der Standardwert ist das 0,75-fache des Wertes von `write_target_data_file_size_bytes`. Diese Eigenschaft gilt nur für Iceberg-Tabellen. Weitere Informationen finden Sie unter [Iceberg-Tabellen optimieren](querying-iceberg-data-optimization.md).  
Beispiel:  

```
WITH (optimize_rewrite_min_data_file_size_bytes = 402653184)
```  
 `optimize_rewrite_max_data_file_size_bytes = [long]`   
Optional. Spezifische Konfiguration zur Datenoptimierung. Dateien, die größer als der angegebene Wert sind, werden zur Optimierung eingeschlossen. Der Standardwert ist das 1,8-fache des Wertes von `write_target_data_file_size_bytes`. Diese Eigenschaft gilt nur für Iceberg-Tabellen. Weitere Informationen finden Sie unter [Iceberg-Tabellen optimieren](querying-iceberg-data-optimization.md).  
Beispiel:  

```
WITH (optimize_rewrite_max_data_file_size_bytes = 966367641)
```  
 `optimize_rewrite_data_file_threshold = [int]`   
Optional. 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. Der Standardwert ist 5. Diese Eigenschaft gilt nur für Iceberg-Tabellen. Weitere Informationen finden Sie unter [Iceberg-Tabellen optimieren](querying-iceberg-data-optimization.md).  
Beispiel:  

```
WITH (optimize_rewrite_data_file_threshold = 5)
```  
 `optimize_rewrite_delete_file_threshold = [int]`   
Optional. 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 Ansammlöung von mehr Löschdateien für jede Datendatei zur Kosteneinsparung. Der Standardwert ist 2. Diese Eigenschaft gilt nur für Iceberg-Tabellen. Weitere Informationen finden Sie unter [Iceberg-Tabellen optimieren](querying-iceberg-data-optimization.md).  
Beispiel:  

```
WITH (optimize_rewrite_delete_file_threshold = 2)
```  
 `vacuum_min_snapshots_to_keep = [int]`   
Optional. Vakuum-spezifische Konfiguration. Die Mindestanzahl der aktuellsten Snapshots, die beibehalten werden sollen. Der Standardwert ist 1. Diese Eigenschaft gilt nur für Iceberg-Tabellen. Weitere Informationen finden Sie unter [VACUUM](vacuum-statement.md).  
Die `vacuum_min_snapshots_to_keep`-Eigenschaft erfordert die Athena-Engine-Version 3. 
Beispiel:  

```
WITH (vacuum_min_snapshots_to_keep = 1)
```  
 `vacuum_max_snapshot_age_seconds = [long]`   
Optional. Vakuum-spezifische Konfiguration. Ein Zeitraum in Sekunden, der das Alter der beibehaltenden Snapshots darstellt. Der Standardwert beträgt 432 000 (5 Tage). Diese Eigenschaft gilt nur für Iceberg-Tabellen. Weitere Informationen finden Sie unter [VACUUM](vacuum-statement.md).  
Die `vacuum_max_snapshot_age_seconds`-Eigenschaft erfordert die Athena-Engine-Version 3. 
Beispiel:  

```
WITH (vacuum_max_snapshot_age_seconds = 432000)
```  
 `write_compression = [compression_format]`   
Der Komprimierungstyp, der für jedes Speicherformat verwendet werden soll, mit dem die Komprimierung angegeben werden kann. Der `compression_format`-Wert gibt die Komprimierung an, die verwendet werden soll, wenn die Daten in die Tabelle geschrieben werden. Sie können die Komprimierung für die `TEXTFILE`-, `JSON`-, `PARQUET`- und `ORC`-Dateiformate angeben.   
Wenn die `format`-Eigenschaft beispielsweise `PARQUET` als Speicherformat angibt, gibt der Wert für `write_compression` das Komprimierungsformat für Parquet an. In diesem Fall entspricht die Angabe eines Wertes für `write_compression` der Angabe eines Wertes für `parquet_compression`.   
Wenn die `format`-Eigenschaft `ORC` als Speicherformat angibt, gibt der Wert für `write_compression` das Komprimierungsformat für ORC an. In diesem Fall entspricht die Angabe eines Wertes für `write_compression` der Angabe eines Wertes für `orc_compression`.   
Mehrere Eigenschaften von Komprimierungsformaten können in derselben CTAS-Abfrage nicht angegeben werden. Sie können beispielsweise nicht sowohl `write_compression` als auch `parquet_compression` in derselben Abfrage angeben. Dasselbe gilt für `write_compression` und `orc_compression`. Informationen zu den für jedes Dateiformat unterstützten Komprimierungstypen finden Sie unter [Komprimierung in Athena verwenden](compression-formats.md).  
 `orc_compression = [compression_format]`   
Der Komprimierungstyp verwendet das `ORC`-Dateiformat, wenn die `ORC`-Daten in die Tabelle geschrieben werden. Beispiel, `WITH (orc_compression = 'ZLIB')`. Teile innerhalb der `ORC`-Datei (mit Ausnahme von `ORC` Postscript) werden mit der von Ihnen angegebenen Komprimierung komprimiert. Wenn es weggelassen wird, wird die ZLIB-Komprimierung standardmäßig für `ORC` verwendet.  
Aus Gründen der Kontinuität empfehlen wir, die `write_compression`-Eigenschaft anstelle von `orc_compression` zu verwenden. Verwenden Sie die `format`-Eigenschaft, um das Speicherformat als `ORC` anzugeben, und verwenden Sie dann die `write_compression`-Eigenschaft, um das von `ORC` verwendete Komprimierungsformat anzugeben.   
 `parquet_compression = [compression_format]`   
Der Komprimierungstyp verwendet das Parquet-Dateiformat, wenn die Parquet-Daten in die Tabelle geschrieben werden. Beispiel, `WITH (parquet_compression = 'SNAPPY')`. Diese Komprimierung wird auf Spaltenstücke innerhalb der Parquet-Dateien angewendet. Wenn dies weggelassen wird, wird die GZIP-Komprimierung standardmäßig für Parquet verwendet.  
Aus Gründen der Kontinuität empfehlen wir, die `write_compression`-Eigenschaft anstelle von `parquet_compression` zu verwenden. Verwenden Sie die `format`-Eigenschaft, um das Speicherformat als `PARQUET` anzugeben, und verwenden Sie dann die `write_compression`-Eigenschaft, um das von `PARQUET` verwendete Komprimierungsformat anzugeben.   
 `compression_level = [compression_level]`   
Die zu verwendende Komprimierungsstufe. Diese Eigenschaft gilt nur für die ZSTD-Komprimierung. Mögliche Werte liegen zwischen 1 und 22. Der Standardwert ist 3. Weitere Informationen finden Sie unter [ZSTD-Komprimierungsstufen verwenden](compression-support-zstd-levels.md).

## Beispiele
<a name="ctas-table-examples"></a>

Beispiele für CTAS-Abfragen finden Sie in den folgenden Ressourcen.
+  [Beispiele für CTAS-Abfragen](ctas-examples.md) 
+  [Verwenden von CTAS und INSERT INTO für ETL und Datenanalyse](ctas-insert-into-etl.md) 
+  [Verwendung von CTAS-Anweisungen mit Amazon Athena, um die Kosten zu senken und die Leistung zu verbessern](https://aws.amazon.com/blogs/big-data/using-ctas-statements-with-amazon-athena-to-reduce-cost-and-improve-performance/) 
+  [Verwenden von CTAS und INSERT INTO zum Umgehen des Limits von 100 Partitionen](ctas-insert-into.md) 