Pilih preferensi cookie Anda

Kami menggunakan cookie penting serta alat serupa yang diperlukan untuk menyediakan situs dan layanan. Kami menggunakan cookie performa untuk mengumpulkan statistik anonim sehingga kami dapat memahami cara pelanggan menggunakan situs dan melakukan perbaikan. Cookie penting tidak dapat dinonaktifkan, tetapi Anda dapat mengklik “Kustom” atau “Tolak” untuk menolak cookie performa.

Jika Anda setuju, AWS dan pihak ketiga yang disetujui juga akan menggunakan cookie untuk menyediakan fitur situs yang berguna, mengingat preferensi Anda, dan menampilkan konten yang relevan, termasuk iklan yang relevan. Untuk menerima atau menolak semua cookie yang tidak penting, klik “Terima” atau “Tolak”. Untuk membuat pilihan yang lebih detail, klik “Kustomisasi”.

INSERT (tabel eksternal) - Amazon Redshift

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

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

INSERT (tabel eksternal)

Menyisipkan hasil kueri SELECT ke dalam tabel eksternal yang ada pada katalog eksternal seperti untuk AWS Glue, AWS Lake Formation, atau metastore Apache Hive. Gunakan peran AWS Identity and Access Management (IAM) yang sama yang digunakan untuk perintah CREATE EXTERNAL SCHEMA untuk berinteraksi dengan katalog eksternal dan Amazon S3.

Untuk tabel yang tidak dipartisi, perintah INSERT (tabel eksternal) menulis data ke lokasi Amazon S3 yang ditentukan dalam tabel, berdasarkan properti tabel dan format file yang ditentukan.

Untuk tabel yang dipartisi, INSERT (tabel eksternal) menulis data ke lokasi Amazon S3 sesuai dengan kunci partisi yang ditentukan dalam tabel. Ini juga secara otomatis mendaftarkan partisi baru di katalog eksternal setelah operasi INSERT selesai.

Anda tidak dapat menjalankan INSERT (tabel eksternal) dalam blok transaksi (MULAI... AKHIR). Untuk informasi lebih lanjut tentang transaksi, lihatIsolasi yang dapat diserialisasi.

Sintaks

INSERT INTO external_schema.table_name { select_statement }

Parameter

external_schema.table_name

Nama skema eksternal yang ada dan tabel eksternal target untuk dimasukkan ke dalam.

select_statement

Pernyataan yang menyisipkan satu atau lebih baris ke dalam tabel eksternal dengan mendefinisikan kueri apa pun. Semua baris yang dihasilkan kueri ditulis ke Amazon S3 dalam format teks atau Parket berdasarkan definisi tabel. Kueri harus mengembalikan daftar kolom yang kompatibel dengan tipe data kolom di tabel eksternal. Namun, nama kolom tidak harus cocok.

Catatan penggunaan

Jumlah kolom dalam kueri SELECT harus sama dengan jumlah kolom data dan kolom partisi. Lokasi dan tipe data dari setiap kolom data harus sesuai dengan tabel eksternal. Lokasi kolom partisi harus berada di akhir kueri SELECT, dalam urutan yang sama mereka didefinisikan dalam perintah CREATE EXTERNAL TABLE. Nama kolom tidak harus cocok.

Dalam beberapa kasus, Anda mungkin ingin menjalankan perintah INSERT (tabel eksternal) pada Katalog AWS Glue Data atau metastore Hive. Dalam hal ini AWS Glue, peran IAM yang digunakan untuk membuat skema eksternal harus memiliki izin baca dan tulis di Amazon S3 dan. AWS Glue Jika Anda menggunakan AWS Lake Formation katalog, peran IAM ini menjadi pemilik tabel Lake Formation yang baru. Peran IAM ini setidaknya harus memiliki izin berikut:

  • PILIH, INSERT, PERBARUI izin pada tabel eksternal

  • Izin lokasi data di jalur Amazon S3 dari tabel eksternal

Untuk memastikan bahwa nama file unik, Amazon Redshift menggunakan format berikut untuk nama setiap file yang diunggah ke Amazon S3 secara default.

<date>_<time>_<microseconds>_<query_id>_<slice-number>_part_<part-number>.<format>.

Contohnya adalah 20200303_004509_810669_1007_0001_part_00.parquet.

Pertimbangkan hal berikut saat menjalankan perintah INSERT (tabel eksternal):

  • Tabel eksternal yang memiliki format selain PARQUET atau TEXTFILE tidak didukung.

  • Perintah ini mendukung properti tabel yang ada seperti 'write.parallel', 'write.maxfilesize.mb', 'compression_type', dan 'serialization.null.format'. Untuk memperbarui nilai-nilai tersebut, jalankan perintah ALTER TABLE SET TABLE PROPERTIES.

  • Properti tabel 'NumRows' secara otomatis diperbarui menjelang akhir operasi INSERT. Properti tabel harus didefinisikan atau ditambahkan ke tabel jika tidak dibuat oleh CREATE EXTERNAL TABLE AS operasi.

  • Klausa LIMIT tidak didukung dalam kueri SELECT luar. Sebagai gantinya, gunakan klausa LIMIT bersarang.

  • Anda dapat menggunakan STL_UNLOAD_LOG tabel untuk melacak file yang ditulis ke Amazon S3 oleh setiap operasi INSERT (tabel eksternal).

  • Amazon Redshift hanya mendukung enkripsi standar Amazon S3 untuk INSERT (tabel eksternal).

INSERT (tabel eksternal) contoh

Contoh berikut menyisipkan hasil pernyataan SELECT ke dalam tabel eksternal.

INSERT INTO spectrum.lineitem SELECT * FROM local_lineitem;

Contoh berikut menyisipkan hasil pernyataan SELECT ke dalam tabel eksternal dipartisi menggunakan partisi statis. Kolom partisi di-hardcode dalam pernyataan SELECT. Kolom partisi harus berada di akhir kueri.

INSERT INTO spectrum.customer SELECT name, age, gender, 'May', 28 FROM local_customer;

Contoh berikut menyisipkan hasil pernyataan SELECT ke dalam tabel eksternal dipartisi menggunakan partisi dinamis. Kolom partisi tidak di-hardcode. Data secara otomatis ditambahkan ke folder partisi yang ada, atau ke folder baru jika partisi baru ditambahkan.

INSERT INTO spectrum.customer SELECT name, age, gender, month, day FROM local_customer;

Topik berikutnya:

GEMBOK

Topik sebelumnya:

Contoh INSERT
PrivasiSyarat situsPreferensi cookie
© 2025, Amazon Web Services, Inc. atau afiliasinya. Semua hak dilindungi undang-undang.