

 Amazon Redshift tidak akan lagi mendukung pembuatan Python UDFs baru mulai Patch 198. Python yang ada UDFs akan terus berfungsi hingga 30 Juni 2026. Untuk informasi lebih lanjut, lihat [posting blog](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

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

# Contoh BONGKAR
<a name="r_UNLOAD_command_examples"></a>

Contoh-contoh ini menunjukkan berbagai parameter perintah UNLOAD. Data sampel TICKIT digunakan dalam banyak contoh. Untuk informasi selengkapnya, lihat [Database sampel](c_sampledb.md).

**catatan**  
Contoh-contoh ini berisi jeda baris untuk keterbacaan. Jangan sertakan jeda baris atau spasi dalam string *credentials-args* Anda.

## Bongkar VENUE ke file yang dibatasi pipa (pembatas default)
<a name="unload-examples-venue"></a>

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 Parket yang dipartisi
<a name="unload-examples-partitioned-parquet"></a>

Contoh berikut membongkar tabel LINEITEM dalam format Parket, 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 Parket 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 Parket. Jika tidak, data `l_shipdate` kolom tidak ada di file Parket.

## Bongkar tabel VENUE ke file JSON
<a name="unload-examples-json"></a>

Contoh berikut membongkar tabel VENUE dan menulis data dalam format JSON 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'
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 bongkar ke JSON, format file mirip dengan yang 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
<a name="unload-examples-csv"></a>

Contoh berikut membongkar tabel VENUE dan menulis data dalam format CSV 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'
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 bongkar terlihat mirip dengan yang 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
<a name="unload-examples-csv-delimiter"></a>

Contoh berikut membongkar tabel VENUE dan menulis data dalam format CSV menggunakan karakter pipa (\$1) sebagai pembatas. File yang dibongkar ditulis ke`s3://amzn-s3-demo-bucket/unload/`. Tabel VENUE dalam contoh ini berisi karakter pipa dalam nilai baris pertama (`Pinewood Race|track`). Hal ini dilakukan untuk menunjukkan bahwa nilai dalam hasil terlampir dalam tanda kutip ganda. Tanda kutip ganda diloloskan oleh tanda kutip ganda, dan seluruh bidang diapit 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 bongkar terlihat mirip dengan yang 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
<a name="unload-examples-manifest"></a>

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\$1pipe\$1: 

**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 dari 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
<a name="unload-examples-manifest-verbose"></a>

Saat Anda menentukan opsi MANIFEST VERBOSE, file manifes menyertakan bagian berikut: 
+ `entries`Bagian ini mencantumkan jalur Amazon S3, ukuran file, dan jumlah baris untuk setiap file. 
+ `schema`Bagian ini mencantumkan nama kolom, tipe data, dan dimensi untuk setiap kolom. 
+ `meta`Bagian 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 dari 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
<a name="unload-examples-header"></a>

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 dari 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
<a name="unload-examples-maxfilesize"></a>

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
<a name="unload-examples-serial"></a>

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\$1serial\$1000. 

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 serangkaian 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 file bongkar
<a name="unload-examples-load"></a>

Untuk memuat tabel dari satu set file bongkar muat, 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 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
<a name="unload-examples-unload-encrypted"></a>

Contoh berikut membongkar tabel VENUE ke satu set file terenkripsi menggunakan kunci. AWS KMS Jika Anda menentukan file manifes dengan opsi ENCRYPTED, file manifes juga dienkripsi. Untuk informasi selengkapnya, lihat [Membongkar file data terenkripsi](t_unloading_encrypted_files.md).

```
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
<a name="unload-examples-load-encrypted"></a>

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
<a name="unload-examples-venue-tab"></a>

```
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 dengan lebar tetap
<a name="unload-venue-fixed-width"></a>

```
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 output 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 terkompresi GZIP yang dibatasi tab
<a name="unload-examples-venue-gzip"></a>

```
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 teks terkompresi GZIP
<a name="unload-examples-venue-extension-gzip"></a>

```
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
<a name="unload-examples-delimiter"></a>

Contoh ini menggunakan opsi ADDQUOTES untuk membongkar data yang dibatasi 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"
...
```

## Bongkar hasil kueri bergabung
<a name="unload-examples-join"></a>

Contoh berikut membongkar hasil query 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
<a name="unload-examples-null-as"></a>

UNLOAD mengeluarkan nilai null sebagai string kosong secara default. Contoh berikut menunjukkan bagaimana menggunakan NULL AS untuk menggantikan string teks untuk nulls.

Untuk contoh ini, kita menambahkan beberapa nilai null ke tabel VENUE.

```
update venue set venuestate = NULL
where venuecity = 'Cleveland';
```

Pilih dari VENUE di mana VENUESTATE adalah nol 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';
```

Sampel berikut dari file bongkar menunjukkan bahwa nilai null diganti dengan. `fred` Ternyata beberapa nilai untuk VENUESEATS juga nol dan diganti dengan. `fred` Meskipun tipe data untuk VENUESEATS adalah bilangan bulat, UNLOAD mengonversi nilai menjadi teks dalam file bongkar muat, dan kemudian COPY mengonversinya kembali ke bilangan bulat. 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 bongkar muat, gunakan perintah COPY dengan opsi NULL AS yang sama. 

**catatan**  
Jika Anda mencoba memuat null ke dalam 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 null menggunakan perilaku NULL AS default dan kemudian MENYALIN 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 mengkonversi string kosong ke 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, ketika Anda memfilter untuk nol, hanya baris di mana VENUESEATS berisi nol. Dimana VENUESTATE berisi nol dalam tabel (VENUE), VENUESTATE dalam 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 EMTTYASNULL 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 putih 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
<a name="unload-examples-allowoverwrite"></a>

Secara default, UNLOAD tidak menimpa file yang ada di bucket tujuan. Misalnya, jika Anda menjalankan pernyataan UNLOAD yang sama dua kali tanpa mengubah file di bucket tujuan, UNLOAD kedua gagal. Untuk menimpa 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
<a name="unload-examples-manifest-parallel"></a>

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 berakhiran 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
```

Konten `parallelmanifest` file mirip dengan yang 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
<a name="unload-examples-manifest-serial"></a>

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 berakhiran 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
```

Konten `serialmanifest` file mirip dengan yang berikut ini.

```
{
  "entries": [
    {"url":"s3://amzn-s3-demo-bucket/serial000", "meta": { "content_length": 436991 }}
  ]
}
```

## Bongkar tabel EVENT menggunakan parameter PARTITION BY dan MANIFEST
<a name="unload-examples-manifest-partition"></a>

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 dengan. `0000_par_00` File manifes berada pada tingkat folder yang sama dengan folder anak dengan nama`manifest`.

```
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
```

Dalam folder adalah `partition` 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
```

Dalam `eventname=Zucchero/` folder adalah file data yang mirip dengan yang 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 yang 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
<a name="unload-examples-manifest-maxsize"></a>

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 Parket yang dihasilkan dibatasi hingga 256 MB dan ukuran grup baris 128 MB. File manifes berada pada tingkat folder yang sama dengan file data dan berakhiran dengan file. `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
```

Konten `eventsizemanifest` file mirip dengan yang 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 }}
  ]
}
```