Amazon Redshift tidak akan lagi mendukung penggunaan Python UDF setelah 30 Juni 2026. Kami akan mulai menegakkannya secara bertahap. Untuk informasi lebih lanjut tentang detail opsi akhir masa pakai dan migrasi Python, lihat posting blog
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Contoh UNLOAD
Contoh-contoh ini menunjukkan berbagai parameter perintah UNLOAD. Data sampel TICKIT digunakan dalam banyak contoh. Untuk informasi selengkapnya, lihat Database sampel.
catatan
Contoh-contoh ini berisi jeda baris untuk keterbacaan. Jangan sertakan jeda baris atau spasi dalam string kredensi als-args Anda.
Bongkar VENUE ke file yang dibatasi pipa (pembatas default)
Contoh berikut membongkar tabel VENUE dan menulis data ke: s3://amzn-s3-demo-bucket/unload/
unload ('select * from venue') to 's3://amzn-s3-demo-bucket/unload/' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole';
Secara default, UNLOAD menulis satu atau lebih file per irisan. Dengan asumsi cluster dua simpul dengan dua irisan per node, contoh sebelumnya membuat file-file ini di: amzn-s3-demo-bucket
unload/0000_part_00 unload/0001_part_00 unload/0002_part_00 unload/0003_part_00
Untuk membedakan file output dengan lebih baik, Anda dapat menyertakan awalan di lokasi. Contoh berikut membongkar tabel VENUE dan menulis data ke: s3://amzn-s3-demo-bucket/unload/venue_pipe_
unload ('select * from venue') to 's3://amzn-s3-demo-bucket/unload/venue_pipe_' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole';
Hasilnya adalah keempat file ini di unload folder, sekali lagi dengan asumsi empat irisan.
venue_pipe_0000_part_00 venue_pipe_0001_part_00 venue_pipe_0002_part_00 venue_pipe_0003_part_00
Bongkar tabel LINEITEM ke file Parquet yang dipartisi
Contoh berikut membongkar tabel LINEITEM dalam format Parquet, dipartisi oleh kolom. l_shipdate
unload ('select * from lineitem') to 's3://amzn-s3-demo-bucket/lineitem/' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole' PARQUET PARTITION BY (l_shipdate);
Dengan asumsi empat irisan, file Parquet yang dihasilkan secara dinamis dipartisi ke dalam berbagai folder.
s3://amzn-s3-demo-bucket/lineitem/l_shipdate=1992-01-02/0000_part_00.parquet 0001_part_00.parquet 0002_part_00.parquet 0003_part_00.parquet s3://amzn-s3-demo-bucket/lineitem/l_shipdate=1992-01-03/0000_part_00.parquet 0001_part_00.parquet 0002_part_00.parquet 0003_part_00.parquet s3://amzn-s3-demo-bucket/lineitem/l_shipdate=1992-01-04/0000_part_00.parquet 0001_part_00.parquet 0002_part_00.parquet 0003_part_00.parquet ...
catatan
Dalam beberapa kasus, perintah UNLOAD menggunakan opsi INCLUDE seperti yang ditunjukkan dalam pernyataan SQL berikut.
unload ('select * from lineitem') to 's3://amzn-s3-demo-bucket/lineitem/' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole' PARQUET PARTITION BY (l_shipdate) INCLUDE;
Dalam kasus ini, l_shipdate kolom juga ada dalam data dalam file Parquet. Jika tidak, data l_shipdate kolom tidak ada dalam file Parquet.
Bongkar tabel VENUE ke file JSON
Contoh berikut membongkar tabel VENUE dan menulis data dalam format JSON kes3://amzn-s3-demo-bucket/unload/.
unload ('select * from venue') to 's3://amzn-s3-demo-bucket/unload/' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole' JSON;
Berikut ini adalah contoh baris dari tabel VENUE.
venueid | venuename | venuecity | venuestate | venueseats --------+----------------------------+-----------------+------------+----------- 1 | Pinewood Racetrack | Akron | OH | 0 2 | Columbus "Crew" Stadium | Columbus | OH | 0 4 | Community, Ballpark, Arena | Kansas City | KS | 0
Setelah dibongkar ke JSON, format file mirip dengan berikut ini.
{"venueid":1,"venuename":"Pinewood Racetrack","venuecity":"Akron","venuestate":"OH","venueseats":0} {"venueid":2,"venuename":"Columbus \"Crew\" Stadium ","venuecity":"Columbus","venuestate":"OH","venueseats":0} {"venueid":4,"venuename":"Community, Ballpark, Arena","venuecity":"Kansas City","venuestate":"KS","venueseats":0}
Bongkar VENUE ke file CSV
Contoh berikut membongkar tabel VENUE dan menulis data dalam format CSV kes3://amzn-s3-demo-bucket/unload/.
unload ('select * from venue') to 's3://amzn-s3-demo-bucket/unload/' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole' CSV;
Misalkan tabel VENUE berisi baris berikut.
venueid | venuename | venuecity | venuestate | venueseats --------+----------------------------+-----------------+------------+----------- 1 | Pinewood Racetrack | Akron | OH | 0 2 | Columbus "Crew" Stadium | Columbus | OH | 0 4 | Community, Ballpark, Arena | Kansas City | KS | 0
File pembongkaran terlihat mirip dengan berikut ini.
1,Pinewood Racetrack,Akron,OH,0 2,"Columbus ""Crew"" Stadium",Columbus,OH,0 4,"Community, Ballpark, Arena",Kansas City,KS,0
Bongkar VENUE ke file CSV menggunakan pembatas
Contoh berikut membongkar tabel VENUE dan menulis data dalam format CSV menggunakan karakter pipa (|) sebagai pembatas. File yang dibongkar ditulis kes3://amzn-s3-demo-bucket/unload/. Tabel VENUE dalam contoh ini berisi karakter pipa dalam nilai baris pertama (Pinewood Race|track). Ini dilakukan untuk menunjukkan bahwa nilai dalam hasil tertutup dalam tanda kutip ganda. Tanda kutip ganda dilepaskan oleh tanda kutip ganda, dan seluruh bidang tertutup dalam tanda kutip ganda.
unload ('select * from venue') to 's3://amzn-s3-demo-bucket/unload/' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole' CSV DELIMITER AS '|';
Misalkan tabel VENUE berisi baris berikut.
venueid | venuename | venuecity | venuestate | venueseats --------+----------------------------+-----------------+------------+------------- 1 | Pinewood Race|track | Akron | OH | 0 2 | Columbus "Crew" Stadium | Columbus | OH | 0 4 | Community, Ballpark, Arena | Kansas City | KS | 0
File pembongkaran terlihat mirip dengan berikut ini.
1|"Pinewood Race|track"|Akron|OH|0 2|"Columbus ""Crew"" Stadium"|Columbus|OH|0 4|Community, Ballpark, Arena|Kansas City|KS|0
Bongkar VENUE dengan file manifes
Untuk membuat file manifes, sertakan opsi MANIFEST. Contoh berikut membongkar tabel VENUE dan menulis file manifes bersama dengan file data ke s3://amzn-s3-demo -: bucket/venue_pipe_
penting
Jika Anda membongkar file dengan opsi MANIFEST, Anda harus menggunakan opsi MANIFEST dengan perintah COPY saat Anda memuat file. Jika Anda menggunakan awalan yang sama untuk memuat file dan tidak menentukan opsi MANIFEST, COPY gagal karena mengasumsikan file manifes adalah file data.
unload ('select * from venue') to 's3://amzn-s3-demo-bucket/venue_pipe_' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole' manifest;
Hasilnya adalah lima file ini:
s3://amzn-s3-demo-bucket/venue_pipe_0000_part_00 s3://amzn-s3-demo-bucket/venue_pipe_0001_part_00 s3://amzn-s3-demo-bucket/venue_pipe_0002_part_00 s3://amzn-s3-demo-bucket/venue_pipe_0003_part_00 s3://amzn-s3-demo-bucket/venue_pipe_manifest
Berikut ini menunjukkan isi file manifes.
{ "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"} ] }
Bongkar VENUE dengan MANIFEST VERBOSE
Saat Anda menentukan opsi MANIFEST VERBOSE, file manifes mencakup bagian berikut:
-
entriesBagian ini mencantumkan jalur Amazon S3, ukuran file, dan jumlah baris untuk setiap file. -
schemaBagian ini mencantumkan nama kolom, tipe data, dan dimensi untuk setiap kolom. -
metaBagian ini menunjukkan ukuran file total dan jumlah baris untuk semua file.
Contoh berikut membongkar tabel VENUE menggunakan opsi MANIFEST VERBOSE.
unload ('select * from venue') to 's3://amzn-s3-demo-bucket/unload_venue_folder/' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole' manifest verbose;
Berikut ini menunjukkan isi file manifes.
{ "entries": [ {"url":"s3://amzn-s3-demo-bucket/venue_pipe_0000_part_00", "meta": { "content_length": 32295, "record_count": 10 }}, {"url":"s3://amzn-s3-demo-bucket/venue_pipe_0001_part_00", "meta": { "content_length": 32771, "record_count": 20 }}, {"url":"s3://amzn-s3-demo-bucket/venue_pipe_0002_part_00", "meta": { "content_length": 32302, "record_count": 10 }}, {"url":"s3://amzn-s3-demo-bucket/venue_pipe_0003_part_00", "meta": { "content_length": 31810, "record_count": 15 }} ], "schema": { "elements": [ {"name": "venueid", "type": { "base": "integer" }}, {"name": "venuename", "type": { "base": "character varying", 25 }}, {"name": "venuecity", "type": { "base": "character varying", 25 }}, {"name": "venuestate", "type": { "base": "character varying", 25 }}, {"name": "venueseats", "type": { "base": "character varying", 25 }} ] }, "meta": { "content_length": 129178, "record_count": 55 }, "author": { "name": "Amazon Redshift", "version": "1.0.0" } }
Bongkar VENUE dengan header
Contoh berikut membongkar VENUE dengan baris header.
unload ('select * from venue where venueseats > 75000') to 's3://amzn-s3-demo-bucket/unload/' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole' header parallel off;
Berikut ini menunjukkan isi file output dengan baris header.
venueid|venuename|venuecity|venuestate|venueseats 6|New York Giants Stadium|East Rutherford|NJ|80242 78|INVESCO Field|Denver|CO|76125 83|FedExField|Landover|MD|91704 79|Arrowhead Stadium|Kansas City|MO|79451
Bongkar VENUE ke file yang lebih kecil
Secara default, ukuran file maksimum adalah 6,2 GB. Jika data bongkar lebih besar dari 6,2 GB, UNLOAD membuat file baru untuk setiap segmen data 6,2 GB. Untuk membuat file yang lebih kecil, sertakan parameter MAXFILESIZE. Dengan asumsi ukuran data dalam contoh sebelumnya adalah 20 GB, perintah UNLOAD berikut membuat 20 file, masing-masing berukuran 1 GB.
unload ('select * from venue') to 's3://amzn-s3-demo-bucket/unload/' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole' maxfilesize 1 gb;
Bongkar VENUE secara serial
Untuk membongkar secara serial, tentukan PARALLEL OFF. UNLOAD kemudian menulis satu file pada satu waktu, hingga maksimum 6,2 GB per file.
Contoh berikut membongkar tabel VENUE dan menulis data secara serial ke. s3://amzn-s3-demo-bucket/unload/
unload ('select * from venue') to 's3://amzn-s3-demo-bucket/unload/venue_serial_' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole' parallel off;
Hasilnya adalah satu file bernama venue_serial_000.
Jika data bongkar lebih besar dari 6,2 GB, UNLOAD membuat file baru untuk setiap segmen data 6,2 GB. Contoh berikut membongkar tabel LINEORDER dan menulis data secara serial ke. s3://amzn-s3-demo-bucket/unload/
unload ('select * from lineorder') to 's3://amzn-s3-demo-bucket/unload/lineorder_serial_' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole' parallel off gzip;
Hasilnya adalah rangkaian file berikut.
lineorder_serial_0000.gz lineorder_serial_0001.gz lineorder_serial_0002.gz lineorder_serial_0003.gz
Untuk membedakan file output dengan lebih baik, Anda dapat menyertakan awalan di lokasi. Contoh berikut membongkar tabel VENUE dan menulis data ke: s3://amzn-s3-demo-bucket/venue_pipe_
unload ('select * from venue') to 's3://amzn-s3-demo-bucket/unload/venue_pipe_' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole';
Hasilnya adalah keempat file ini di unload folder, sekali lagi dengan asumsi empat irisan.
venue_pipe_0000_part_00 venue_pipe_0001_part_00 venue_pipe_0002_part_00 venue_pipe_0003_part_00
Muat VENUE dari membongkar file
Untuk memuat tabel dari sekumpulan file unload, cukup balikkan proses dengan menggunakan perintah COPY. Contoh berikut membuat tabel baru, LOADVENUE, dan memuat tabel dari file data yang dibuat dalam contoh sebelumnya.
create table loadvenue (like venue); copy loadvenue from 's3://amzn-s3-demo-bucket/venue_pipe_' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole';
Jika Anda menggunakan opsi MANIFEST untuk membuat file manifes dengan file bongkar muat Anda, Anda dapat memuat data menggunakan file manifes yang sama. Anda melakukannya dengan perintah COPY dengan opsi MANIFEST. Contoh berikut memuat data menggunakan file manifes.
copy loadvenue from 's3://amzn-s3-demo-bucket/venue_pipe_manifest' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole' manifest;
Bongkar VENUE ke file terenkripsi
Contoh berikut membongkar tabel VENUE ke satu set file terenkripsi menggunakan AWS KMS kunci. Jika Anda menentukan file manifes dengan opsi ENCRYPTED, file manifes juga dienkripsi. Untuk informasi selengkapnya, lihat Membongkar file data terenkripsi.
unload ('select * from venue') to 's3://amzn-s3-demo-bucket/venue_encrypt_kms' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole' kms_key_id '1234abcd-12ab-34cd-56ef-1234567890ab' manifest encrypted;
Contoh berikut membongkar tabel VENUE ke satu set file terenkripsi menggunakan kunci simetris root.
unload ('select * from venue') to 's3://amzn-s3-demo-bucket/venue_encrypt_cmk' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole' master_symmetric_key 'EXAMPLEMASTERKEYtkbjk/OpCwtYSx/M4/t7DMCDIK722' encrypted;
Muat VENUE dari file terenkripsi
Untuk memuat tabel dari sekumpulan file yang dibuat dengan menggunakan UNLOAD dengan opsi ENCRYPT, balikkan proses dengan menggunakan perintah COPY. Dengan perintah itu, gunakan opsi ENCRYPTED dan tentukan kunci simetris root yang sama yang digunakan untuk perintah UNLOAD. Contoh berikut memuat tabel LOADVENUE dari file data terenkripsi yang dibuat dalam contoh sebelumnya.
create table loadvenue (like venue); copy loadvenue from 's3://amzn-s3-demo-bucket/venue_encrypt_manifest' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole' master_symmetric_key 'EXAMPLEMASTERKEYtkbjk/OpCwtYSx/M4/t7DMCDIK722' manifest encrypted;
Bongkar data VENUE ke file yang dibatasi tab
unload ('select venueid, venuename, venueseats from venue') to 's3://amzn-s3-demo-bucket/venue_tab_' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole' delimiter as '\t';
File data output terlihat seperti ini:
1 Toyota Park Bridgeview IL 0 2 Columbus Crew Stadium Columbus OH 0 3 RFK Stadium Washington DC 0 4 CommunityAmerica Ballpark Kansas City KS 0 5 Gillette Stadium Foxborough MA 68756 ...
Bongkar VENUE ke file data lebar tetap
unload ('select * from venue') to 's3://amzn-s3-demo-bucket/venue_fw_' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole' fixedwidth as 'venueid:3,venuename:39,venuecity:16,venuestate:2,venueseats:6';
File data keluaran terlihat seperti berikut ini.
1 Toyota Park Bridgeview IL0 2 Columbus Crew Stadium Columbus OH0 3 RFK Stadium Washington DC0 4 CommunityAmerica BallparkKansas City KS0 5 Gillette Stadium Foxborough MA68756 ...
Bongkar VENUE ke satu set file yang dibatasi tab GZIP-compressed
unload ('select * from venue') to 's3://amzn-s3-demo-bucket/venue_tab_' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole' delimiter as '\t' gzip;
Bongkar VENUE ke file GZIP-compressed teks
unload ('select * from venue') to 's3://amzn-s3-demo-bucket/venue_tab_' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole' extension 'txt.gz' gzip;
Bongkar data yang berisi pembatas
Contoh ini menggunakan opsi ADDQUOTES untuk membongkar data yang dipisahkan koma di mana beberapa bidang data aktual berisi koma.
Pertama, buat tabel yang berisi tanda kutip.
create table location (id int, location char(64)); insert into location values (1,'Phoenix, AZ'),(2,'San Diego, CA'),(3,'Chicago, IL');
Kemudian, bongkar data menggunakan opsi ADDQUOTES.
unload ('select id, location from location') to 's3://amzn-s3-demo-bucket/location_' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole' delimiter ',' addquotes;
File data yang dibongkar terlihat seperti ini:
1,"Phoenix, AZ" 2,"San Diego, CA" 3,"Chicago, IL" ...
Membongkar hasil kueri gabungan
Contoh berikut membongkar hasil kueri gabungan yang berisi fungsi jendela.
unload ('select venuecity, venuestate, caldate, pricepaid, sum(pricepaid) over(partition by venuecity, venuestate order by caldate rows between 3 preceding and 3 following) as winsum from sales join date on sales.dateid=date.dateid join event on event.eventid=sales.eventid join venue on event.venueid=venue.venueid order by 1,2') to 's3://amzn-s3-demo-bucket/tickit/winsum' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole';
File output terlihat seperti ini:
Atlanta|GA|2008-01-04|363.00|1362.00 Atlanta|GA|2008-01-05|233.00|2030.00 Atlanta|GA|2008-01-06|310.00|3135.00 Atlanta|GA|2008-01-08|166.00|8338.00 Atlanta|GA|2008-01-11|268.00|7630.00 ...
Bongkar menggunakan NULL AS
UNLOAD mengeluarkan nilai nol sebagai string kosong secara default. Contoh berikut menunjukkan cara menggunakan NULL AS untuk mengganti string teks dengan nol.
Untuk contoh-contoh ini, tambahkan beberapa nilai null ke tabel VENUE.
update venue set venuestate = NULL where venuecity = 'Cleveland';
Pilih dari VENUE di mana VENUESTATE adalah null untuk memverifikasi bahwa kolom berisi NULL.
select * from venue where venuestate is null;venueid | venuename | venuecity | venuestate | venueseats ---------+--------------------------+-----------+------------+------------ 22 | Quicken Loans Arena | Cleveland | | 0 101 | Progressive Field | Cleveland | | 43345 72 | Cleveland Browns Stadium | Cleveland | | 73200
Sekarang, BONGKAR tabel VENUE menggunakan opsi NULL AS untuk mengganti nilai null dengan string karakter 'fred'.
unload ('select * from venue') to 's3://amzn-s3-demo-bucket/nulls/' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole' null as 'fred';
Contoh berikut dari file unload menunjukkan bahwa nilai null diganti denganfred. Ternyata beberapa nilai untuk VENUESEATS juga nol dan diganti dengan. fred Meskipun tipe data untuk VENUESEATS adalah integer, UNLOAD mengonversi nilai menjadi teks dalam file unload, dan kemudian COPY mengubahnya kembali ke integer. Jika Anda membongkar ke file dengan lebar tetap, string NULL AS tidak boleh lebih besar dari lebar bidang.
248|Charles Playhouse|Boston|MA|0 251|Paris Hotel|Las Vegas|NV|fred 258|Tropicana Hotel|Las Vegas|NV|fred 300|Kennedy Center Opera House|Washington|DC|0 306|Lyric Opera House|Baltimore|MD|0 308|Metropolitan Opera|New York City|NY|0 5|Gillette Stadium|Foxborough|MA|5 22|Quicken Loans Arena|Cleveland|fred|0 101|Progressive Field|Cleveland|fred|43345 ...
Untuk memuat tabel dari file unload, gunakan perintah COPY dengan opsi NULL AS yang sama.
catatan
Jika Anda mencoba memuat nol ke kolom yang didefinisikan sebagai NOT NULL, perintah COPY gagal.
create table loadvenuenulls (like venue); copy loadvenuenulls from 's3://amzn-s3-demo-bucket/nulls/' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole' null as 'fred';
Untuk memverifikasi bahwa kolom berisi null, bukan hanya string kosong, pilih dari LOADVENUENULLS dan filter untuk null.
select * from loadvenuenulls where venuestate is null or venueseats is null;venueid | venuename | venuecity | venuestate | venueseats ---------+--------------------------+-----------+------------+------------ 72 | Cleveland Browns Stadium | Cleveland | | 73200 253 | Mirage Hotel | Las Vegas | NV | 255 | Venetian Hotel | Las Vegas | NV | 22 | Quicken Loans Arena | Cleveland | | 0 101 | Progressive Field | Cleveland | | 43345 251 | Paris Hotel | Las Vegas | NV | ...
Anda dapat MEMBONGKAR tabel yang berisi nol menggunakan perilaku NULL AS default dan kemudian SALIN data kembali ke tabel menggunakan perilaku NULL AS default; namun, setiap bidang non-numerik dalam tabel target berisi string kosong, bukan nol. Secara default UNLOAD mengonversi nol menjadi string kosong (spasi putih atau panjang nol). COPY mengubah string kosong menjadi NULL untuk kolom numerik, tetapi menyisipkan string kosong ke kolom non-numerik. Contoh berikut menunjukkan cara melakukan UNLOAD diikuti oleh COPY menggunakan perilaku NULL AS default.
unload ('select * from venue') to 's3://amzn-s3-demo-bucket/nulls/' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole' allowoverwrite; truncate loadvenuenulls; copy loadvenuenulls from 's3://amzn-s3-demo-bucket/nulls/' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole';
Dalam hal ini, saat Anda memfilter nol, hanya baris di mana VENUESEATS berisi nol. Di mana VENUESTATE berisi nol dalam tabel (VENUE), VENUESTATE di tabel target (LOADVENUENULLS) berisi string kosong.
select * from loadvenuenulls where venuestate is null or venueseats is null;venueid | venuename | venuecity | venuestate | venueseats ---------+--------------------------+-----------+------------+------------ 253 | Mirage Hotel | Las Vegas | NV | 255 | Venetian Hotel | Las Vegas | NV | 251 | Paris Hotel | Las Vegas | NV | ...
Untuk memuat string kosong ke kolom non-numerik sebagai NULL, sertakan opsi EMPTYASNULL atau BLANKSASNULL. Tidak apa-apa untuk menggunakan keduanya.
unload ('select * from venue') to 's3://amzn-s3-demo-bucket/nulls/' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole' allowoverwrite; truncate loadvenuenulls; copy loadvenuenulls from 's3://amzn-s3-demo-bucket/nulls/' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole' EMPTYASNULL;
Untuk memverifikasi bahwa kolom berisi NULL, bukan hanya spasi atau string kosong, pilih dari LOADVENUENULLS dan filter untuk null.
select * from loadvenuenulls where venuestate is null or venueseats is null;venueid | venuename | venuecity | venuestate | venueseats ---------+--------------------------+-----------+------------+------------ 72 | Cleveland Browns Stadium | Cleveland | | 73200 253 | Mirage Hotel | Las Vegas | NV | 255 | Venetian Hotel | Las Vegas | NV | 22 | Quicken Loans Arena | Cleveland | | 0 101 | Progressive Field | Cleveland | | 43345 251 | Paris Hotel | Las Vegas | NV | ...
Bongkar menggunakan parameter ALLOWOVERWRITE
Secara default, UNLOAD tidak mengganti file yang ada di bucket tujuan. Misalnya, jika Anda menjalankan pernyataan UNLOAD yang sama dua kali tanpa memodifikasi file di bucket tujuan, UNLOAD kedua gagal. Untuk mengganti file yang ada, termasuk file manifes, tentukan opsi ALLOWOVERWRITE.
unload ('select * from venue') to 's3://amzn-s3-demo-bucket/venue_pipe_' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole' manifest allowoverwrite;
Bongkar tabel EVENT menggunakan parameter PARALLEL dan MANIFEST
Anda dapat MEMBONGKAR tabel secara paralel dan menghasilkan file manifes. File data Amazon S3 semuanya dibuat pada tingkat yang sama dan nama diberi akhiran dengan pola. 0000_part_00 File manifes berada pada tingkat folder yang sama dengan file data dan diberi akhiran dengan teks. manifest SQL berikut membongkar tabel EVENT dan membuat file dengan nama dasar parallel
unload ('select * from mytickit1.event') to 's3://amzn-s3-demo-bucket/parallel' iam_role 'arn:aws:iam::123456789012:role/MyRedshiftRole' parallel on manifest;
Daftar file Amazon S3 mirip dengan yang berikut ini.
Name Last modified Size
parallel0000_part_00 - August 2, 2023, 14:54:39 (UTC-07:00) 52.1 KB
parallel0001_part_00 - August 2, 2023, 14:54:39 (UTC-07:00) 53.4 KB
parallel0002_part_00 - August 2, 2023, 14:54:39 (UTC-07:00) 52.1 KB
parallel0003_part_00 - August 2, 2023, 14:54:39 (UTC-07:00) 51.1 KB
parallel0004_part_00 - August 2, 2023, 14:54:39 (UTC-07:00) 54.6 KB
parallel0005_part_00 - August 2, 2023, 14:54:39 (UTC-07:00) 53.4 KB
parallel0006_part_00 - August 2, 2023, 14:54:39 (UTC-07:00) 54.1 KB
parallel0007_part_00 - August 2, 2023, 14:54:39 (UTC-07:00) 55.9 KB
parallelmanifest - August 2, 2023, 14:54:39 (UTC-07:00) 886.0 B
Kon parallelmanifest ten file mirip dengan berikut ini.
{
"entries": [
{"url":"s3://amzn-s3-demo-bucket/parallel0000_part_00", "meta": { "content_length": 53316 }},
{"url":"s3://amzn-s3-demo-bucket/parallel0001_part_00", "meta": { "content_length": 54704 }},
{"url":"s3://amzn-s3-demo-bucket/parallel0002_part_00", "meta": { "content_length": 53326 }},
{"url":"s3://amzn-s3-demo-bucket/parallel0003_part_00", "meta": { "content_length": 52356 }},
{"url":"s3://amzn-s3-demo-bucket/parallel0004_part_00", "meta": { "content_length": 55933 }},
{"url":"s3://amzn-s3-demo-bucket/parallel0005_part_00", "meta": { "content_length": 54648 }},
{"url":"s3://amzn-s3-demo-bucket/parallel0006_part_00", "meta": { "content_length": 55436 }},
{"url":"s3://amzn-s3-demo-bucket/parallel0007_part_00", "meta": { "content_length": 57272 }}
]
}
Bongkar tabel EVENT menggunakan parameter PARALLEL OFF dan MANIFEST
Anda dapat MEMBONGKAR tabel secara serial (PARALLEL OFF) dan menghasilkan file manifes. File data Amazon S3 semuanya dibuat pada tingkat yang sama dan nama diberi akhiran dengan pola. 0000 File manifes berada pada tingkat folder yang sama dengan file data dan diberi akhiran dengan teks. manifest
unload ('select * from mytickit1.event') to 's3://amzn-s3-demo-bucket/serial' iam_role 'arn:aws:iam::123456789012:role/MyRedshiftRole' parallel off manifest;
Daftar file Amazon S3 mirip dengan yang berikut ini.
Name Last modified Size
serial0000 - August 2, 2023, 15:54:39 (UTC-07:00) 426.7 KB
serialmanifest - August 2, 2023, 15:54:39 (UTC-07:00) 120.0 B
Kon serialmanifest ten file mirip dengan berikut ini.
{
"entries": [
{"url":"s3://amzn-s3-demo-bucket/serial000", "meta": { "content_length": 436991 }}
]
}
Bongkar tabel EVENT menggunakan parameter PARTITION BY dan MANIFEST
Anda dapat MEMBONGKAR tabel dengan partisi dan menghasilkan file manifes. Folder baru dibuat di Amazon S3 dengan folder partisi anak, dan file data di folder anak dengan pola nama yang mirip dengan0000_par_00. File manifes berada pada tingkat folder yang sama dengan folder anak dengan namamanifest.
unload ('select * from mytickit1.event') to 's3://amzn-s3-demo-bucket/partition' iam_role 'arn:aws:iam::123456789012:role/MyRedshiftRole' partition by (eventname) manifest;
Daftar file Amazon S3 mirip dengan yang berikut ini.
Name Type Last modified Size
partition Folder
Di partition folder tersebut adalah folder anak dengan nama partisi dan file manifes. Berikut ini adalah bagian bawah daftar folder dalam partition folder, mirip dengan berikut ini.
Name Type Last modified Size
...
eventname=Zucchero/ Folder
eventname=Zumanity/ Folder
eventname=ZZ Top/ Folder
manifest - August 2, 2023, 15:54:39 (UTC-07:00) 467.6 KB
Di eventname=Zucchero/ folder adalah file data yang mirip dengan berikut ini.
Name Last modified Size
0000_part_00 - August 2, 2023, 15:59:19 (UTC-07:00) 70.0 B
0001_part_00 - August 2, 2023, 15:59:16 (UTC-07:00) 106.0 B
0002_part_00 - August 2, 2023, 15:59:15 (UTC-07:00) 70.0 B
0004_part_00 - August 2, 2023, 15:59:17 (UTC-07:00) 141.0 B
0006_part_00 - August 2, 2023, 15:59:16 (UTC-07:00) 35.0 B
0007_part_00 - August 2, 2023, 15:59:19 (UTC-07:00) 108.0 B
Bagian bawah konten manifest file mirip dengan berikut ini.
{
"entries": [
...
{"url":"s3://amzn-s3-demo-bucket/partition/eventname=Zucchero/007_part_00", "meta": { "content_length": 108 }},
{"url":"s3://amzn-s3-demo-bucket/partition/eventname=Zumanity/007_part_00", "meta": { "content_length": 72 }}
]
}
Bongkar tabel EVENT menggunakan parameter MAXFILESIZE, ROWGROUPSIZE, dan MANIFEST
Anda dapat MEMBONGKAR tabel secara paralel dan menghasilkan file manifes. File data Amazon S3 semuanya dibuat pada tingkat yang sama dan nama diberi akhiran dengan pola. 0000_part_00 File data Parquet yang dihasilkan dibatasi hingga 256 MB dan ukuran grup baris 128 MB. File manifes berada pada tingkat folder yang sama dengan file data dan diberi akhiran dengan. manifest
unload ('select * from mytickit1.event') to 's3://amzn-s3-demo-bucket/eventsize' iam_role 'arn:aws:iam::123456789012:role/MyRedshiftRole' maxfilesize 256 MB rowgroupsize 128 MB parallel on parquet manifest;
Daftar file Amazon S3 mirip dengan yang berikut ini.
Name Type Last modified Size
eventsize0000_part_00.parquet parquet August 2, 2023, 17:35:21 (UTC-07:00) 24.5 KB
eventsize0001_part_00.parquet parquet August 2, 2023, 17:35:21 (UTC-07:00) 24.8 KB
eventsize0002_part_00.parquet parquet August 2, 2023, 17:35:21 (UTC-07:00) 24.4 KB
eventsize0003_part_00.parquet parquet August 2, 2023, 17:35:21 (UTC-07:00) 24.0 KB
eventsize0004_part_00.parquet parquet August 2, 2023, 17:35:21 (UTC-07:00) 25.3 KB
eventsize0005_part_00.parquet parquet August 2, 2023, 17:35:21 (UTC-07:00) 24.8 KB
eventsize0006_part_00.parquet parquet August 2, 2023, 17:35:21 (UTC-07:00) 25.0 KB
eventsize0007_part_00.parquet parquet August 2, 2023, 17:35:21 (UTC-07:00) 25.6 KB
eventsizemanifest - August 2, 2023, 17:35:21 (UTC-07:00) 958.0 B
Kon eventsizemanifest ten file mirip dengan berikut ini.
{
"entries": [
{"url":"s3://amzn-s3-demo-bucket/eventsize0000_part_00.parquet", "meta": { "content_length": 25130 }},
{"url":"s3://amzn-s3-demo-bucket/eventsize0001_part_00.parquet", "meta": { "content_length": 25428 }},
{"url":"s3://amzn-s3-demo-bucket/eventsize0002_part_00.parquet", "meta": { "content_length": 25025 }},
{"url":"s3://amzn-s3-demo-bucket/eventsize0003_part_00.parquet", "meta": { "content_length": 24554 }},
{"url":"s3://amzn-s3-demo-bucket/eventsize0004_part_00.parquet", "meta": { "content_length": 25918 }},
{"url":"s3://amzn-s3-demo-bucket/eventsize0005_part_00.parquet", "meta": { "content_length": 25362 }},
{"url":"s3://amzn-s3-demo-bucket/eventsize0006_part_00.parquet", "meta": { "content_length": 25647 }},
{"url":"s3://amzn-s3-demo-bucket/eventsize0007_part_00.parquet", "meta": { "content_length": 26256 }}
]
}