Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Membongkar data ke Amazon S3
Amazon Redshift membagi hasil pernyataan pilih di satu set file, satu atau beberapa file per irisan node, untuk menyederhanakan pemuatan ulang data secara paralel. Atau, Anda dapat menentukan yang UNLOAD harus menulis hasil serial ke satu atau lebih file dengan menambahkan PARALLEL OFF opsi. Anda dapat membatasi ukuran file di Amazon S3 dengan menentukan parameter. MAXFILESIZE UNLOADsecara otomatis mengenkripsi file data menggunakan enkripsi sisi server Amazon S3 (-S3). SSE
Anda dapat menggunakan pernyataan pilih apa pun dalam UNLOAD perintah yang didukung Amazon Redshift, kecuali untuk pilih yang menggunakan LIMIT klausa di seleksi luar. Misalnya, Anda dapat menggunakan pernyataan pilih yang menyertakan kolom tertentu atau yang menggunakan klausa where untuk menggabungkan beberapa tabel. Jika kueri Anda berisi tanda kutip (melampirkan nilai literal, misalnya), Anda harus menghindarinya dalam teks kueri (\ '). Untuk informasi selengkapnya, lihat referensi SELECT perintah. Untuk informasi selengkapnya tentang menggunakan LIMIT klausa, lihat UNLOAD perintah Catatan penggunaan untuk.
Misalnya, UNLOAD perintah berikut mengirimkan isi VENUE tabel ke bucket Amazon S3. s3://amzn-s3-demo-bucket/tickit/unload/
unload ('select * from venue') to 's3://amzn-s3-demo-bucket/tickit/unload/venue_' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole';
Nama file yang dibuat oleh contoh sebelumnya termasuk awalan 'venue_
'.
venue_0000_part_00 venue_0001_part_00 venue_0002_part_00 venue_0003_part_00
Secara default, UNLOAD menulis data secara paralel dengan beberapa file, sesuai dengan jumlah irisan di cluster. Untuk menulis data ke satu file, tentukan PARALLELOFF. UNLOADmenulis data secara serial, diurutkan secara mutlak sesuai ORDER dengan klausa BY, jika digunakan. Ukuran maksimum untuk file data adalah 6,2 GB. Jika ukuran data lebih besar dari maksimum, UNLOAD buat file tambahan, masing-masing hingga 6,2 GB.
Contoh berikut menulis isi VENUE ke satu file. Hanya satu file yang diperlukan karena ukuran file kurang dari 6,2 GB.
unload ('select * from venue') to 's3://amzn-s3-demo-bucket/tickit/unload/venue_' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole' parallel off;
catatan
UNLOADPerintah ini dirancang untuk menggunakan pemrosesan paralel. Sebaiknya biarkan PARALLEL diaktifkan untuk sebagian besar kasus, terutama jika file akan digunakan untuk memuat tabel menggunakan COPY perintah.
Dengan asumsi ukuran total data untuk VENUE adalah 5 GB, contoh berikut menulis isi VENUE hingga 50 file, masing-masing berukuran 100 MB.
unload ('select * from venue') to 's3://amzn-s3-demo-bucket/tickit/unload/venue_' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole' parallel off maxfilesize 100 mb;
Jika Anda menyertakan awalan dalam string jalur Amazon S3UNLOAD, akan menggunakan awalan itu untuk nama file.
unload ('select * from venue') to 's3://amzn-s3-demo-bucket/tickit/unload/venue_' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole';
Anda dapat membuat file manifes yang mencantumkan file bongkar dengan menentukan MANIFEST opsi dalam perintah. UNLOAD Manifes adalah file teks dalam JSON format yang secara eksplisit mencantumkan setiap file yang ditulis ke Amazon S3. URL
Contoh berikut mencakup opsi manifes.
unload ('select * from venue') to 's3://amzn-s3-demo-bucket/tickit/venue_' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole' manifest;
Contoh berikut menunjukkan manifes untuk empat file bongkar.
{ "entries": [ {"url":"s3://amzn-s3-demo-bucket/tickit/venue_0000_part_00"}, {"url":"s3://amzn-s3-demo-bucket/tickit/venue_0001_part_00"}, {"url":"s3://amzn-s3-demo-bucket/tickit/venue_0002_part_00"}, {"url":"s3://amzn-s3-demo-bucket/tickit/venue_0003_part_00"} ] }
File manifes dapat digunakan untuk memuat file yang sama COPY dengan menggunakan MANIFEST opsi dengan. Untuk informasi selengkapnya, lihat Menggunakan manifes untuk menentukan file data.
Setelah Anda menyelesaikan UNLOAD operasi, konfirmasikan bahwa data telah dibongkar dengan benar dengan menavigasi ke bucket Amazon S3 tempat menulis file. UNLOAD Anda akan melihat satu atau lebih file bernomor per irisan, dimulai dengan angka nol. Jika Anda menentukan MANIFEST opsi, Anda juga akan melihat file yang diakhiri dengan 'manifest
'. Sebagai contoh:
amzn-s3-demo-bucket/tickit/venue_0000_part_00 amzn-s3-demo-bucket/tickit/venue_0001_part_00 amzn-s3-demo-bucket/tickit/venue_0002_part_00 amzn-s3-demo-bucket/tickit/venue_0003_part_00 amzn-s3-demo-bucket/tickit/venue_manifest
Anda dapat secara terprogram mendapatkan daftar file yang ditulis ke Amazon S3 dengan memanggil operasi daftar Amazon S3 setelah selesai. UNLOAD Anda juga dapat menanyakan STL _ UNLOAD _LOG.
Query berikut mengembalikan pathname untuk file yang dibuat oleh fileUNLOAD. PG_ _ _ ID LAST QUERYFungsi mengembalikan query terbaru.
select query, substring(path,0,40) as path from stl_unload_log where query=2320 order by path; query | path -------+-------------------------------------- 2320 | s3://amzn-s3-demo-bucket/venue0000_part_00 2320 | s3://amzn-s3-demo-bucket/venue0001_part_00 2320 | s3://amzn-s3-demo-bucket/venue0002_part_00 2320 | s3://amzn-s3-demo-bucket/venue0003_part_00 (4 rows)
Jika jumlah datanya sangat besar, Amazon Redshift mungkin membagi file menjadi beberapa bagian per irisan. Sebagai contoh:
venue_0000_part_00 venue_0000_part_01 venue_0000_part_02 venue_0001_part_00 venue_0001_part_01 venue_0001_part_02 ...
UNLOADPerintah berikut mencakup string yang dikutip dalam pernyataan select, sehingga tanda kutip diloloskan (). =\'OH\'
'
unload ('select venuename, venuecity from venue where venuestate=\'OH\' ') to 's3://amzn-s3-demo-bucket/tickit/venue/ ' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole';
Secara default, UNLOAD akan gagal daripada menimpa file yang ada di bucket tujuan. Untuk menimpa file yang ada, termasuk file manifes, tentukan ALLOWOVERWRITE opsi.
unload ('select * from venue') to 's3://amzn-s3-demo-bucket/venue_pipe_' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole' manifest allowoverwrite;