Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Contoh CTAS kueri
Gunakan contoh berikut untuk membuat CTAS kueri. Untuk informasi tentang CTAS sintaks, lihatCREATE TABLE AS.
Di bagian ini:
contoh 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, AndaSELECT
pernyataan juga mencakupWHERE
Klausul. Dalam kasus ini, kueri memilih hanya baris dari tabel yang memenuhiWHERE
Klausul:
CREATE TABLE new_table AS SELECT * FROM old_table WHERE
condition
;
contoh 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
FROMold_table_1
,old_table_2
, ...old_table_n
;
contoh Contoh: Membuat salinan kosong dari tabel yang ada
Contoh berikut menggunakanWITH 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;
contoh Contoh: Menentukan penyimpanan data dan format kompresi
DenganCTAS, Anda dapat menggunakan tabel sumber dalam satu format penyimpanan untuk membuat tabel lain dalam format penyimpanan yang berbeda.
Gunakan format
properti untuk menentukanORC
,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, lihatGunakan kompresi di Athena.
Contoh berikut menentukan bahwa data dalam tabel new_table
disimpan dalam format Parket dan menggunakan kompresi Snappy. Kompresi default untuk Parket adalahGZIP
.
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 ORC format menggunakan kompresi Snappy. Kompresi default untuk ORC adalahZLIB.
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 file teks dan JSON format adalahGZIP.
CREATE TABLE new_table WITH (format = '
TEXTFILE
', write_compression = 'SNAPPY') AS SELECT * FROM old_table ;
contoh Contoh: Menulis hasil kueri ke format yang berbeda
CTASKueri berikut memilih semua catatan dariold_table
, yang dapat disimpan dalam CSV atau format lain, dan membuat tabel baru dengan data dasar yang disimpan ke Amazon S3 ORC dalam format:
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;
contoh 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 CTAS query 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 disimpanJSON, dan kolom tertentu dipilih dari hasil tabel asli:
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;
Dalam contoh berikut, formatnya adalahORC:
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;
contoh Contoh: Membuat tabel yang dipartisi
Contoh berikut menunjukkanCREATE TABLE AS SELECT
query untuk tabel dipartisi dalam format penyimpanan yang berbeda, menggunakanpartitioned_by
, dan properti lainnya diWITH
Klausul. Untuk sintaks, lihatCTASproperti tabel. Untuk informasi selengkapnya tentang memilih kolom untuk partisi, lihatGunakan partisi dan bucketing.
catatan
Daftar kolom partisi pada akhir daftar kolom diSELECT
. 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;
contoh Contoh: Membuat tabel berember dan dipartisi
Contoh berikut menunjukkanCREATE 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, lihatCTASproperti tabel.
Untuk informasi tentang memilih kolom untuk bucketing, lihatGunakan partisi dan bucketing.
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;
contoh 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
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;
contoh 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;