

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

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

Menciptakan tabel baru diisi dengan hasil[SELECT](select.md)kueri. Untuk membuat tabel kosong, gunakan[CREATE TABLE](create-table.md). `CREATE TABLE AS`menggabungkan pernyataan `CREATE TABLE` DDL dengan pernyataan `SELECT` DHTML dan oleh karena itu secara teknis berisi DDL dan DML.2. Perhatikan bahwa meskipun `CREATE TABLE AS` dikelompokkan di sini dengan pernyataan DDL lainnya, kueri CTAS di Athena diperlakukan sebagai DMLuntuk tujuan Service Quotas. Untuk informasi tentang Service Quotas di Athena, lihat. [Service Quotas](service-limits.md)

**catatan**  
Untuk pernyataan CTAS, setelan pemilik bucket yang diharapkan tidak berlaku untuk lokasi tabel tujuan di Amazon S3. Setelan pemilik bucket yang diharapkan hanya berlaku untuk lokasi keluaran Amazon S3 yang Anda tentukan untuk hasil kueri Athena. Untuk informasi selengkapnya, lihat [Tentukan lokasi hasil kueri menggunakan konsol Athena](query-results-specify-location-console.md).

Untuk informasi tambahan tentang hal `CREATE TABLE AS` itu di luar cakupan topik referensi ini, lihat[Buat tabel dari hasil kueri (CTAS)](ctas.md).

**Topics**
+ [Sinopsis](#synopsis)
+ [Properti tabel CTAS](#ctas-table-properties)
+ [Contoh](#ctas-table-examples)

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

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

Di mana:

**Untuk (property\$1name = ekspresi [,...])**  
Daftar properti tabel CTAS opsional, beberapa di antaranya khusus untuk format penyimpanan data. Lihat [Properti tabel CTAS](#ctas-table-properties).

**kueri**  
A[SELECT](select.md)query yang digunakan untuk membuat tabel baru.  
Jika Anda berencana untuk membuat kueri dengan partisi, menentukan nama kolom dipartisi terakhir dalam daftar kolom di`SELECT`.

**[DENGAN [TIDAK] DATA]**  
Jika`WITH NO DATA`digunakan, tabel kosong baru dengan skema yang sama seperti tabel asli dibuat.

**catatan**  
Untuk menyertakan header kolom dalam output hasil kueri, Anda dapat menggunakan `SELECT` kueri sederhana alih-alih kueri CTAS. Anda dapat mengambil hasil dari lokasi hasil kueri atau mengunduh hasilnya secara langsung menggunakan konsol Athena. Untuk informasi selengkapnya, lihat [Bekerja dengan hasil kueri dan kueri terbaru](querying.md). 

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

Setiap tabel CTAS di Athena memiliki daftar opsional CTAS properti tabel yang Anda tentukan menggunakan`WITH (property_name = expression [, ...] )`. Untuk informasi tentang menggunakan prosedur ini, lihat [Contoh kueri CTAS](ctas-examples.md).

** `WITH (property_name = expression [, ...], )` **    
 `table_type = ['HIVE', 'ICEBERG']`   
Tidak wajib. Nilai default-nya `HIVE`. Menentukan jenis tabel tabel yang dihasilkan  
Contoh:  

```
WITH (table_type ='ICEBERG')
```  
 `external_location = [location]`   
Karena tabel Iceberg tidak eksternal, properti ini tidak berlaku untuk tabel Iceberg. Untuk menentukan lokasi root dari tabel Iceberg dalam pernyataan CTAS, gunakan `location` properti yang dijelaskan nanti di bagian ini.
Tidak wajib. Lokasi tempat Athena menyimpan kueri CTAS Anda di Amazon S3.  
Contoh:  

```
 WITH (external_location ='s3://amzn-s3-demo-bucket/tables/parquet_table/')
```
Athena tidak menggunakan jalur yang sama untuk hasil kueri dua kali. Jika Anda menentukan lokasi secara manual, pastikan bahwa lokasi Amazon S3 yang Anda tentukan tidak memiliki data. Athena tidak pernah mencoba untuk menghapus data Anda. Jika Anda ingin menggunakan lokasi yang sama lagi, hapus data secara manual, atau kueri CTAS Anda akan gagal.  
Jika Anda menjalankan permintaan CTAS yang menentukan`external_location`dalam grup kerja yang[memberlakukan lokasi hasil kueri](workgroups-settings-override.md), permintaan gagal dengan pesan kesalahan. Untuk melihat lokasi hasil kueri yang ditentukan untuk grup kerja,[lihat detail grup kerja](viewing-details-workgroups.md).  
Jika grup kerja Anda menimpa pengaturan sisi klien untuk permintaan hasil lokasi, Athena membuat tabel Anda di lokasi berikut:  

```
s3://amzn-s3-demo-bucket/tables/query-id/
```
Jika Anda tidak menggunakan`external_location`properti untuk menentukan lokasi dan grup kerja Anda tidak menimpa pengaturan sisi klien, Athena menggunakan[Pengaturan sisi klien](query-results-specify-location-console.md)untuk lokasi hasil kueri untuk membuat tabel Anda di lokasi berikut:  

```
s3://amzn-s3-demo-bucket/Unsaved-or-query-name/year/month/date/tables/query-id/
```  
 `is_external = [boolean]`   
Tidak wajib. Menunjukkan apakah tabel adalah tabel eksternal. Bawaannya adalah benar. Untuk tabel Iceberg, ini harus disetel ke false.  
Contoh:  

```
WITH (is_external = false)
```  
 `location = [location]`   
Diperlukan untuk tabel Iceberg. Menentukan lokasi root untuk tabel Iceberg yang akan dibuat dari hasil query.  
Contoh:  

```
WITH (location ='s3://amzn-s3-demo-bucket/tables/iceberg_table/')
```  
 `field_delimiter = [delimiter]`   
Opsional dan spesifik untuk format penyimpanan data berbasis teks. Pembatas bidang karakter tunggal untuk file dalam CSV, TSV, dan file teks. Misalnya, `WITH (field_delimiter = ',')`. Saat ini, pembatas bidang multikarakter tidak didukung untuk permintaan CTAS. Jika Anda tidak menentukan pembatas bidang,`\001`digunakan secara default.  
 `format = [storage_format]`   
Format penyimpanan untuk hasil query CTAS, seperti,`ORC`,`PARQUET`,`AVRO`, `JSON``ION`, atau`TEXTFILE`. Untuk tabel Iceberg, format yang diizinkan adalah`ORC`,`PARQUET`, dan. `AVRO` Jika dihilangkan,`PARQUET`digunakan secara default. Nama parameter ini,`format`, harus terdaftar dalam huruf kecil, atau permintaan CTAS Anda akan gagal.   
Contoh:  

```
WITH (format = 'PARQUET')
```  
 `bucketed_by = ARRAY[ column_name[,…], bucket_count = [int] ]`   
Properti ini tidak berlaku untuk tabel Iceberg. Untuk tabel Iceberg, gunakan partisi dengan transformasi bucket.
Daftar larik bucket untuk bucket data. Jika dihilangkan, Athena tidak bucket data Anda dalam kueri ini.  
 `bucket_count = [int]`   
Properti ini tidak berlaku untuk tabel Iceberg. Untuk tabel Iceberg, gunakan partisi dengan transformasi bucket.
Jumlah bucket untuk bucket data Anda. Jika dihilangkan, Athena tidak bucket data Anda. Contoh:  

```
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[,…] ]`   
Properti ini tidak berlaku untuk tabel Iceberg. Untuk menggunakan transformasi partisi untuk tabel Iceberg, gunakan `partitioning` properti yang dijelaskan nanti di bagian ini.
Tidak wajib. Daftar larik kolom dimana tabel CTAS akan dipartisi. Verifikasi bahwa nama-nama kolom dipartisi terdaftar terakhir dalam daftar kolom di`SELECT`.   
 `partitioning = ARRAY[partition_transform, ...]`   
Tidak wajib. Menentukan partisi dari tabel Iceberg yang akan dibuat. Iceberg mendukung berbagai macam transformasi partisi dan evolusi partisi. Transformasi partisi dirangkum dalam tabel berikut.    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/athena/latest/ug/create-table-as.html)
Contoh:  

```
 WITH (partitioning = ARRAY['month(order_date)', 
                            'bucket(account_number, 10)', 
                            'country']))
```  
 `optimize_rewrite_min_data_file_size_bytes = [long]`   
Tidak wajib. Konfigurasi spesifik pengoptimalan data. File yang lebih kecil dari nilai yang ditentukan disertakan untuk optimasi. Defaultnya adalah 0,75 kali nilai. `write_target_data_file_size_bytes` Properti ini hanya berlaku untuk tabel Iceberg. Untuk informasi selengkapnya, lihat [Optimalkan tabel Iceberg](querying-iceberg-data-optimization.md).  
Contoh:  

```
WITH (optimize_rewrite_min_data_file_size_bytes = 402653184)
```  
 `optimize_rewrite_max_data_file_size_bytes = [long]`   
Tidak wajib. Konfigurasi spesifik pengoptimalan data. File yang lebih besar dari nilai yang ditentukan disertakan untuk optimasi. Defaultnya adalah 1,8 kali nilai`write_target_data_file_size_bytes`. Properti ini hanya berlaku untuk tabel Iceberg. Untuk informasi selengkapnya, lihat [Optimalkan tabel Iceberg](querying-iceberg-data-optimization.md).  
Contoh:  

```
WITH (optimize_rewrite_max_data_file_size_bytes = 966367641)
```  
 `optimize_rewrite_data_file_threshold = [int]`   
Tidak wajib. Konfigurasi spesifik pengoptimalan data. Jika ada lebih sedikit file data yang memerlukan pengoptimalan daripada ambang batas yang diberikan, file tidak ditulis ulang. Hal ini memungkinkan akumulasi lebih banyak file data untuk menghasilkan file yang lebih dekat dengan ukuran target dan melewatkan perhitungan yang tidak perlu untuk penghematan biaya. Default-nya adalah 5. Properti ini hanya berlaku untuk tabel Iceberg. Untuk informasi selengkapnya, lihat [Optimalkan tabel Iceberg](querying-iceberg-data-optimization.md).  
Contoh:  

```
WITH (optimize_rewrite_data_file_threshold = 5)
```  
 `optimize_rewrite_delete_file_threshold = [int]`   
Tidak wajib. Konfigurasi spesifik pengoptimalan data. Jika ada lebih sedikit file hapus yang terkait dengan file data daripada ambang batas, file data tidak ditulis ulang. Ini memungkinkan akumulasi lebih banyak file hapus untuk setiap file data untuk penghematan biaya. Defaultnya adalah 2. Properti ini hanya berlaku untuk tabel Iceberg. Untuk informasi selengkapnya, lihat [Optimalkan tabel Iceberg](querying-iceberg-data-optimization.md).  
Contoh:  

```
WITH (optimize_rewrite_delete_file_threshold = 2)
```  
 `vacuum_min_snapshots_to_keep = [int]`   
Tidak wajib. Konfigurasi khusus vakum. Jumlah minimum snapshot terbaru yang harus dipertahankan. Default-nya adalah 1. Properti ini hanya berlaku untuk tabel Iceberg. Untuk informasi selengkapnya, lihat [VAKUM](vacuum-statement.md).  
`vacuum_min_snapshots_to_keep`Properti ini membutuhkan mesin Athena versi 3. 
Contoh:  

```
WITH (vacuum_min_snapshots_to_keep = 1)
```  
 `vacuum_max_snapshot_age_seconds = [long]`   
Tidak wajib. Konfigurasi khusus vakum. Periode dalam detik yang mewakili usia snapshot untuk dipertahankan. Defaultnya adalah 432000 (5 hari). Properti ini hanya berlaku untuk tabel Iceberg. Untuk informasi selengkapnya, lihat [VAKUM](vacuum-statement.md).  
`vacuum_max_snapshot_age_seconds`Properti ini membutuhkan mesin Athena versi 3. 
Contoh:  

```
WITH (vacuum_max_snapshot_age_seconds = 432000)
```  
 `write_compression = [compression_format]`   
Jenis kompresi yang digunakan untuk format penyimpanan apa pun yang memungkinkan kompresi ditentukan. `compression_format`Nilai menentukan kompresi yang akan digunakan ketika data ditulis ke tabel. Anda dapat menentukan kompresi untuk`TEXTFILE`,`JSON`,`PARQUET`, dan format `ORC` file.   
Misalnya, jika `format` properti menentukan `PARQUET` sebagai format penyimpanan, nilai untuk `write_compression` menentukan format kompresi untuk Parket. Dalam hal ini, menentukan nilai untuk `write_compression` setara dengan menentukan nilai untuk. `parquet_compression`   
Demikian pula, jika `format` properti menentukan `ORC` sebagai format penyimpanan, nilai untuk `write_compression` menentukan format kompresi untuk ORC. Dalam hal ini, menentukan nilai untuk `write_compression` setara dengan menentukan nilai untuk. `orc_compression`   
Beberapa properti tabel format kompresi tidak dapat ditentukan dalam kueri CTAS yang sama. Misalnya, Anda tidak dapat menentukan keduanya `write_compression` dan `parquet_compression` dalam kueri yang sama. Hal yang sama berlaku untuk `write_compression` dan`orc_compression`. Untuk informasi tentang jenis kompresi yang didukung untuk setiap format file, lihat[Gunakan kompresi di Athena](compression-formats.md).  
 `orc_compression = [compression_format]`   
Jenis kompresi yang digunakan untuk format `ORC` file saat `ORC` data ditulis ke tabel. Misalnya, `WITH (orc_compression = 'ZLIB')`. Potongan dalam `ORC` file (kecuali `ORC` Postscript) dikompresi menggunakan kompresi yang Anda tentukan. Jika dihilangkan, kompresi ZLIB digunakan secara default untuk. `ORC`  
Untuk konsistensi, kami sarankan Anda menggunakan `write_compression` properti alih-alih`orc_compression`. Gunakan `format` properti untuk menentukan format penyimpanan sebagai`ORC`, dan kemudian gunakan `write_compression` properti untuk menentukan format kompresi yang `ORC` akan digunakan.   
 `parquet_compression = [compression_format]`   
Jenis kompresi yang digunakan untuk format file Parket saat data Parket ditulis ke tabel. Misalnya, `WITH (parquet_compression = 'SNAPPY')`. Kompresi ini diterapkan pada potongan kolom dalam file Parket. Jika dihilangkan, kompresi GZIP digunakan secara default untuk Parket.  
Untuk konsistensi, kami sarankan Anda menggunakan `write_compression` properti alih-alih`parquet_compression`. Gunakan `format` properti untuk menentukan format penyimpanan sebagai`PARQUET`, dan kemudian gunakan `write_compression` properti untuk menentukan format kompresi yang `PARQUET` akan digunakan.   
 `compression_level = [compression_level]`   
Tingkat kompresi yang digunakan. Properti ini hanya berlaku untuk kompresi ZSTD. Nilai yang mungkin adalah dari 1 hingga 22. Nilai default-nya adalah 3. Untuk informasi selengkapnya, lihat [Gunakan tingkat kompresi ZSTD](compression-support-zstd-levels.md).

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

Untuk contoh pertanyaan CTAS, konsultasikan sumber daya berikut.
+  [Contoh kueri CTAS](ctas-examples.md) 
+  [Gunakan CTAS dan INSERT INTO untuk ETL dan analisis data](ctas-insert-into-etl.md) 
+  [Gunakan pernyataan CTAS dengan Amazon Athena untuk mengurangi biaya dan meningkatkan kinerja](https://aws.amazon.com/blogs/big-data/using-ctas-statements-with-amazon-athena-to-reduce-cost-and-improve-performance/) 
+  [Gunakan CTAS dan INSERT INTO untuk bekerja di sekitar batas partisi 100](ctas-insert-into.md) 