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 WHEREcondition;
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 SELECTcolumn_1,column_2, ... column_nFROM 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_nFROMold_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, 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 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://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 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;
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, 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 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, 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;
contoh 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 * FROMsource_table;
Anda dapat menentukan semua properti tabel Iceberg lainnya, seperti partisi dan bucketing dengan sintaks yang sama seperti tabel Iceberg biasa.