

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

# Menyimpan data dari klaster DB Amazon Aurora MySQL ke dalam file teks di bucket Amazon S3
<a name="AuroraMySQL.Integrating.SaveIntoS3"></a><a name="save_into_s3"></a><a name="select_into_outfile"></a>

Anda dapat menggunakan `SELECT INTO OUTFILE S3` pernyataan untuk menanyakan data dari kluster DB MySQL Amazon Aurora dan menyimpannya ke dalam file teks yang disimpan dalam bucket Amazon S3. Di Aurora MySQL, file pertama kali disimpan di disk lokal, dan kemudian diekspor ke S3. Setelah ekspor selesai, file lokal dihapus.

Anda dapat mengenkripsi bucket Amazon S3 menggunakan kunci terkelola Amazon S3 (SSE-S3) atau (SSE-KMS: AWS KMS key atau kunci yang dikelola pelanggan). Kunci yang dikelola AWS 

`LOAD DATA FROM S3`Pernyataan tersebut dapat menggunakan file yang dibuat oleh `SELECT INTO OUTFILE S3` pernyataan untuk memuat data ke dalam cluster Aurora DB. Untuk informasi selengkapnya, lihat [Memuat data ke klaster DB Amazon Aurora MySQL dari file teks di bucket Amazon S3](AuroraMySQL.Integrating.LoadFromS3.md).

**catatan**  
Fitur ini tidak didukung untuk klaster DB Aurora Serverless v1. Hal ini didukung untuk klaster DB Aurora Serverless v2.  
Anda juga dapat menyimpan data cluster DB dan data snapshot cluster DB ke Amazon S3 menggunakan Konsol Manajemen AWS AWS CLI,, atau Amazon RDS API. Untuk informasi selengkapnya, lihat [Mengekspor data klaster DB ke Amazon S3](export-cluster-data.md) dan [Mengekspor data snapshot klaster DB ke Amazon S3](aurora-export-snapshot.md).

**Contents**
+ [Memberi Aurora MySQL akses ke Amazon S3](#AuroraMySQL.Integrating.SaveIntoS3.Authorize)
+ [Memberikan hak akses untuk menyimpan data di Aurora MySQL](#AuroraMySQL.Integrating.SaveIntoS3.Grant)
+ [Menentukan jalur ke bucket Amazon S3](#AuroraMySQL.Integrating.SaveIntoS3.URI)
+ [Membuat manifes untuk menampilkan daftar file data](#AuroraMySQL.Integrating.SaveIntoS3.Manifest)
+ [SELECT INTO OUTFILE S3](#AuroraMySQL.Integrating.SaveIntoS3.Statement)
  + [Sintaksis](#AuroraMySQL.Integrating.SaveIntoS3.Statement.Syntax)
  + [Parameter](#AuroraMySQL.Integrating.SaveIntoS3.Statement.Parameters)
  + [Pertimbangan](#AuroraMySQL.Integrating.SaveIntoS3.Considerations)
  + [Contoh](#AuroraMySQL.Integrating.SaveIntoS3.Examples)

## Memberi Aurora MySQL akses ke Amazon S3
<a name="AuroraMySQL.Integrating.SaveIntoS3.Authorize"></a>

Sebelum Anda dapat menyimpan data ke bucket Amazon S3, Anda harus terlebih dahulu memberi klaster DB Aurora MySQL Anda izin untuk mengakses Amazon S3.

**Untuk memberi Aurora MySQL akses ke Amazon S3**

1. Buat kebijakan AWS Identity and Access Management (IAM) yang menyediakan izin bucket dan objek yang memungkinkan klaster DB MySQL Aurora Anda mengakses Amazon S3. Untuk petunjuk, lihat [Membuat kebijakan IAM untuk mengakses sumber daya Amazon S3](AuroraMySQL.Integrating.Authorizing.IAM.S3CreatePolicy.md).
**catatan**  
Di Aurora MySQL versi 3.05 dan lebih tinggi, Anda dapat mengenkripsi objek menggunakan kunci yang dikelola pelanggan. AWS KMS Untuk melakukannya, sertakan izin `kms:GenerateDataKey` dalam kebijakan IAM Anda. Untuk informasi selengkapnya, lihat [Membuat kebijakan IAM untuk mengakses sumber daya AWS KMS](AuroraMySQL.Integrating.Authorizing.IAM.KMSCreatePolicy.md).  
Anda tidak memerlukan izin ini untuk mengenkripsi objek menggunakan Kunci yang dikelola AWS atau kunci terkelola Amazon S3 (SSE-S3).

1. Buat peran IAM, lalu lampirkan kebijakan IAM yang Anda buat di [Membuat kebijakan IAM untuk mengakses sumber daya Amazon S3](AuroraMySQL.Integrating.Authorizing.IAM.S3CreatePolicy.md) ke peran IAM baru. Untuk petunjuk, lihat [Membuat peran IAM untuk memungkinkan Amazon Aurora mengakses layanan AWS](AuroraMySQL.Integrating.Authorizing.IAM.CreateRole.md).

1. Untuk Aurora MySQL versi 2, atur parameter klaster DB `aurora_select_into_s3_role` atau `aws_default_s3_role` ke Amazon Resource Name (ARN) milik peran IAM yang baru. Jika peran IAM tidak ditentukan untuk `aurora_select_into_s3_role`, Aurora menggunakan peran IAM yang ditentukan dalam `aws_default_s3_role`.

   Untuk Aurora MySQL versi 3, gunakan `aws_default_s3_role`.

   Jika klaster adalah bagian dari basis data global Aurora, atur parameter ini untuk setiap klaster Aurora dalam basis data global.

   Untuk informasi selengkapnya tentang parameter klaster DB, lihat [Parameter klaster DB dan instans DB Amazon Aurora](USER_WorkingWithDBClusterParamGroups.md#Aurora.Managing.ParameterGroups).

1. Untuk mengizinkan pengguna basis data dalam klaster DB Aurora MySQL untuk mengakses Amazon S3, kaitkan peran yang Anda buat di [Membuat peran IAM untuk memungkinkan Amazon Aurora mengakses layanan AWS](AuroraMySQL.Integrating.Authorizing.IAM.CreateRole.md) dengan klaster DB.

   Untuk basis data global Aurora, kaitkan peran dengan setiap klaster Aurora di basis data global.

   Untuk informasi tentang mengaitkan peran IAM dengan klaster DB, lihat [Mengaitkan peran IAM dengan klaster DB Amazon Aurora MySQL](AuroraMySQL.Integrating.Authorizing.IAM.AddRoleToDBCluster.md).

1. Konfigurasikan klaster DB Aurora MySQL Anda untuk memungkinkan koneksi keluar ke Amazon S3. Untuk petunjuk, lihat [Mengaktifkan komunikasi jaringan dari Amazon Aurora ke layanan lain AWS](AuroraMySQL.Integrating.Authorizing.Network.md). 

    Untuk basis data global Aurora, aktifkan koneksi keluar untuk setiap klaster Aurora di basis data global. 

## Memberikan hak akses untuk menyimpan data di Aurora MySQL
<a name="AuroraMySQL.Integrating.SaveIntoS3.Grant"></a>

Pengguna basis data yang mengeluarkan pernyataan `SELECT INTO OUTFILE S3` harus memiliki peran atau hak akses tertentu. Di Aurora MySQL versi 3, Anda memberikan peran `AWS_SELECT_S3_ACCESS`. Di Aurora MySQL versi 2, Anda memberikan hak akses `SELECT INTO S3`. Pengguna administratif untuk klaster DB akan diberi peran atau hak akses yang sesuai secara default. Anda dapat memberikan hak akses kepada pengguna lain dengan menggunakan salah satu pernyataan berikut.

 Gunakan pernyataan berikut untuk Aurora MySQL versi 3: 

```
GRANT AWS_SELECT_S3_ACCESS TO 'user'@'domain-or-ip-address'
```

**Tip**  
Saat Anda menggunakan teknik peran di Aurora MySQL versi 3, Anda juga dapat mengaktifkan peran dengan menggunakan pernyataan `SET ROLE role_name` atau `SET ROLE ALL`. Jika Anda tidak memahami sistem peran MySQL 8.0, Anda dapat mempelajari selengkapnya dalam [Model hak akses berbasis peran](AuroraMySQL.Compare-80-v3.md#AuroraMySQL.privilege-model). Untuk detail selengkapnya, lihat [Menggunakan peran](https://dev.mysql.com/doc/refman/8.0/en/roles.html) dalam Manual *Referensi MySQL*.  
Hal ini hanya berlaku untuk sesi aktif saat ini. Ketika Anda terhubung kembali, Anda harus menjalankan `SET ROLE` pernyataan lagi untuk memberikan hak istimewa. Untuk informasi selengkapnya, lihat [SET ROLE statement](https://dev.mysql.com/doc/refman/8.0/en/set-role.html) dalam *Panduan Referensi MySQL*.  
Anda dapat menggunakan parameter klaster DB `activate_all_roles_on_login` untuk mengaktifkan semua peran secara otomatis saat pengguna terhubung ke instans DB. Ketika parameter ini disetel, Anda biasanya tidak perlu memanggil `SET ROLE` pernyataan secara eksplisit untuk mengaktifkan peran. Untuk informasi selengkapnya, lihat [activate\$1all\$1roles\$1on\$1login](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_activate_all_roles_on_login) dalam *Panduan Referensi MySQL*.  
Namun, Anda harus memanggil secara `SET ROLE ALL` eksplisit di awal prosedur tersimpan untuk mengaktifkan peran, ketika prosedur yang disimpan dipanggil oleh pengguna yang berbeda.

Gunakan pernyataan berikut untuk Aurora MySQL versi 2:

```
GRANT SELECT INTO S3 ON *.* TO 'user'@'domain-or-ip-address'
```

Peran `AWS_SELECT_S3_ACCESS` dan hak akses `SELECT INTO S3` dikhususkan untuk Amazon Aurora MySQL dan tidak tersedia untuk basis data MySQL atau instans DB RDS for MySQL. Jika Anda telah menyiapkan replikasi antara cluster DB MySQL Aurora sebagai sumber replikasi dan database MySQL sebagai klien replikasi, `GRANT` maka pernyataan untuk peran atau hak istimewa menyebabkan replikasi berhenti dengan kesalahan. Anda dapat melewati kesalahan ini dengan aman untuk melanjutkan replikasi. Untuk melewati kesalahan pada instans DB RDS for MySQL, gunakan prosedur [mysql\$1rds\$1skip\$1repl\$1error](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/mysql_rds_skip_repl_error.html). Untuk melewati kesalahan pada basis data MySQL eksternal, gunakan variabel sistem [slave\$1skip\$1errors](https://dev.mysql.com/doc/refman/5.7/en/replication-options-replica.html#sysvar_slave_skip_errors) (Aurora MySQL versi 2) atau variabel sistem [replica\$1skip\$1errors](https://dev.mysql.com/doc/refman/8.0/en/replication-options-replica.html#sysvar_replica_skip_errors) (Aurora MySQL versi 3).

## Menentukan jalur ke bucket Amazon S3
<a name="AuroraMySQL.Integrating.SaveIntoS3.URI"></a>

Sintaksis untuk menentukan jalur untuk menyimpan data dan file manifes di bucket Amazon S3 serupa dengan yang digunakan dalam pernyataan `LOAD DATA FROM S3 PREFIX`, seperti yang ditunjukkan berikut ini.

```
s3-region://bucket-name/file-prefix
```

Jalur tersebut mencakup nilai-nilai berikut:
+ `region`(opsional) - AWS Wilayah yang berisi bucket Amazon S3 untuk menyimpan data. Nilai ini bersifat opsional. Jika Anda tidak menentukan nilai `region`, Aurora akan menyimpan file Anda ke Amazon S3 di wilayah yang sama dengan klaster DB Anda.
+ `bucket-name` – Nama bucket Amazon S3 untuk menyimpan data. Awalan objek yang mengidentifikasi jalur folder virtual didukung.
+ `file-prefix` – Awalan objek Amazon S3 yang mengidentifikasi file yang akan disimpan di Amazon S3. 

File data yang dibuat oleh `SELECT INTO OUTFILE S3` pernyataan menggunakan jalur berikut, di mana *00000* mewakili 5 digit, nomor bilangan bulat berbasis nol.

```
s3-region://bucket-name/file-prefix.part_00000
```

Misalnya, pernyataan `SELECT INTO OUTFILE S3` menetapkan `s3-us-west-2://bucket/prefix` sebagai jalur untuk menyimpan file data dan membuat tiga file data. Bucket Amazon S3 yang ditentukan berisi file data berikut.
+ s3-us-west-2://bucket/prefix.part\$100000
+ s3-us-west-2://bucket/prefix.part\$100001
+ s3-us-west-2://bucket/prefix.part\$100002

## Membuat manifes untuk menampilkan daftar file data
<a name="AuroraMySQL.Integrating.SaveIntoS3.Manifest"></a>

Anda dapat menggunakan pernyataan `SELECT INTO OUTFILE S3` dengan opsi `MANIFEST ON` untuk membuat file manifes dalam format JSON yang menampilkan daftar file teks yang dibuat oleh pernyataan tersebut. Pernyataan `LOAD DATA FROM S3` dapat menggunakan file manifes untuk memuat file data kembali ke klaster DB Aurora MySQL. Untuk informasi selengkapnya tentang menggunakan manifes untuk memuat file data dari Amazon S3 ke dalam klaster DB Aurora MySQL, lihat [Menggunakan manifes untuk menentukan file data yang akan dimuat](AuroraMySQL.Integrating.LoadFromS3.md#AuroraMySQL.Integrating.LoadFromS3.Manifest). 

File data yang disertakan dalam manifes yang dibuat oleh pernyataan `SELECT INTO OUTFILE S3` akan dicantumkan dalam urutan pembuatannya oleh pernyataan tersebut. Misalnya, pernyataan `SELECT INTO OUTFILE S3` menetapkan `s3-us-west-2://bucket/prefix` sebagai jalur untuk menyimpan file data serta membuat tiga file data dan sebuah file manifes. Bucket Amazon S3 yang ditentukan berisi file manifes bernama `s3-us-west-2://bucket/prefix.manifest`, yang berisi informasi berikut.

```
{
  "entries": [
    {
      "url":"s3-us-west-2://bucket/prefix.part_00000"
    },
    {
      "url":"s3-us-west-2://bucket/prefix.part_00001"
    },
    {
      "url":"s3-us-west-2://bucket/prefix.part_00002"
    }
  ]
}
```

## SELECT INTO OUTFILE S3
<a name="AuroraMySQL.Integrating.SaveIntoS3.Statement"></a>

Anda dapat menggunakan pernyataan `SELECT INTO OUTFILE S3` untuk meminta data dari klaster DB dan menyimpannya secara langsung ke dalam file teks yang dibatasi yang tersimpan di bucket Amazon S3.

File terkompresi tidak didukung. File terenkripsi didukung mulai dari Aurora MySQL versi 2.09.0.

### Sintaksis
<a name="AuroraMySQL.Integrating.SaveIntoS3.Statement.Syntax"></a>

```
SELECT
    [ALL | DISTINCT | DISTINCTROW ]
        [HIGH_PRIORITY]
        [STRAIGHT_JOIN]
        [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
        [SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]
    select_expr [, select_expr ...]
    [FROM table_references
        [PARTITION partition_list]
    [WHERE where_condition]
    [GROUP BY {col_name | expr | position}
        [ASC | DESC], ... [WITH ROLLUP]]
    [HAVING where_condition]
    [ORDER BY {col_name | expr | position}
         [ASC | DESC], ...]
    [LIMIT {[offset,] row_count | row_count OFFSET offset}]
INTO OUTFILE S3 's3_uri'
[CHARACTER SET charset_name]
    [export_options]
    [MANIFEST {ON | OFF}]
    [OVERWRITE {ON | OFF}]
    [ENCRYPTION {ON | OFF | SSE_S3 | SSE_KMS ['cmk_id']}]

export_options:
    [FORMAT {CSV|TEXT} [HEADER]]
    [{FIELDS | COLUMNS}
        [TERMINATED BY 'string']
        [[OPTIONALLY] ENCLOSED BY 'char']
        [ESCAPED BY 'char']
    ]
    [LINES
        [STARTING BY 'string']
        [TERMINATED BY 'string']
]
```

### Parameter
<a name="AuroraMySQL.Integrating.SaveIntoS3.Statement.Parameters"></a>

Pernyataan `SELECT INTO OUTFILE S3` menggunakan parameter wajib dan opsional berikut yang khusus untuk Aurora.

**s3-uri**  
Menentukan URI untuk awalan Amazon S3 yang akan digunakan. Gunakan sintaks yang dijelaskan dalam [Menentukan jalur ke bucket Amazon S3](#AuroraMySQL.Integrating.SaveIntoS3.URI).

**FORMAT \$1CSV\$1TEXT\$1 [HEADER]**  
Secara opsional menyimpan data dalam format CSV.  
Opsi `TEXT` adalah default dan menghasilkan format ekspor MySQL yang ada.  
Opsi `CSV` menghasilkan nilai data yang dipisahkan koma. Format CSV mengikuti spesifikasi dalam [RFC-4180](https://tools.ietf.org/html/rfc4180). Jika Anda menentukan kata kunci opsional `HEADER`, file output akan berisi satu baris header. Label di baris header sesuai dengan nama kolom dari pernyataan `SELECT`. Anda dapat menggunakan file CSV untuk melatih model data untuk digunakan dengan layanan AWS ML. Untuk informasi selengkapnya tentang penggunaan data Aurora yang diekspor AWS dengan layanan ML, lihat. [Mengekspor data ke Amazon S3 SageMaker untuk pelatihan model AI (Lanjutan)](mysql-ml.md#exporting-data-to-s3-for-model-training)

**MANIFEST \$1ON \$1 OFF\$1**  
Menunjukkan apakah file manifes dibuat di Amazon S3. File manifes adalah file JavaScript Object Notation (JSON) yang dapat digunakan untuk memuat data ke dalam cluster Aurora DB dengan pernyataan tersebut. `LOAD DATA FROM S3 MANIFEST` Untuk informasi selengkapnya tentang `LOAD DATA FROM S3 MANIFEST`, lihat [Memuat data ke klaster DB Amazon Aurora MySQL dari file teks di bucket Amazon S3](AuroraMySQL.Integrating.LoadFromS3.md).  
Jika `MANIFEST ON` ditentukan dalam kueri, file manifes dibuat di Amazon S3 setelah semua file data dibuat dan diunggah. file manifes dibuat menggunakan jalur berikut:  

```
s3-region://bucket-name/file-prefix.manifest
```
Untuk informasi selengkapnya tentang format konten file manifes, lihat [Membuat manifes untuk menampilkan daftar file data](#AuroraMySQL.Integrating.SaveIntoS3.Manifest).

**OVERWRITE \$1ON \$1 OFF\$1**  
Menunjukkan apakah file yang ada di bucket Amazon S3 yang ditentukan akan ditimpa. Jika `OVERWRITE ON` ditentukan, file yang ada yang cocok dengan awalan file di URI yang ditentukan di `s3-uri` akan ditimpa. Jika tidak, kesalahan akan muncul.

**ENKRIPSI \$1AKTIF \$1 MATI \$1 SSE\$1S3 \$1 SSE\$1KMS ['']\$1 *cmk\$1id***  
Menunjukkan apakah akan menggunakan enkripsi sisi server dengan kunci terkelola Amazon S3 (SSE-S3) atau (SSE-KMS, termasuk dan kunci yang dikelola AWS KMS keys pelanggan). Kunci yang dikelola AWS Pengaturan `SSE_KMS` dan `SSE_S3` tersedia di Aurora MySQL versi 3.05 dan lebih tinggi.  
Anda juga dapat menggunakan variabel sesi `aurora_select_into_s3_encryption_default` bukan klausa `ENCRYPTION`, seperti yang ditunjukkan pada contoh berikut. Gunakan salah satu klausa SQL atau variabel sesi, tetapi tidak keduanya.  

```
set session set session aurora_select_into_s3_encryption_default={ON | OFF | SSE_S3 | SSE_KMS};
```
Pengaturan `SSE_KMS` dan `SSE_S3` tersedia di Aurora MySQL versi 3.05 dan lebih tinggi.  
Jika Anda mengatur `aurora_select_into_s3_encryption_default` ke nilai berikut:  
+ `OFF` – Kebijakan enkripsi default bucket S3 akan diikuti. Nilai default `aurora_select_into_s3_encryption_default` adalah `OFF`.
+ `ON` atau `SSE_S3` – Objek S3 dienkripsi menggunakan kunci terkelola Amazon S3 (SSE-S3).
+ `SSE_KMS`— Objek S3 dienkripsi menggunakan file. AWS KMS key

  Dalam hal ini, Anda juga menyertakan variabel sesi `aurora_s3_default_cmk_id`, misalnya:

  ```
  set session aurora_select_into_s3_encryption_default={SSE_KMS};
  set session aurora_s3_default_cmk_id={NULL | 'cmk_id'};
  ```
  + Saat `aurora_s3_default_cmk_id` bernilai `NULL`, objek S3 dienkripsi menggunakan Kunci yang dikelola AWS.
  + Jika `aurora_s3_default_cmk_id` berupa string `cmk_id` yang tidak kosong, objek S3 dienkripsi menggunakan kunci yang dikelola pelanggan.

    Nilai `cmk_id` tidak boleh berupa string kosong.
Saat Anda menggunakan perintah `SELECT INTO OUTFILE S3`, Aurora menentukan enkripsi sebagai berikut:  
+ Jika klausa `ENCRYPTION` ada dalam perintah SQL, Aurora hanya mengandalkan nilai `ENCRYPTION`, dan tidak menggunakan variabel sesi.
+ Jika klausa `ENCRYPTION` tidak ada, Aurora mengandalkan nilai variabel sesi.
*Untuk informasi selengkapnya, lihat [Menggunakan enkripsi sisi server dengan kunci terkelola Amazon S3 (SSE-S3) dan [Menggunakan enkripsi sisi server dengan AWS KMS kunci (SSE-KMS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html))](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingServerSideEncryption.html) di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon.*

Anda dapat menemukan detail selengkapnya tentang parameter lain dalam [SELECT statement](https://dev.mysql.com/doc/refman/8.0/en/select.html) dan [LOAD DATA statement](https://dev.mysql.com/doc/refman/8.0/en/load-data.html) dalam dokumentasi MySQL.

### Pertimbangan
<a name="AuroraMySQL.Integrating.SaveIntoS3.Considerations"></a>

Jumlah file yang ditulis ke bucket Amazon S3 bergantung pada jumlah data yang dipilih oleh pernyataan `SELECT INTO OUTFILE S3` dan ambang batas ukuran file untuk Aurora MySQL. Ambang batas ukuran file default adalah 6 gigabyte (GB). Jika data yang dipilih oleh pernyataan kurang dari ambang batas ukuran file, satu file akan dibuat; jika tidak, banyak file akan dibuat. Pertimbangan lain untuk file yang dibuat oleh pernyataan ini mencakup hal-hal berikut:
+ Aurora MySQL menjamin bahwa baris dalam file data tidak dipisahkan melintasi batas file. Untuk banyak file, ukuran setiap file data kecuali yang terakhir biasanya hampir sama dengan ambang batas ukuran file. Namun, terkadang jika ambang batas ukuran file tidak tercapai, akibatnya baris akan terbagi menjadi dua file data. Dalam kasus ini, Aurora MySQL membuat file data yang menjaga baris tetap utuh, tetapi mungkin lebih besar dari ambang ukuran file. 
+ Karena setiap pernyataan `SELECT` di Aurora MySQL dijalankan sebagai transaksi atomis, pernyataan `SELECT INTO OUTFILE S3` yang memilih set data besar mungkin akan berjalan selama beberapa waktu. Jika pernyataan gagal karena alasan apa pun, Anda mungkin perlu memulai kembali dan mengeluarkan pernyataan tersebut lagi. Namun, jika pernyataan gagal, file yang sudah diunggah ke Amazon S3 tetap berada di bucket Amazon S3 yang ditentukan. Anda dapat menggunakan pernyataan lain untuk mengunggah data yang tersisa daripada memulai dari awal lagi.
+ Jika jumlah data yang akan dipilih berukuran besar (lebih dari 25 GB), kami menyarankan Anda menggunakan beberapa pernyataan `SELECT INTO OUTFILE S3` untuk menyimpan data ke Amazon S3. Setiap pernyataan harus memilih bagian data yang berbeda untuk disimpan, dan juga menentukan `file_prefix` yang berbeda dalam parameter `s3-uri` untuk digunakan saat menyimpan file data. Dengan mempartisi data yang akan dipilih menggunakan beberapa pernyataan, kesalahan di satu pernyataan akan lebih mudah untuk dipulihkan. Jika terjadi kesalahan untuk satu pernyataan, hanya sebagian data yang perlu dipilih kembali dan diunggah ke Amazon S3. Penggunaan banyak pernyataan juga membantu menghindari satu transaksi yang berjalan lama, yang dapat meningkatkan performa.
+ Jika beberapa pernyataan `SELECT INTO OUTFILE S3` yang menggunakan `file_prefix` yang sama di parameter `s3-uri` dijalankan secara paralel untuk memilih data yang diunggah ke dalam Amazon S3, perilakunya tidak akan ditentukan.
+ Metadata, seperti skema tabel atau metadata file, tidak diunggah oleh Aurora MySQL ke Amazon S3.
+ Dalam beberapa kasus, Anda mungkin perlu menjalankan kembali kueri `SELECT INTO OUTFILE S3`, seperti untuk memulihkan dari kegagalan. Dalam kasus ini, Anda harus menghapus file data apa pun yang ada di bucket Amazon S3 dengan awalan file yang sama yang ditentukan di `s3-uri`, atau menyertakan `OVERWRITE ON` di kueri `SELECT INTO OUTFILE S3`.

Pernyataan `SELECT INTO OUTFILE S3` menampilkan nomor kesalahan MySQL yang biasa beserta respons berhasil atau gagal. Jika Anda tidak memiliki akses ke nomor dan respons kesalahan MySQL, cara termudah untuk menentukan apakah pernyataan tersebut telah selesai adalah dengan menentukan `MANIFEST ON` dalam pernyataan tersebut. File manifes adalah file terakhir yang ditulis oleh pernyataan tersebut. Dengan kata lain, jika Anda memiliki file manifes, berarti pernyataan tersebut telah selesai.

Saat ini, tidak ada cara untuk memantau secara langsung progres pernyataan `SELECT INTO OUTFILE S3` saat dijalankan. Namun, misalkan Anda menulis data dalam jumlah besar dari Aurora MySQL ke Amazon S3 menggunakan pernyataan ini, dan Anda mengetahui ukuran data yang dipilih oleh pernyataan tersebut. Dalam kasus ini, Anda dapat memperkirakan progresnya dengan memantau pembuatan file data di Amazon S3.

Untuk melakukannya, Anda dapat menggunakan fakta bahwa sebuah file data akan dibuat di bucket Amazon S3 yang ditentukan untuk setiap 6 GB data yang dipilih oleh pernyataan tersebut. Bagilah ukuran data yang dipilih dengan 6 GB untuk mendapatkan perkiraan jumlah file data yang akan dibuat. Anda kemudian dapat memperkirakan progres pernyataan dengan memantau jumlah file yang diunggah ke Amazon S3 saat pernyataan berjalan.

### Contoh
<a name="AuroraMySQL.Integrating.SaveIntoS3.Examples"></a>

Pernyataan berikut memilih semua data di tabel `employees` dan menyimpan data ke dalam bucket Amazon S3 yang berada di wilayah yang berbeda dari klaster DB Aurora MySQL. Pernyataan tersebut membuat file data yang setiap bidangnya diterminasi dengan karakter koma (`,`) dan setiap barisnya diterminasi dengan karakter baris baru (`\n`). Pernyataan tersebut menampilkan kesalahan jika file yang cocok dengan awalan file `sample_employee_data` ada di bucket Amazon S3 yang ditentukan.

```
SELECT * FROM employees INTO OUTFILE S3 's3-us-west-2://aurora-select-into-s3-pdx/sample_employee_data'
    FIELDS TERMINATED BY ','
    LINES TERMINATED BY '\n';
```

Pernyataan berikut memilih semua data di tabel `employees` dan menyimpan data ke dalam bucket Amazon S3 yang berada di wilayah yang sama dengan klaster DB Aurora MySQL. Pernyataan tersebut membuat file data yang setiap bidangnya diterminasi dengan karakter koma (`,`) dan setiap barisnya diterminasi dengan karakter baris baru (`\n`), serta membuat juga sebuah file manifes. Pernyataan tersebut menampilkan kesalahan jika file yang cocok dengan awalan file `sample_employee_data` ada di bucket Amazon S3 yang ditentukan.

```
SELECT * FROM employees INTO OUTFILE S3 's3://aurora-select-into-s3-pdx/sample_employee_data'
    FIELDS TERMINATED BY ','
    LINES TERMINATED BY '\n'
    MANIFEST ON;
```

Pernyataan berikut memilih semua data di tabel `employees` dan menyimpan data ke dalam bucket Amazon S3 yang berada di wilayah yang berbeda dari klaster DB Aurora. Pernyataan tersebut membuat file data yang setiap bidangnya diterminasi dengan karakter koma (`,`) dan setiap barisnya diterminasi dengan karakter baris baru (`\n`). Pernyataan tersebut menimpa file apa pun yang ada yang cocok dengan awalan file `sample_employee_data` di bucket Amazon S3 yang ditentukan.

```
SELECT * FROM employees INTO OUTFILE S3 's3-us-west-2://aurora-select-into-s3-pdx/sample_employee_data'
    FIELDS TERMINATED BY ','
    LINES TERMINATED BY '\n'
    OVERWRITE ON;
```

Pernyataan berikut memilih semua data di tabel `employees` dan menyimpan data ke dalam bucket Amazon S3 yang berada di wilayah yang sama dengan klaster DB Aurora MySQL. Pernyataan tersebut membuat file data yang setiap bidangnya diterminasi dengan karakter koma (`,`) dan setiap barisnya diterminasi dengan karakter baris baru (`\n`), serta membuat juga sebuah file manifes. Pernyataan tersebut menimpa file apa pun yang ada yang cocok dengan awalan file `sample_employee_data` di bucket Amazon S3 yang ditentukan.

```
SELECT * FROM employees INTO OUTFILE S3 's3://aurora-select-into-s3-pdx/sample_employee_data'
    FIELDS TERMINATED BY ','
    LINES TERMINATED BY '\n'
    MANIFEST ON
    OVERWRITE ON;
```