Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
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, 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
FROM old_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
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 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 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 SELECT
query untuk tabel dipartisi dalam format penyimpanan yang berbeda, menggunakanpartitioned_by
, dan properti lainnya diWITH
Klausul. 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 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, 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;