

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

# Mengimpor data dari Amazon S3 ke
<a name="USER_PostgreSQL.S3Import.FileFormats"></a>

Anda mengimpor data dari bucket Amazon S3 dengan menggunakan fungsi `table_import_from_s3` aws\$1s3. Untuk informasi referensi, lihat [aws\$1s3.table\$1import\$1from\$1s3](USER_PostgreSQL.S3Import.Reference.md#aws_s3.table_import_from_s3). 

**catatan**  
Contoh berikut menggunakan metode peran IAM untuk mengizinkan akses ke bucket Amazon S3. Dengan demikian, panggilan fungsi `aws_s3.table_import_from_s3` tidak termasuk parameter kredensial.

Berikut ini menunjukkan contoh khas.

```
postgres=> SELECT aws_s3.table_import_from_s3(
   't1',
   '', 
   '(format csv)',
   :'s3_uri'
);
```

Parameternya sebagai berikut:
+ `t1` – Nama untuk tabel dalam instans DB PostgreSQL tempat tujuan penyalinan data. 
+ `''` – Daftar opsional kolom dalam tabel basis data. Anda dapat menggunakan parameter ini untuk menunjukkan kolom data S3 mana yang masuk ke kolom tabel mana. Jika tidak ada kolom yang ditentukan, semua kolom akan disalin ke tabel. Untuk contoh cara menggunakan daftar kolom, lihat [Mengimpor file Amazon S3 yang menggunakan pemisah kustom](#USER_PostgreSQL.S3Import.FileFormats.CustomDelimiter).
+ `(format csv)` – Argumen PostgreSQL COPY. Proses penyalinan menggunakan argumen dan format perintah [PostgreSQL COPY](https://www.postgresql.org/docs/current/sql-copy.html) untuk mengimpor data. Pilihan untuk format mencakup nilai yang dipisahkan koma (CSV) seperti yang ditunjukkan dalam contoh ini, teks, dan biner. Defaultnya adalah teks. 
+  `s3_uri` – Struktur yang berisi informasi yang mengidentifikasi file Amazon S3. Untuk contoh penggunaan fungsi [aws\$1commons.create\$1s3\$1uri](USER_PostgreSQL.S3Import.Reference.md#USER_PostgreSQL.S3Import.create_s3_uri) untuk membuat struktur `s3_uri`, lihat [Ikhtisar impor data dari data Amazon S3](USER_PostgreSQL.S3Import.Overview.md).

Untuk informasi selengkapnya tentang fungsi ini, lihat [aws\$1s3.table\$1import\$1from\$1s3](USER_PostgreSQL.S3Import.Reference.md#aws_s3.table_import_from_s3).

Fungsi `aws_s3.table_import_from_s3` menampilkan teks. Untuk menentukan jenis file lain yang akan diimpor dari bucket Amazon S3, lihat salah satu contoh berikut. 

**catatan**  
Mengimpor file 0 byte akan menyebabkan kesalahan.

**Topics**
+ [Mengimpor file Amazon S3 yang menggunakan pemisah kustom](#USER_PostgreSQL.S3Import.FileFormats.CustomDelimiter)
+ [Mengimpor file terkompresi (gzip) Amazon S3](#USER_PostgreSQL.S3Import.FileFormats.gzip)
+ [Mengimpor file Amazon S3 yang dienkode](#USER_PostgreSQL.S3Import.FileFormats.Encoded)

## Mengimpor file Amazon S3 yang menggunakan pemisah kustom
<a name="USER_PostgreSQL.S3Import.FileFormats.CustomDelimiter"></a>

Contoh berikut menunjukkan cara mengimpor file yang menggunakan pemisah kustom. Ini juga menunjukkan cara mengontrol lokasi penempatan data dalam tabel basis data menggunakan parameter `column_list` fungsi [aws\$1s3.table\$1import\$1from\$1s3](USER_PostgreSQL.S3Import.Reference.md#aws_s3.table_import_from_s3). 

Untuk contoh ini, asumsikan bahwa informasi berikut ini diatur ke dalam kolom yang dipisahkan tanda pipa di file Amazon S3.

```
1|foo1|bar1|elephant1
2|foo2|bar2|elephant2
3|foo3|bar3|elephant3
4|foo4|bar4|elephant4
...
```

**Untuk mengimpor file yang menggunakan pemisah kustom**

1. Buat tabel dalam basis data untuk data yang diimpor.

   ```
   postgres=> CREATE TABLE test (a text, b text, c text, d text, e text);
   ```

1. Gunakan bentuk berikut fungsi [aws\$1s3.table\$1import\$1from\$1s3](USER_PostgreSQL.S3Import.Reference.md#aws_s3.table_import_from_s3) berikut untuk mengimpor data dari file Amazon S3. 

   Anda dapat memasukkan panggilan fungsi [aws\$1commons.create\$1s3\$1uri](USER_PostgreSQL.S3Import.Reference.md#USER_PostgreSQL.S3Import.create_s3_uri) sebaris dalam panggilan fungsi `aws_s3.table_import_from_s3` untuk menentukan file. 

   ```
   postgres=> SELECT aws_s3.table_import_from_s3(
      'test',
      'a,b,d,e',
      'DELIMITER ''|''', 
      aws_commons.create_s3_uri('amzn-s3-demo-bucket', 'pipeDelimitedSampleFile', 'us-east-2')
   );
   ```

Data tersebut ini berada dalam tabel di kolom berikut.

```
postgres=> SELECT * FROM test;
a | b | c | d | e 
---+------+---+---+------+-----------
1 | foo1 | | bar1 | elephant1
2 | foo2 | | bar2 | elephant2
3 | foo3 | | bar3 | elephant3
4 | foo4 | | bar4 | elephant4
```

## Mengimpor file terkompresi (gzip) Amazon S3
<a name="USER_PostgreSQL.S3Import.FileFormats.gzip"></a>

Contoh berikut menunjukkan cara mengimpor file dari Amazon S3 yang dikompresi menggunakan gzip. File yang Anda impor harus memiliki metadata Amazon S3 berikut:
+ Kunci: `Content-Encoding`
+ Nilai: `gzip`

Jika Anda mengunggah file menggunakan Konsol Manajemen AWS, metadata biasanya diterapkan oleh sistem. Untuk informasi tentang mengunggah file ke Amazon S3 menggunakan Konsol Manajemen AWS, API, AWS CLI atau API, [lihat Mengunggah](https://docs.aws.amazon.com/AmazonS3/latest/userguide/upload-objects.html) objek di Panduan Pengguna Layanan *Penyimpanan Sederhana Amazon*. 

Untuk informasi selengkapnya tentang metadata Amazon S3 dan detail tentang metadata yang disediakan sistem, lihat [Mengedit metadata objek di konsol Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/add-object-metadata.html) di *Panduan Pengguna Amazon Simple Storage Service*.

Impor file gzip ke dalam instans DB RDS for PostgreSQL seperti yang ditunjukkan berikut ini.

```
postgres=> CREATE TABLE test_gzip(id int, a text, b text, c text, d text);
postgres=> SELECT aws_s3.table_import_from_s3(
 'test_gzip', '', '(format csv)',
 'amzn-s3-demo-bucket', 'test-data.gz', 'us-east-2'
);
```

## Mengimpor file Amazon S3 yang dienkode
<a name="USER_PostgreSQL.S3Import.FileFormats.Encoded"></a>

Contoh berikut menunjukkan cara mengimpor file dari Amazon S3 yang memiliki pengodean Windows-1252.

```
postgres=> SELECT aws_s3.table_import_from_s3(
 'test_table', '', 'encoding ''WIN1252''',
 aws_commons.create_s3_uri('amzn-s3-demo-bucket', 'SampleFile', 'us-east-2')
);
```