

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.

# Beispiele für CTAS-Abfragen
<a name="ctas-examples"></a>

Verwenden Sie die folgenden Beispiele zum Erstellen von CTAS-Abfragen. Weitere Information zur CTAS-Syntax finden Sie unter [CREATE TABLE AS](create-table-as.md).

In diesem Abschnitt: 
+  [Example: Duplicating a table by selecting all columns](#ctas-example-dupe-table) 
+  [Example: Selecting specific columns from one or more tables](#ctas-example-specify-columns) 
+  [Example: Creating an empty copy of an existing table](#ctas-example-empty-table) 
+  [Example: Specifying data storage and compression formats](#ctas-example-compression) 
+  [Example: Writing query results to a different format](#ctas-example-format) 
+  [Example: Creating unpartitioned tables](#ctas-example-unpartitioned) 
+  [Example: Creating partitioned tables](#ctas-example-partitioned) 
+  [Example: Creating bucketed and partitioned tables](#ctas-example-bucketed) 
+  [Example: Creating an Iceberg table with Parquet data](#ctas-example-iceberg-parquet) 
+  [Example: Creating an Iceberg table with Avro data](#ctas-example-iceberg-avro) 
+  [Example: Creating an S3 table using CTAS](#ctas-example-s3-table) 

**Example -Beispiel: Duplizieren einer Tabelle durch Auswahl aller Spalten**  
Das folgende Beispiel erstellt eine Tabelle durch Kopieren aller Spalten aus einer Tabelle:  

```
CREATE TABLE new_table AS 
SELECT * 
FROM old_table;
```
In der folgenden Variante des gleichen Beispiels enthält Ihre `SELECT`-Anweisung auch eine `WHERE`-Klausel. In diesem Fall wählt die Abfrage nur die Zeilen aus der Tabelle aus, die die `WHERE`-Klausel erfüllen:   

```
CREATE TABLE new_table AS 
SELECT * 
FROM old_table 
WHERE condition;
```

**Example -Beispiel: Auswählen bestimmter Spalten aus einer oder mehreren Tabellen**  
Das folgende Beispiel erstellt eine neue Abfrage, die auf einer Reihe von Spalten aus einer anderen Tabelle ausgeführt wird:  

```
CREATE TABLE new_table AS 
SELECT column_1, column_2, ... column_n 
FROM old_table;
```
Diese Variation des gleichen Beispiels erstellt eine neue Tabelle aus bestimmten Spalten aus mehreren Tabellen:   

```
CREATE TABLE new_table AS
SELECT column_1, column_2, ... column_n 
FROM old_table_1, old_table_2, ... old_table_n;
```

**Example -Beispiel: Erstellen einer leeren Kopie einer vorhandenen Tabelle**  
Das folgende Beispiel verwendet `WITH NO DATA`, um eine neue Tabelle zu erstellen, die leer ist und das gleiche Schema wie die ursprüngliche Tabelle aufweist:  

```
CREATE TABLE new_table 
AS SELECT * 
FROM old_table
WITH NO DATA;
```

**Example -Beispiel: Angeben von Datenspeicherungs- und Komprimierungsformaten**  
Mit CTAS können Sie eine Quelltabelle in einem Speicherformat verwenden, um eine weitere Tabelle in einem anderen Speicherformat zu erstellen.   
Verwenden Sie die `format`-Eigenschaft, um `ORC` `PARQUET` ,`AVRO`, `JSON` oder `TEXTFILE` als Speicherformat für die neue Tabelle anzugeben.   
Verwenden Sie für die Speicherformate `PARQUET`, `ORC`, `TEXTFILE`, und `JSON` die `write_compression`-Eigenschaft, um das Komprimierungsformat für die Daten der neuen Tabelle anzugeben. Informationen zu den Komprimierungsformaten, die jedes Dateiformat unterstützt, finden Sie unter [Komprimierung in Athena verwenden](compression-formats.md).  
Das folgende Beispiel gibt an, dass die Daten in der Tabelle `new_table` im Parquet-Format gespeichert werden und die Snappy-Komprimierung verwenden. Die Standardkomprimierung für Parquet ist `GZIP`.  

```
CREATE TABLE new_table
WITH (
      format = 'Parquet',
      write_compression = 'SNAPPY')
AS SELECT *
FROM old_table;
```
Das folgende Beispiel gibt an, dass die Daten in der Tabelle `new_table` im ORC-Format gespeichert werden und die Snappy-Komprimierung verwenden. Die Standardkomprimierung für ORC ist ZLIB.  

```
CREATE TABLE new_table
WITH (format = 'ORC',
      write_compression = 'SNAPPY')
AS SELECT *
FROM old_table ;
```
Das folgende Beispiel gibt an, dass die Daten in der Tabelle `new_table` im Textfile-Format gespeichert werden und die Snappy-Komprimierung verwenden. Die Standardkomprimierung sowohl für das Textfile- als auch für das JSON-Format ist GZIP.  

```
CREATE TABLE new_table
WITH (format = 'TEXTFILE',
      write_compression = 'SNAPPY')
AS SELECT *
FROM old_table ;
```

**Example -Beispiel: Schreiben von Abfrageergebnissen in ein anderes Format**  
Die folgende CTAS-Abfrage wählt alle Datensätze aus `old_table` aus, die in CSV oder einem anderen Format gespeichert werden können, und erstellt eine neue Tabelle, wobei die zugrunde liegenden Daten im ORC-Format in Amazon S3 gespeichert sind:   

```
CREATE TABLE my_orc_ctas_table
WITH (
      external_location = 's3://amzn-s3-demo-bucket/my_orc_stas_table/',
      format = 'ORC')
AS SELECT * 
FROM old_table;
```

**Example -Beispiel: Erstellen von nicht partitionierten Tabellen**  
Die folgenden Beispiele erstellen Tabellen, die nicht partitioniert werden. Die Tabellendaten werden in verschiedenen Formaten gespeichert. Einige dieser Beispiele geben den externen Speicherort an.   
Das folgende Beispiel erstellt eine CTAS-Abfrage, die die Ergebnisse als Textdatei speichert:  

```
CREATE TABLE ctas_csv_unpartitioned 
WITH (
     format = 'TEXTFILE', 
     external_location = 's3://amzn-s3-demo-bucket/ctas_csv_unpartitioned/') 
AS SELECT key1, name1, address1, comment1
FROM table1;
```
Im folgenden Beispiel werden die Ergebnisse in Parquet gespeichert und der standardmäßige Ergebnisspeicherort wird verwendet:  

```
CREATE TABLE ctas_parquet_unpartitioned 
WITH (format = 'PARQUET') 
AS SELECT key1, name1, comment1
FROM table1;
```
In der folgenden Abfrage wird die Tabelle in JSON gespeichert und bestimmte Spalten aus den Ergebnissen der ursprünglichen Tabelle ausgewählt:  

```
CREATE TABLE ctas_json_unpartitioned 
WITH (
     format = 'JSON',  
     external_location = 's3://amzn-s3-demo-bucket/ctas_json_unpartitioned/') 
AS SELECT key1, name1, address1, comment1
FROM table1;
```
Im folgenden Beispiel lautet das Format ORC:  

```
CREATE TABLE ctas_orc_unpartitioned 
WITH (
     format = 'ORC') 
AS SELECT key1, name1, comment1 
FROM table1;
```
Im folgenden Beispiel lautet das Format Avro:  

```
CREATE TABLE ctas_avro_unpartitioned 
WITH (
     format = 'AVRO', 
     external_location = 's3://amzn-s3-demo-bucket/ctas_avro_unpartitioned/') 
AS SELECT key1, name1, comment1
FROM table1;
```

**Example -Beispiel: Erstellen partitionierter Tabellen**  
Die folgenden Beispiele zeigen `CREATE TABLE AS SELECT`-Abfragen für partitionierte Tabellen in verschiedenen Datenspeicherformaten unter Verwendung von `partitioned_by` und anderen Eigenschaften in der `WITH`-Klausel. Weitere Informationen zur Syntax finden Sie unter [CTAS-Tabelleneigenschaften](create-table-as.md#ctas-table-properties). Weitere Informationen zur Auswahl der Spalten für die Partitionierung finden Sie unter [Partitionierung und Bucketing verwenden](ctas-partitioning-and-bucketing.md).  
Auflisten von Partitionsspalten am Ende der Liste der Spalten in der `SELECT`-Anweisung. Sie können in mehrere Spalten partitionieren und über bis zu 100 eindeutige Partitions- und Bucket-Kombinationen verfügen. Sie können beispielsweise 100 Partitionen haben, wenn keine Buckets angegeben sind.

```
CREATE TABLE ctas_csv_partitioned 
WITH (
     format = 'TEXTFILE',  
     external_location = 's3://amzn-s3-demo-bucket/ctas_csv_partitioned/', 
     partitioned_by = ARRAY['key1']) 
AS SELECT name1, address1, comment1, key1
FROM tables1;
```

```
CREATE TABLE ctas_json_partitioned 
WITH (
     format = 'JSON', 
     external_location = 's3://amzn-s3-demo-bucket/ctas_json_partitioned/', 
     partitioned_by = ARRAY['key1']) 
AS select name1, address1, comment1, key1 
FROM table1;
```

**Example -Beispiel: Erstellen von Tabellen mit Bucketing und Partitionierung**  
Das folgende Beispiel zeigt eine `CREATE TABLE AS SELECT`-Abfrage, die sowohl die Partitionierung als auch das Bucketing zum Speichern von Abfrageergebnissen in Amazon S3 verwendet. Die Tabellenergebnisse werden partitioniert und nach verschiedenen Spalten gruppiert. Athena unterstützt maximal 100 eindeutige Kombinationen aus Bucket und Partition. Wenn Sie beispielsweise eine Tabelle mit fünf Buckets erstellen, werden 20 Partitionen mit je fünf Buckets unterstützt. Weitere Informationen zur Syntax finden Sie unter [CTAS-Tabelleneigenschaften](create-table-as.md#ctas-table-properties).  
Weitere Informationen zur Auswahl der Spalten für das Bucketing finden Sie unter [Partitionierung und Bucketing verwenden](ctas-partitioning-and-bucketing.md).  

```
CREATE TABLE ctas_avro_bucketed 
WITH (
      format = 'AVRO', 
      external_location = 's3://amzn-s3-demo-bucket/ctas_avro_bucketed/', 
      partitioned_by = ARRAY['nationkey'], 
      bucketed_by = ARRAY['mktsegment'], 
      bucket_count = 3) 
AS SELECT key1, name1, address1, phone1, acctbal, mktsegment, comment1, nationkey 
FROM table1;
```

**Example -Beispiel: Erstellen einer Iceberg-Tabelle mit Parquet-Daten**  
Im folgenden Beispiel wird eine Iceberg-Tabelle mit Parquet-Datendateien erstellt. Die Dateien werden mithilfe der `dt`-Spalte in `table1` nach Monaten partitioniert. Das Beispiel aktualisiert die Aufbewahrungseigenschaften für die Tabelle, sodass standardmäßig 10 Snapshots in jeder Verzweigung in der Tabelle aufbewahrt werden. Snapshots innerhalb der letzten 7 Tage werden ebenfalls aufbewahrt. Weitere Informationen zu Iceberg-Tabelleneigenschaften in Athena finden in [Tabelleneigenschaften angeben](querying-iceberg-creating-tables.md#querying-iceberg-table-properties).  

```
CREATE TABLE ctas_iceberg_parquet
WITH (table_type = 'ICEBERG',
      format = 'PARQUET', 
      location = 's3://amzn-s3-demo-bucket/ctas_iceberg_parquet/', 
      is_external = false,
      partitioning = ARRAY['month(dt)'],
      vacuum_min_snapshots_to_keep = 10,
      vacuum_max_snapshot_age_seconds = 604800
   ) 
AS SELECT key1, name1, dt FROM table1;
```

**Example -Beispiel: Erstellen einer Iceberg-Tabelle mit Avro-Daten**  
Im folgenden Beispiel wird eine Iceberg-Tabelle mit Avro-Datendateien mit Partitionierung durch `key1` erstellt.  

```
CREATE TABLE ctas_iceberg_avro
WITH ( format = 'AVRO', 
       location = 's3://amzn-s3-demo-bucket/ctas_iceberg_avro/', 
       is_external = false,
       table_type = 'ICEBERG',
       partitioning = ARRAY['key1']) 
AS SELECT key1, name1, date FROM table1;
```

**Example Beispiel: Erstellen einer S3-Tabelle mit CTAS**  
Im folgenden Beispiel wird mithilfe von CTAS eine neue S3-Tabelle erstellt. Beachten Sie, dass die location-Eigenschaft weggelassen wird und `table_type` standardmäßig auf `ICEBERG` gesetzt ist:  

```
CREATE TABLE "s3tablescatalog/amzn-s3-demo-bucket"."namespace"."s3-table-name"
WITH (
    format = 'PARQUET'
)
AS SELECT *
FROM source_table;
```
Sie können alle anderen Eigenschaften von Iceberg-Tabellen, wie Partitionierung und Bucketing, mit derselben Syntax wie normale Iceberg-Tabellen angeben.