

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Contoh kueri CTAS
<a name="ctas-examples"></a>

Gunakan contoh berikut untuk membuat permintaan CTAS. Untuk informasi tentang sintaks aturan, lihat [CREATE TABLE AS](create-table-as.md).

Di bagian ini: 
+  [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 Contoh: Menduplikasi tabel dengan memilih semua kolom**  
Contoh berikut membuat tabel dengan menyalin semua kolom dari tabel:  

```
CREATE TABLE new_table AS 
SELECT * 
FROM old_table;
```
Dalam variasi berikut dari contoh yang sama, Anda`SELECT`pernyataan juga mencakup`WHERE`Klausul. Dalam kasus ini, kueri memilih hanya baris dari tabel yang memenuhi`WHERE`Klausul:   

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

**Example Contoh: Memilih kolom tertentu dari satu atau lebih tabel**  
Contoh berikut membuat kueri baru yang berjalan pada satu set kolom dari tabel lain:  

```
CREATE TABLE new_table AS 
SELECT column_1, column_2, ... column_n 
FROM old_table;
```
Variasi ini dari contoh yang sama menciptakan tabel baru dari kolom tertentu dari beberapa tabel:   

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

**Example Contoh: Membuat salinan kosong dari tabel yang ada**  
Contoh berikut menggunakan`WITH NO DATA`untuk membuat tabel baru yang kosong dan memiliki skema yang sama seperti tabel asli:  

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

**Example Contoh: Menentukan penyimpanan data dan format kompresi**  
Dengan CTAS, Anda dapat menggunakan tabel sumber dalam satu format penyimpanan untuk membuat tabel lain dalam format penyimpanan yang berbeda.   
Gunakan `format` properti untuk menentukan`ORC`,`PARQUET`,`AVRO`,`JSON`, atau `TEXTFILE` sebagai format penyimpanan untuk tabel baru.   
Untuk format `PARQUET``ORC`,`TEXTFILE`,, dan `JSON` penyimpanan, gunakan `write_compression` properti untuk menentukan format kompresi untuk data tabel baru. Untuk informasi tentang format kompresi yang didukung oleh setiap format file, lihat[Gunakan kompresi di Athena](compression-formats.md).  
Contoh berikut menentukan bahwa data dalam tabel `new_table` disimpan dalam format Parket dan menggunakan kompresi Snappy. Kompresi default untuk Parket adalah`GZIP`.  

```
CREATE TABLE new_table
WITH (
      format = 'Parquet',
      write_compression = 'SNAPPY')
AS SELECT *
FROM old_table;
```
Contoh berikut menentukan bahwa data dalam tabel `new_table` disimpan dalam format ORC menggunakan kompresi Snappy. Kompresi default untuk ORC adalah ZLIB.  

```
CREATE TABLE new_table
WITH (format = 'ORC',
      write_compression = 'SNAPPY')
AS SELECT *
FROM old_table ;
```
Contoh berikut menentukan bahwa data dalam tabel `new_table` disimpan dalam format textfile menggunakan kompresi Snappy. Kompresi default untuk format textfile dan JSON adalah GZIP.  

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

**Example Contoh: Menulis hasil kueri ke format yang berbeda**  
Kueri CTAS berikut memilih semua catatan dari`old_table`, yang dapat disimpan dalam CSV atau format lain, dan membuat tabel baru dengan data dasar yang disimpan ke Amazon S3 dalam format ORC:   

```
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 Contoh: Membuat tabel yang tidak dipartisi**  
Contoh berikut membuat tabel yang tidak dipartisi. Data tabel disimpan dalam format yang berbeda. Beberapa contoh ini menentukan lokasi eksternal.   
Contoh berikut membuat kueri CTAS yang menyimpan hasil sebagai file teks:  

```
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;
```
Pada contoh berikut, hasil disimpan di Parquet, dan lokasi hasil default digunakan:  

```
CREATE TABLE ctas_parquet_unpartitioned 
WITH (format = 'PARQUET') 
AS SELECT key1, name1, comment1
FROM table1;
```
Dalam kueri berikut, tabel disimpan dalam JSON, dan kolom tertentu dipilih dari hasil tabel asli ini:  

```
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;
```
Berikut ini adalah contoh file .  

```
CREATE TABLE ctas_orc_unpartitioned 
WITH (
     format = 'ORC') 
AS SELECT key1, name1, comment1 
FROM table1;
```
Berikut ini adalah contoh file .  

```
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 Contoh: Membuat tabel yang dipartisi**  
Contoh berikut menunjukkan`CREATE TABLE AS SELECT`query untuk tabel dipartisi dalam format penyimpanan yang berbeda, menggunakan`partitioned_by`, dan properti lainnya di`WITH`Klausul. Untuk sintaks, lihat[Properti tabel CTAS](create-table-as.md#ctas-table-properties). Untuk informasi selengkapnya tentang memilih kolom untuk partisi, lihat[Gunakan partisi dan bucketing](ctas-partitioning-and-bucketing.md).  
Daftar kolom partisi pada akhir daftar kolom di`SELECT`. Anda dapat mempartisi dengan lebih dari satu kolom, dan memiliki hingga 100 partisi unik dan kombinasi bucket. Misalnya, Anda dapat memiliki 100 partisi jika tidak ada bucket yang ditentukan.

```
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 Contoh: Membuat tabel berember dan dipartisi**  
Contoh berikut menunjukkan`CREATE TABLE AS SELECT`query yang menggunakan partisi dan bucketing untuk menyimpan hasil kueri di Amazon S3. Hasil tabel dipartisi dan bucketed oleh kolom yang berbeda. Athena mendukung maksimal 100 kombinasi bucket dan partisi yang unik. Misalnya, jika Anda membuat tabel dengan lima bucket, 20 partisi dengan lima bucket masing-masing didukung. Untuk sintaks, lihat[Properti tabel CTAS](create-table-as.md#ctas-table-properties).  
Untuk informasi tentang memilih kolom untuk bucketing, lihat[Gunakan partisi dan bucketing](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 Contoh: Membuat tabel Gunung Es dengan data Parket**  
Contoh berikut membuat tabel Iceberg dengan file data Parket. File dipartisi berdasarkan bulan menggunakan `dt` kolom di. `table1` Contoh memperbarui properti retensi pada tabel sehingga 10 snapshot dipertahankan secara default pada setiap cabang dalam tabel. Snapshot dalam 7 hari terakhir juga dipertahankan. Untuk informasi lebih lanjut tentang properti tabel Gunung Es di Athena, lihat. [Tentukan properti tabel](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 Contoh: Membuat tabel Iceberg dengan data Avro**  
Contoh berikut membuat tabel Iceberg dengan file data Avro dipartisi oleh. `key1`  

```
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 Contoh: Membuat Tabel S3 menggunakan CTAS**  
Contoh berikut membuat Tabel S3 menggunakan CTAS. Perhatikan bahwa properti lokasi dihilangkan, dan `table_type` defaultnya adalah: `ICEBERG`  

```
CREATE TABLE "s3tablescatalog/amzn-s3-demo-bucket"."namespace"."s3-table-name"
WITH (
    format = 'PARQUET'
)
AS SELECT *
FROM source_table;
```
Anda dapat menentukan semua properti tabel Iceberg lainnya, seperti partisi dan bucketing dengan sintaks yang sama seperti tabel Iceberg biasa.