Contoh kueri CTAS - Amazon Athena

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

Contoh kueri CTAS

Gunakan contoh berikut untuk membuat permintaan CTAS. Untuk informasi tentang sintaks aturan, lihat CREATE 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, AndaSELECTpernyataan juga mencakupWHEREKlausul. Dalam kasus ini, kueri memilih hanya baris dari tabel yang memenuhiWHEREKlausul:

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 FROM old_table_1, old_table_2, ... old_table_n;
contoh
Contoh: Membuat salinan kosong dari tabel yang ada

Contoh berikut menggunakanWITH NO DATAuntuk 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

Dengan CTAS, 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 PARQUETORC,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, lihatDukungan kompresi 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 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 ;
contoh
Contoh: Menulis hasil kueri ke format yang berbeda

Kueri CTAS 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 dalam format ORC:

CREATE TABLE my_orc_ctas_table WITH ( external_location = 's3://DOC-EXAMPLE-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 kueri CTAS yang menyimpan hasil sebagai file teks:

CREATE TABLE ctas_csv_unpartitioned WITH ( format = 'TEXTFILE', external_location = 's3://DOC-EXAMPLE-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://DOC-EXAMPLE-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://DOC-EXAMPLE-BUCKET/ctas_avro_unpartitioned/') AS SELECT key1, name1, comment1 FROM table1;
contoh
Contoh: Membuat tabel yang dipartisi

Contoh berikut menunjukkanCREATE TABLE AS SELECTquery untuk tabel dipartisi dalam format penyimpanan yang berbeda, menggunakanpartitioned_by, dan properti lainnya diWITHKlausul. Untuk sintaks, lihatProperti tabel CTAS. Untuk informasi selengkapnya tentang memilih kolom untuk partisi, lihatPartisi dan bucketing di Athena.

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://DOC-EXAMPLE-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://DOC-EXAMPLE-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 SELECTquery 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, lihatProperti tabel CTAS.

Untuk informasi tentang memilih kolom untuk bucketing, lihatPartisi dan bucketing di Athena.

CREATE TABLE ctas_avro_bucketed WITH ( format = 'AVRO', external_location = 's3://DOC-EXAMPLE-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. Properti tabel

CREATE TABLE ctas_iceberg_parquet WITH (table_type = 'ICEBERG', format = 'PARQUET', location = 's3://DOC-EXAMPLE-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://DOC-EXAMPLE-BUCKET/ctas_iceberg_avro/', is_external = false, table_type = 'ICEBERG', partitioning = ARRAY['key1']) AS SELECT key1, name1, date FROM table1;