Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mengekspor data snapshot klaster DB ke Amazon S3
Anda dapat mengekspor data snapshot klaster DB ke bucket Amazon S3. Proses ekspor berjalan di latar belakang dan tidak memengaruhi performa klaster DB aktif Anda.
Saat Anda mengekspor snapshot klaster DB, Amazon Aurora akan mengekstrak data dari snapshot tersebut dan menyimpannya di bucket Amazon S3. Anda dapat mengekspor snapshot manual dan snapshot sistem otomatis. Secara default, semua data dalam snapshot akan diekspor. Namun, Anda dapat memilih untuk mengekspor set basis data, skema, atau tabel tertentu.
Data disimpan dalam format Apache Parquet yang dikompresi dan konsisten. Setiap file Parquet biasanya berukuran 1–10 MB.
Setelah data diekspor, Anda dapat menganalisis data yang diekspor secara langsung melalui alat seperti Amazon Athena atau Amazon Redshift Spectrum. Untuk informasi lebih lanjut tentang menggunakan Athena untuk membaca data Parket, lihat Parket di Panduan Pengguna SerDe Amazon Athena. Untuk informasi selengkapnya tentang cara menggunakan Redshift Spectrum untuk membaca data Parquet, lihat COPY dari format data berkolom dalam Panduan Developer Basis Data Amazon Redshift.
Ketersediaan dan dukungan fitur bervariasi di semua versi spesifik setiap mesin basis data dan di seluruh Wilayah AWS. Untuk informasi selengkapnya tentang ketersediaan versi dan Wilayah untuk mengekspor data snapshot klaster DB ke S3, lihat Daerah yang Didukung dan mesin Aurora DB untuk mengekspor data snapshot ke Amazon S3.
Topik
- Batasan
- Ringkasan pengeksporan data snapshot
- Menyiapkan akses ke bucket Amazon S3
- Mengekspor snapshot ke bucket Amazon S3
- Performa ekspor di Aurora MySQL
- Memantau ekspor snapshot
- Membatalkan tugas ekspor snapshot
- Pesan kegagalan untuk tugas ekspor Amazon S3
- Memecahkan masalah kesalahan izin PostgreSQL
- Konvensi penamaan file
- Konversi data saat mengekspor ke bucket Amazon S3
Batasan
Batasan berikut berlaku untuk ekspor data snapshot DB ke Amazon S3:
-
Anda tidak dapat menjalankan beberapa tugas ekspor untuk snapshot klaster DB yang sama secara bersamaan. Batasan ini berlaku untuk ekspor penuh dan sebagian.
-
Anda dapat memiliki hingga lima tugas ekspor snapshot DB bersamaan yang sedang berlangsung per. Akun AWS
-
Anda tidak dapat mengekspor data snapshot dari cluster Aurora Serverless v1 DB ke S3.
-
Ekspor ke S3 tidak mendukung awalan S3 yang berisi titik dua (:).
-
Karakter berikut di jalur file S3 akan diubah menjadi garis bawah (_) selama ekspor berlangsung:
\ ` " (space)
-
Jika basis data, skema, atau tabel memiliki karakter dalam namanya selain yang berikut ini, maka ekspor parsial tidak didukung. Namun, Anda dapat mengekspor seluruh snapshot DB.
-
Huruf latin (A-Z)
-
Digit (0–9)
-
Simbol dolar ($)
-
Garis bawah (_)
-
-
Spasi ( ) dan karakter-karakter tertentu tidak didukung dalam nama kolom tabel basis data. Tabel yang nama kolomnya berisi karakter berikut akan dilewati selama ekspor berlangsung:
, ; { } ( ) \n \t = (space)
-
Tabel yang namanya berisi garis miring (/) akan dilewati selama ekspor berlangsung.
-
Tabel Aurora PostgreSQL yang bersifat sementara dan tidak tercatat akan dilewati selama ekspor berlangsung.
-
Jika data berisi objek besar, seperti BLOB atau CLOB, yang berukuran mendekati atau lebih dari 500 MB, maka ekspornya akan gagal.
-
Jika suatu tabel berisi baris besar yang berukuran mendekati atau lebih dari 2 GB, maka tabel tersebut akan dilewati selama ekspor berlangsung.
-
Untuk ekspor sebagian,
ExportOnly
daftar memiliki ukuran maksimum 200 KB. -
Sebaiknya Anda menggunakan nama unik untuk setiap tugas ekspor. Jika tidak menggunakan nama tugas yang unik, Anda mungkin menerima pesan kesalahan berikut:
ExportTaskAlreadyExistsKesalahan: Terjadi kesalahan (ExportTaskAlreadyExists) saat memanggil StartExportTask operasi: Tugas ekspor dengan ID
xxxxx
sudah ada. -
Anda dapat menghapus snapshot saat sedang mengekspor datanya ke S3, tetapi Anda masih dikenai biaya penyimpanan untuk snapshot tersebut hingga tugas ekspor selesai.
-
Anda tidak dapat memulihkan data snapshot yang diekspor dari S3 ke klaster DB baru.
Ringkasan pengeksporan data snapshot
Anda menggunakan proses berikut untuk mengekspor data snapshot DB ke bucket Amazon S3. Untuk detail selengkapnya, lihat bagian berikut.
-
Identifikasi snapshot yang akan diekspor.
Gunakan snapshot otomatis atau manual yang ada, atau buat snapshot manual instans DB.
-
Siapkan akses ke bucket Amazon S3.
Bucket adalah kontainer untuk objek atau file Amazon S3. Untuk memberikan informasi agar dapat mengakses bucket, lakukan langkah-langkah berikut:
-
Identifikasi bucket S3 tempat snapshot akan diekspor. Bucket S3 harus berada di AWS Wilayah yang sama dengan snapshot. Untuk informasi selengkapnya, lihat Mengidentifikasi bucket Amazon S3 untuk ekspor.
-
Buat peran AWS Identity and Access Management (IAM) yang memberikan akses tugas ekspor snapshot ke bucket S3. Untuk informasi selengkapnya, lihat Memberikan akses ke bucket Amazon S3 menggunakan peran IAM.
-
-
Buat enkripsi simetris AWS KMS key untuk enkripsi sisi server. Kunci KMS digunakan oleh tugas ekspor snapshot untuk mengatur enkripsi AWS KMS sisi server saat menulis data ekspor ke S3.
Kebijakan kunci KMS harus menyertakan izin
kms:DescribeKey
dankms:CreateGrant
. Untuk informasi selengkapnya tentang cara menggunakan kunci KMS di Amazon Aurora, lihat Manajemen AWS KMS key.Jika Anda memiliki pernyataan penolakan dalam kebijakan kunci KMS Anda, pastikan untuk secara eksplisit mengecualikan prinsip layanan. AWS
export.rds.amazonaws.com
Anda dapat menggunakan kunci KMS dalam AWS akun Anda, atau Anda dapat menggunakan kunci KMS lintas akun. Untuk informasi selengkapnya, lihat Menggunakan cross-account AWS KMS key.
-
Ekspor snapshot ke Amazon S3 menggunakan konsol atau perintah CLI
start-export-task
. Untuk informasi selengkapnya, lihat Mengekspor snapshot ke bucket Amazon S3. -
Untuk mengakses data Anda yang diekspor di bucket Amazon S3 lihat Mengunggah, mengunduh, dan mengelola objek dalam Panduan Pengguna Amazon Simple Storage Service.
Menyiapkan akses ke bucket Amazon S3
Identifikasi bucket Amazon S3, lalu berikan izin snapshot untuk mengaksesnya.
Topik
Mengidentifikasi bucket Amazon S3 untuk ekspor
Identifikasi bucket Amazon S3 untuk mengekspor snapshot DB. Gunakan bucket S3 yang ada atau buat bucket S3 baru.
catatan
Bucket S3 yang akan diekspor harus berada di AWS Wilayah yang sama dengan snapshot.
Untuk informasi selengkapnya tentang cara bekerja dengan bucket Amazon S3, lihat informasi berikut dalam Panduan Pengguna Amazon Simple Storage Service:
Memberikan akses ke bucket Amazon S3 menggunakan peran IAM
Sebelum Anda mengekspor data snapshot DB ke Amazon S3, beri tugas ekspor snapshot izin akses tulis ke bucket Amazon S3.
Untuk memberikan izin ini, buat kebijakan IAM yang memberikan akses ke bucket, lalu buat peran IAM dan lampirkan kebijakan pada peran tersebut. Setelah itu, Anda dapat menetapkan peran IAM ke tugas ekspor snapshot Anda.
penting
Jika Anda berencana untuk menggunakan AWS Management Console untuk mengekspor snapshot Anda, Anda dapat memilih untuk membuat kebijakan IAM dan peran secara otomatis ketika Anda mengekspor snapshot. Untuk mendapatkan petunjuk, lihat Mengekspor snapshot ke bucket Amazon S3.
Untuk memberi tugas snapshot DB akses ke Amazon S3
-
Buat kebijakan IAM. Kebijakan ini memberi bucket dan objek izin yang memungkinkan tugas ekspor snapshot Anda mengakses Amazon S3.
Dalam kebijakan tersebut, sertakan tindakan yang diperlukan berikut untuk memungkinkan transfer file dari Amazon Aurora ke bucket S3:
-
s3:PutObject*
-
s3:GetObject*
-
s3:ListBucket
-
s3:DeleteObject*
-
s3:GetBucketLocation
Dalam kebijakan tersebut, sertakan sumber daya berikut untuk mengidentifikasi bucket S3 dan objek dalam bucket. Daftar sumber daya berikut menunjukkan format Amazon Resource Name (ARN) untuk mengakses Amazon S3.
-
arn:aws:s3:::
DOC-EXAMPLE-BUCKET
-
arn:aws:s3:::
DOC-EXAMPLE-BUCKET
/*
Untuk informasi selengkapnya tentang cara membuat kebijakan IAM untuk Amazon Aurora, lihat Membuat dan menggunakan kebijakan IAM untuk akses basis data IAM. Lihat juga Tutorial: Membuat dan melampirkan kebijakan yang dikelola pelanggan pertama Anda dalam Panduan Pengguna IAM.
AWS CLI Perintah berikut membuat kebijakan IAM bernama
ExportPolicy
dengan opsi ini. Ini memberikan akses ke bucket bernamaDOC-EXAMPLE-BUCKET
.catatan
Setelah Anda membuat kebijakan, catat ARN kebijakan tersebut. Anda memerlukan ARN ini untuk langkah berikutnya saat Anda melampirkan kebijakan tersebut pada peran IAM.
aws iam create-policy --policy-name ExportPolicy --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Sid": "ExportPolicy", "Effect": "Allow", "Action": [ "s3:PutObject*", "s3:ListBucket", "s3:GetObject*", "s3:DeleteObject*", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::
DOC-EXAMPLE-BUCKET
", "arn:aws:s3:::DOC-EXAMPLE-BUCKET
/*" ] } ] }' -
-
Buat peran IAM agar Aurora dapat mengambil peran IAM ini atas nama Anda untuk mengakses bucket Amazon S3 Anda. Untuk informasi selengkapnya, lihat Membuat peran untuk mendelegasikan izin kepada pengguna IAM dalam Panduan Pengguna IAM.
Contoh berikut menunjukkan menggunakan AWS CLI perintah untuk membuat peran bernama
rds-s3-export-role
.aws iam create-role --role-name rds-s3-export-role --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "export.rds.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }'
-
Lampirkan kebijakan IAM yang Anda buat pada peran IAM yang Anda buat.
AWS CLI Perintah berikut melampirkan kebijakan yang dibuat sebelumnya ke peran bernama
rds-s3-export-role
. Ganti
dengan ARN kebijakan yang Anda catat di langkah sebelumnya.your-policy-arn
aws iam attach-role-policy --policy-arn
your-policy-arn
--role-name rds-s3-export-role
Menggunakan bucket Amazon S3 lintas akun
Anda dapat menggunakan bucket Amazon S3 di seluruh akun. AWS Untuk menggunakan bucket lintas akun, tambahkan kebijakan bucket untuk mengizinkan akses ke peran IAM yang Anda gunakan untuk ekspor S3. Untuk informasi selengkapnya, lihat Contoh 2: Pemilik bucket yang memberikan izin bucket lintas akun.
-
Lampirkan kebijakan bucket pada bucket Anda, seperti yang ditunjukkan dalam contoh berikut.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
123456789012
:role/Admin" }, "Action": [ "s3:PutObject*", "s3:ListBucket", "s3:GetObject*", "s3:DeleteObject*", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-DESTINATION-BUCKET
", "arn:aws:s3:::DOC-EXAMPLE-DESTINATION-BUCKET
/*" ] } ] }
Menggunakan cross-account AWS KMS key
Anda dapat menggunakan akun silang AWS KMS key untuk mengenkripsi ekspor Amazon S3. Pertama-tama, tambahkan kebijakan kunci ke akun lokal, lalu tambahkan kebijakan IAM di akun eksternal. Untuk informasi selengkapnya, lihat Mengizinkan pengguna di akun lain untuk menggunakan kunci KMS.
Untuk menggunakan kunci KMS lintas akun
-
Tambahkan kebijakan kunci ke akun lokal.
Contoh berikut memberi
ExampleRole
danExampleUser
di akun eksternal 444455556666 izin di akun lokal 123456789012.{ "Sid": "Allow an external account to use this KMS key", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::444455556666:role/ExampleRole", "arn:aws:iam::444455556666:user/ExampleUser" ] }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:CreateGrant", "kms:DescribeKey", "kms:RetireGrant" ], "Resource": "*" }
-
Tambahkan kebijakan IAM ke akun eksternal tersebut.
Contoh kebijakan IAM berikut memungkinkan pengguna utama menggunakan kunci KMS di akun 123456789012 untuk operasi kriptografi. Untuk memberikan izin ini kepada
ExampleRole
danExampleUser
di akun 444455556666, lampirkan kebijakan pada keduanya di akun tersebut.{ "Sid": "Allow use of KMS key in account 123456789012", "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:CreateGrant", "kms:DescribeKey", "kms:RetireGrant" ], "Resource": "arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab" }
Mengekspor snapshot ke bucket Amazon S3
Anda dapat memiliki hingga lima tugas ekspor snapshot DB bersamaan yang sedang berlangsung per. Akun AWS
catatan
Mengekspor snapshot RDS dapat memerlukan banyak waktu, tergantung pada jenis dan ukuran basis data Anda. Tugas ekspor akan terlebih dahulu memulihkan dan menskalakan seluruh basis data sebelum mengekstrak data ke Amazon S3. Dalam fase ini, progres tugas tersebut akan ditampilkan sebagai Memulai. Saat tugas beralih menjadi mengekspor data ke S3, progres akan ditampilkan sebagai Sedang berlangsung.
Waktu yang diperlukan untuk menyelesaikan ekspor tergantung pada data yang disimpan di basis data. Misalnya, tabel yang berisi kolom indeks atau kunci primer numerik yang terdistribusi dengan baik akan diekspor paling cepat. Tabel yang tidak berisi kolom yang sesuai untuk partisi dan tabel yang hanya berisi satu indeks pada kolom berbasis string memerlukan waktu lebih lama. Waktu ekspor yang lebih lama ini terjadi karena ekspor menggunakan proses alur tunggal yang lebih lambat.
Anda dapat mengekspor snapshot DB ke Amazon S3 menggunakan, AWS Management Console API, AWS CLI atau RDS.
Jika Anda menggunakan fungsi Lambda untuk mengekspor snapshot, tambahkan tindakan kms:DescribeKey
ke kebijakan fungsi Lambda. Untuk informasi selengkapnya, lihat izin AWS Lambda.
Opsi konsol Ekspor ke Amazon S3 hanya muncul untuk snapshot yang dapat diekspor ke Amazon S3. Snapshot mungkin tidak tersedia untuk diekspor karena alasan berikut:
-
Mesin DB tidak didukung untuk ekspor S3.
-
Versi instans DB tidak didukung untuk ekspor S3.
-
Ekspor S3 tidak didukung di AWS Wilayah tempat snapshot dibuat.
Untuk mengekspor snapshot DB
-
Masuk ke AWS Management Console dan buka konsol Amazon RDS di https://console.aws.amazon.com/rds/.
-
Di panel navigasi, pilih Snapshot.
-
Dari tabnya, pilih jenis snapshot yang ingin Anda ekspor.
-
Dalam daftar snapshot, pilih snapshot yang ingin Anda ekspor.
-
Untuk Tindakan, pilih Ekspor ke Amazon S3.
Jendela Ekspor ke Amazon S3 akan muncul.
-
Untuk Pengidentifikasi ekspor, masukkan nama untuk mengidentifikasi tugas ekspor. Nilai ini juga akan digunakan untuk nama file yang dibuat di bucket S3.
-
Pilih data yang akan diekspor:
-
Pilih Semua untuk mengekspor semua data dalam snapshot.
-
Pilih Sebagian untuk mengekspor bagian tertentu dari snapshot. Untuk mengidentifikasi bagian snapshot yang akan diekspor, masukkan satu atau beberapa basis data, skema, atau tabel untuk Pengidentifikasi, dipisahkan dengan spasi.
Gunakan format berikut:
database
[.schema
][.table
]database2
[.schema2
][.table2
] ...database
n[.schema
n][.table
n]Contohnya:
mydatabase mydatabase2.myschema1 mydatabase2.myschema2.mytable1 mydatabase2.myschema2.mytable2
-
-
Untuk Bucket S3, pilih bucket yang akan dijadikan tujuan ekspor.
Untuk menetapkan data yang diekspor ke jalur folder dalam bucket S3, masukkan jalur opsional untuk Prefiks S3.
-
Untuk Peran IAM, pilih peran yang memberi Anda akses tulis ke bucket S3 yang Anda pilih, atau buat peran baru.
-
Jika Anda membuat peran dengan mengikuti langkah-langkah di Memberikan akses ke bucket Amazon S3 menggunakan peran IAM, pilih peran tersebut.
-
Jika Anda tidak membuat peran yang memberi Anda akses tulis ke bucket S3 yang Anda pilih, pilih Buat peran baru untuk membuat peran secara otomatis. Berikutnya, masukkan nama untuk peran tersebut di Nama peran IAM.
-
-
Untuk AWS KMS key, masukkan ARN untuk kunci yang akan digunakan untuk mengenkripsi data yang diekspor.
-
Pilih Ekspor ke Amazon S3.
Untuk mengekspor snapshot DB ke Amazon S3 menggunakan AWS CLI perintah start-export-task dengan opsi wajib berikut:
-
--export-task-identifier
-
--source-arn
-
--s3-bucket-name
-
--iam-role-arn
-
--kms-key-id
Dalam contoh berikut, tugas ekspor snapshot diberi nama
my-snapshot-export, yang mengekspor snapshot ke bucket S3 bernama DOC-EXAMPLE-DESTINATION-BUCKET
.
Untuk Linux, macOS, atau Unix:
aws rds start-export-task \ --export-task-identifier
my-snapshot-export
\ --source-arn arn:aws:rds:AWS_Region
:123456789012:snapshot:snapshot-name
\ --s3-bucket-nameDOC-EXAMPLE-DESTINATION-BUCKET
\ --iam-role-arniam-role
\ --kms-key-idmy-key
Untuk Windows:
aws rds start-export-task ^ --export-task-identifier
my-snapshot-export
^ --source-arn arn:aws:rds:AWS_Region
:123456789012:snapshot:snapshot-name
^ --s3-bucket-nameDOC-EXAMPLE-DESTINATION-BUCKET
^ --iam-role-arniam-role
^ --kms-key-idmy-key
Berikut adalah contoh output.
{ "Status": "STARTING", "IamRoleArn": "iam-role", "ExportTime": "2019-08-12T01:23:53.109Z", "S3Bucket": "
DOC-EXAMPLE-DESTINATION-BUCKET
", "PercentProgress": 0, "KmsKeyId": "my-key", "ExportTaskIdentifier": "my-snapshot-export", "TotalExtractedDataInGB": 0, "TaskStartTime": "2019-11-13T19:46:00.173Z", "SourceArn": "arn:aws:rds:AWS_Region:123456789012:snapshot:snapshot-name" }
Untuk menyediakan jalur folder dalam bucket S3 untuk ekspor snapshot, sertakan opsi --s3-prefix
dalam perintah start-export-task.
Untuk mengekspor snapshot DB ke Amazon S3 menggunakan Amazon RDS API, gunakan operasi StartExportTugas dengan parameter wajib berikut:
-
ExportTaskIdentifier
-
SourceArn
-
S3BucketName
-
IamRoleArn
-
KmsKeyId
Performa ekspor di Aurora MySQL
Snapshot klaster DB Aurora MySQL versi 2 dan versi 3 menggunakan mekanisme ekspor canggih untuk meningkatkan performa dan mengurangi waktu ekspor. Mekanisme ini mencakup pengoptimalan seperti beberapa alur ekspor dan kueri paralel Aurora MySQL untuk memanfaatkan arsitektur penyimpanan bersama Aurora. Pengoptimalan diterapkan secara adaptif, tergantung pada ukuran dan struktur set data.
Anda tidak perlu mengaktifkan kueri paralel untuk menggunakan proses ekspor yang lebih cepat, tetapi prosesnya memiliki batasan yang sama dengan kueri paralel. Selain itu, nilai data tertentu tidak didukung, seperti tanggal yang hari dalam sebulannya adalah 0
atau tahunnya adalah 0000
. Untuk informasi selengkapnya, lihat Bekerja dengan kueri paralel untuk Amazon Aurora MySQL.
Saat pengoptimalan performa diterapkan, Anda mungkin juga melihat file Parket yang berukuran jauh lebih besar (~200 GB) untuk ekspor Aurora MySQL versi 2 dan 3.
Jika proses ekspor yang lebih cepat tidak dapat digunakan, misalnya karena jenis atau nilai data yang tidak kompatibel, Aurora akan otomatis beralih ke mode ekspor alur tunggal tanpa kueri paralel. Bergantung pada proses yang digunakan dan jumlah data yang akan diekspor, performa ekspor dapat bervariasi.
Memantau ekspor snapshot
Anda dapat memantau ekspor snapshot DB menggunakan AWS Management Console, API AWS CLI, atau RDS.
Untuk memantau ekspor snapshot DB
-
Masuk ke AWS Management Console dan buka konsol Amazon RDS di https://console.aws.amazon.com/rds/.
-
Di panel navigasi, pilih Ekspor di Amazon S3.
Ekspor snapshot DB ditunjukkan di kolom Jenis sumber. Status ekspor ditampilkan di kolom Status.
-
Untuk melihat informasi mendetail tentang ekspor snapshot tertentu, pilih tugas ekspornya.
Untuk memantau ekspor snapshot DB menggunakan AWS CLI, gunakan perintah describe-export-tasks.
Contoh berikut menunjukkan cara menampilkan informasi saat ini tentang semua ekspor snapshot Anda.
aws rds describe-export-tasks { "ExportTasks": [ { "Status": "CANCELED", "TaskEndTime": "2019-11-01T17:36:46.961Z", "S3Prefix": "something", "ExportTime": "2019-10-24T20:23:48.364Z", "S3Bucket": "
DOC-EXAMPLE-BUCKET
", "PercentProgress": 0, "KmsKeyId": "arn:aws:kms:AWS_Region
:123456789012:key/K7MDENG/bPxRfiCYEXAMPLEKEY", "ExportTaskIdentifier": "anewtest", "IamRoleArn": "arn:aws:iam::123456789012:role/export-to-s3", "TotalExtractedDataInGB": 0, "TaskStartTime": "2019-10-25T19:10:58.885Z", "SourceArn": "arn:aws:rds:AWS_Region
:123456789012:snapshot:parameter-groups-test" }, { "Status": "COMPLETE", "TaskEndTime": "2019-10-31T21:37:28.312Z", "WarningMessage": "{\"skippedTables\":[],\"skippedObjectives\":[],\"general\":[{\"reason\":\"FAILED_TO_EXTRACT_TABLES_LIST_FOR_DATABASE\"}]}", "S3Prefix": "", "ExportTime": "2019-10-31T06:44:53.452Z", "S3Bucket": "DOC-EXAMPLE-BUCKET1
", "PercentProgress": 100, "KmsKeyId": "arn:aws:kms:AWS_Region
:123456789012:key/2Zp9Utk/h3yCo8nvbEXAMPLEKEY", "ExportTaskIdentifier": "thursday-events-test", "IamRoleArn": "arn:aws:iam::123456789012:role/export-to-s3", "TotalExtractedDataInGB": 263, "TaskStartTime": "2019-10-31T20:58:06.998Z", "SourceArn": "arn:aws:rds:AWS_Region
:123456789012:snapshot:rds:example-1-2019-10-31-06-44" }, { "Status": "FAILED", "TaskEndTime": "2019-10-31T02:12:36.409Z", "FailureCause": "The S3 bucket my-exports isn't located in the current AWS Region. Please, review your S3 bucket name and retry the export.", "S3Prefix": "", "ExportTime": "2019-10-30T06:45:04.526Z", "S3Bucket": "DOC-EXAMPLE-BUCKET2
", "PercentProgress": 0, "KmsKeyId": "arn:aws:kms:AWS_Region
:123456789012:key/2Zp9Utk/h3yCo8nvbEXAMPLEKEY", "ExportTaskIdentifier": "wednesday-afternoon-test", "IamRoleArn": "arn:aws:iam::123456789012:role/export-to-s3", "TotalExtractedDataInGB": 0, "TaskStartTime": "2019-10-30T22:43:40.034Z", "SourceArn": "arn:aws:rds:AWS_Region
:123456789012:snapshot:rds:example-1-2019-10-30-06-45" } ] }
Untuk menampilkan informasi tentang ekspor snapshot tertentu, sertakan opsi --export-task-identifier
dengan perintah describe-export-tasks
. Sertakan opsi --Filters
untuk memfilter output. Untuk opsi lainnya, lihat perintah describe-export-tasks.
Untuk melacak penyelesaian alur kerja ekspor atau memulai alur kerja lainnya, Anda dapat berlangganan topik Amazon Simple Notification Service. Untuk informasi selengkapnya tentang Amazon SNS, lihat Bekerja dengan pemberitahuan peristiwa Amazon RDS.
Membatalkan tugas ekspor snapshot
Anda dapat membatalkan tugas ekspor snapshot DB menggunakan AWS Management Console, AWS CLI, atau RDS API.
catatan
Membatalkan tugas ekspor snapshot tidak akan menghapus data apa pun yang telah diekspor ke Amazon S3. Untuk informasi tentang cara menghapus data menggunakan konsol, lihat Bagaimana cara menghapus objek dari bucket S3? Untuk menghapus data menggunakan CLI, gunakan perintah delete-object.
Untuk membatalkan tugas ekspor snapshot
-
Masuk ke AWS Management Console dan buka konsol Amazon RDS di https://console.aws.amazon.com/rds/.
-
Di panel navigasi, pilih Ekspor di Amazon S3.
Ekspor snapshot DB ditunjukkan di kolom Jenis sumber. Status ekspor ditampilkan di kolom Status.
-
Pilih tugas ekspor snapshot yang ingin Anda batalkan.
-
Pilih Batalkan.
-
Pilih Batalkan tugas ekspor di halaman konfirmasi.
Untuk membatalkan tugas ekspor snapshot menggunakan AWS CLI, gunakan perintah cancel-export-task. Perintah tersebut memerlukan opsi --export-task-identifier
.
aws rds cancel-export-task --export-task-identifier my_export { "Status": "CANCELING", "S3Prefix": "", "ExportTime": "2019-08-12T01:23:53.109Z", "S3Bucket": "
DOC-EXAMPLE-BUCKET
", "PercentProgress": 0, "KmsKeyId": "arn:aws:kms:AWS_Region
:123456789012:key/K7MDENG/bPxRfiCYEXAMPLEKEY", "ExportTaskIdentifier": "my_export", "IamRoleArn": "arn:aws:iam::123456789012:role/export-to-s3", "TotalExtractedDataInGB": 0, "TaskStartTime": "2019-11-13T19:46:00.173Z", "SourceArn": "arn:aws:rds:AWS_Region
:123456789012:snapshot:export-example-1" }
Untuk membatalkan tugas ekspor snapshot menggunakan Amazon RDS API, gunakan operasi CancelExportTugas dengan parameter. ExportTaskIdentifier
Pesan kegagalan untuk tugas ekspor Amazon S3
Tabel berikut menjelaskan pesan yang akan ditampilkan jika tugas ekspor Amazon S3 gagal.
Pesan kegagalan | Deskripsi |
---|---|
Terjadi kesalahan internal yang tidak diketahui. |
Tugas telah gagal karena kesalahan yang tidak diketahui, pengecualian, atau kegagalan. |
Terjadi kesalahan internal yang tidak diketahui saat menulis metadata tugas ekspor ke bucket S3 [nama bucket]. |
Tugas telah gagal karena kesalahan yang tidak diketahui, pengecualian, atau kegagalan. |
Ekspor RDS gagal menulis metadata tugas ekspor karena tidak dapat mengambil peran IAM [peran ARN]. |
Tugas ekspor mengambil peran IAM Anda untuk memvalidasi apakah tugas tersebut diperbolehkan menulis metadata ke bucket S3 Anda. Jika tidak dapat mengambil peran IAM Anda, berarti tugas tersebut gagal. |
Ekspor RDS gagal menulis metadata tugas ekspor ke bucket S3 [nama bucket] menggunakan peran IAM [ARN peran] dengan kunci KMS [ID kunci]. Kode kesalahan: [kode kesalahan] |
Satu atau beberapa izin tidak ada, sehingga tugas ekspor tidak dapat mengakses bucket S3. Pesan kegagalan ini muncul saat menerima salah satu kode kesalahan berikut:
Kode kesalahan ini menunjukkan bahwa pengaturan salah dikonfigurasi untuk peran IAM, bucket S3, atau kunci KMS. |
Peran IAM [ARN peran] tidak diizinkan untuk memanggil [tindakan S3] pada bucket S3 [nama bucket]. Tinjau izin Anda dan coba lagi ekspor. |
Kebijakan IAM salah dikonfigurasi. Izin untuk tindakan S3 tertentu pada bucket S3 tidak ada, sehingga menyebabkan tugas ekspor gagal. |
Pemeriksaan kunci KMS gagal. Periksa kredensial pada kunci KMS Anda, lalu coba lagi. |
Pemeriksaan kredensial kunci KMS gagal. |
Pemeriksaan kredensial S3 gagal. Periksa izin pada bucket S3 dan kebijakan IAM Anda. |
Pemeriksaan kredensial S3 gagal. |
Bucket S3 [nama bucket] tidak valid. Bucket tersebut tidak berada di Wilayah AWS saat ini atau tidak ada. Tinjau nama bucket S3 Anda, lalu coba lagi ekspor. |
Bucket S3 tidak valid. |
Bucket S3 [nama bucket] tidak berada di Wilayah AWS saat ini. Tinjau nama bucket S3 Anda, lalu coba lagi ekspor. |
Ember S3 salah Wilayah AWS. |
Memecahkan masalah kesalahan izin PostgreSQL
Saat mengekspor basis data PostgreSQL ke Amazon S3, Anda mungkin melihat kesalahan PERMISSIONS_DO_NOT_EXIST
yang menyatakan bahwa tabel tertentu dilewati. Kesalahan ini biasanya terjadi saat pengguna super, yang Anda tetapkan saat membuat instans DB, tidak memiliki izin untuk mengakses tabel tersebut.
Untuk memperbaiki kesalahan ini, jalankan perintah berikut:
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA
schema_name
TOsuperuser_name
Untuk informasi selengkapnya tentang hak pengguna super, lihat Hak akses akun pengguna master.
Konvensi penamaan file
Data yang diekspor untuk tabel tertentu disimpan dalam format
, dengan prefiks dasar sebagai berikut:base_prefix
/files
export_identifier
/database_name
/schema_name
.table_name
/
Contohnya:
export-1234567890123-459/rdststdb/rdststdb.DataInsert_7ADB5D19965123A2/
Ada dua konvensi cara penamaan file.
-
Konvensi saat ini:
batch_index
/part-partition_index
-random_uuid
.format-based_extension
Indeks batch adalah nomor urut yang mewakili batch data yang dibaca dari tabel. Jika kami tidak dapat mempartisi tabel Anda menjadi bagian-bagian kecil untuk diekspor secara paralel, akan ada beberapa indeks batch. Hal yang sama akan terjadi jika tabel Anda dipartisi menjadi beberapa tabel. Beberapa indeks batch akan tersedia, dengan satu untuk setiap partisi tabel dari tabel utama Anda.
Jika kami dapat mempartisi tabel Anda menjadi bagian-bagian kecil yang akan dibaca secara paralel, hanya akan ada folder
1
indeks batch.Di dalam folder indeks batch, akan ada satu atau beberapa file Parquet yang berisi data tabel Anda. Prefiks file Parket adalah
part-
. Jika tabel Anda dipartisi, akan ada beberapa file yang diawali dengan indeks partisipartition_index
00000
.Mungkin ada kesenjangan dalam urutan indeks partisi. Hal ini terjadi karena setiap partisi diperoleh dari kueri dengan rentang di tabel Anda. Jika tidak ada data dalam rentang partisi tersebut, maka nomor urut itu akan dilewati.
Misalnya, anggap kolom
id
adalah kunci primer tabel, dan nilai minimum dan maksimumnya adalah100
dan1000
. Saat kami mencoba mengekspor tabel ini dengan sembilan partisi, kami membacanya dengan kueri paralel seperti berikut:SELECT * FROM table WHERE id <= 100 AND id < 200 SELECT * FROM table WHERE id <= 200 AND id < 300
Partisi ini akan menghasilkan sembilan file, dari
part-00000-
hinggarandom_uuid
.gz.parquetpart-00008-
. Namun, jika tidak ada baris dengan ID antararandom_uuid
.gz.parquet200
dan350
, maka salah satu partisi yang telah selesai akan kosong, dan tidak ada file yang dibuat untuk partisi itu. Dalam contoh sebelumnya,part-00001-
tidak dibuat.random_uuid
.gz.parquet -
Konvensi yang lebih lama:
part-
partition_index
-random_uuid
.format-based_extension
Konvensi ini sama seperti konvensi saat ini, tetapi tanpa prefiks
, contohnya:batch_index
part-00000-c5a881bb-58ff-4ee6-1111-b41ecff340a3-c000.gz.parquet part-00001-d7a881cc-88cc-5ab7-2222-c41ecab340a4-c000.gz.parquet part-00002-f5a991ab-59aa-7fa6-3333-d41eccd340a7-c000.gz.parquet
Konvensi penamaan file dapat berubah sewaktu-waktu. Oleh karena itu, saat membaca tabel target, sebaiknya baca segala sesuatu di dalam prefiks dasar untuk tabel tersebut.
Konversi data saat mengekspor ke bucket Amazon S3
Saat Anda mengekspor snapshot DB ke bucket Amazon S3 Amazon Aurora akan mengonversi data ke, mengekspor data dalam, dan menyimpan data dalam format Parquet. Untuk informasi selengkapnya tentang Parquet, lihat situs web Apache Parquet
Parquet menyimpan semua data sebagai salah satu jenis primitif berikut:
-
BOOLEAN
-
INT32
-
INT64
-
INT96
-
FLOAT
-
DOUBLE
-
BYTE_ARRAY – Array byte dengan panjang variabel, juga dikenal sebagai biner
-
FIXED_LEN_BYTE_ARRAY – Array byte dengan panjang tetap yang digunakan saat nilai memiliki ukuran konstan
Jenis data Parquet berjumlah sedikit untuk mengurangi kerumitan membaca dan menulis format. Parquet menyediakan jenis logis untuk memperluas jenis primitif. Jenis logis diimplementasikan sebagai anotasi dengan data di kolom metadata LogicalType
. Anotasi jenis logis menjelaskan cara menginterpretasikan jenis primitif.
Saat jenis logis STRING
menganotasi jenis BYTE_ARRAY
, hal ini menunjukkan bahwa array byte harus diinterpretasikan sebagai string karakter yang dienkode UTF-8. Setelah tugas ekspor selesai, Amazon Aurora akan memberi tahu Anda jika terjadi konversi string. Data dasar yang diekspor selalu sama seperti data dari sumbernya. Namun, karena perbedaan encoding dalam UTF-8, beberapa karakter mungkin terlihat berbeda dari sumber saat dibaca di alat seperti Athena.
Untuk informasi selengkapnya, lihat Parquet logical type definitions
Pemetaan jenis data MySQL ke Parquet
Tabel berikut menunjukkan pemetaan dari jenis data MySQL ke jenis data Parquet saat data dikonversi dan diekspor ke Amazon S3.
Jenis data sumber | Jenis primitif Parquet | Anotasi jenis logis | Catatan konversi |
---|---|---|---|
Jenis data numerik | |||
BIGINT | INT64 | ||
BIGINT UNSIGNED | FIXED_LEN_BYTE_ARRAY(9) | DECIMAL(20,0) | Parquet hanya mendukung jenis yang ditandatangani, sehingga pemetaannya memerlukan tambahan byte (8 plus 1) untuk menyimpan jenis BIGINT_UNSIGNED. |
BIT | BYTE_ARRAY | ||
DECIMAL | INT32 | DECIMAL(p,s) | Jika nilai sumber kurang dari 231, maka nilai tersebut akan disimpan sebagai INT32. |
INT64 | DECIMAL(p,s) | Jika nilai sumber adalah 231 atau lebih besar, tetapi kurang dari 263, maka nilai tersebut akan disimpan sebagai INT64. | |
FIXED_LEN_BYTE_ARRAY(N) | DECIMAL(p,s) | Jika nilai sumber adalah 263 atau lebih besar, maka nilai tersebut akan disimpan sebagai FIXED_LEN_BYTE_ARRAY(N). | |
BYTE_ARRAY | STRING | Parquet tidak mendukung presisi Desimal yang lebih besar dari 38. Nilai Desimal akan dikonversi menjadi string dalam jenis BYTE_ARRAY dan dienkode sebagai UTF8. | |
DOUBLE | DOUBLE | ||
FLOAT | DOUBLE | ||
INT | INT32 | ||
INT UNSIGNED | INT64 | ||
MEDIUMINT | INT32 | ||
MEDIUMINT UNSIGNED | INT64 | ||
NUMERIC | INT32 | DECIMAL(p,s) |
Jika nilai sumber kurang dari 231, maka nilai tersebut akan disimpan sebagai INT32. |
INT64 | DECIMAL(p,s) | Jika nilai sumber adalah 231 atau lebih besar, tetapi kurang dari 263, maka nilai tersebut akan disimpan sebagai INT64. | |
FIXED_LEN_ARRAY(N) | DECIMAL(p,s) | Jika nilai sumber adalah 263 atau lebih besar, maka nilai tersebut akan disimpan sebagai FIXED_LEN_BYTE_ARRAY(N). | |
BYTE_ARRAY | STRING | Parquet tidak mendukung presisi Numerik yang lebih besar dari 38. Nilai Numerik ini akan dikonversi menjadi string dalam jenis BYTE_ARRAY dan dienkode sebagai UTF8. | |
SMALLINT | INT32 | ||
SMALLINT UNSIGNED | INT32 | ||
TINYINT | INT32 | ||
TINYINT UNSIGNED | INT32 | ||
Jenis data string | |||
BINARY | BYTE_ARRAY | ||
BLOB | BYTE_ARRAY | ||
CHAR | BYTE_ARRAY | ||
ENUM | BYTE_ARRAY | STRING | |
LINESTRING | BYTE_ARRAY | ||
LONGBLOB | BYTE_ARRAY | ||
LONGTEXT | BYTE_ARRAY | STRING | |
MEDIUMBLOB | BYTE_ARRAY | ||
MEDIUMTEXT | BYTE_ARRAY | STRING | |
MULTILINESTRING | BYTE_ARRAY | ||
SET | BYTE_ARRAY | STRING | |
TEXT | BYTE_ARRAY | STRING | |
TINYBLOB | BYTE_ARRAY | ||
TINYTEXT | BYTE_ARRAY | STRING | |
VARBINARY | BYTE_ARRAY | ||
VARCHAR | BYTE_ARRAY | STRING | |
Jenis data tanggal dan waktu | |||
DATE | BYTE_ARRAY | STRING | Tanggal akan dikonversi menjadi string dalam jenis BYTE_ARRAY dan dienkode sebagai UTF8. |
DATETIME | INT64 | TIMESTAMP_MICROS | |
TIME | BYTE_ARRAY | STRING | Jenis TIME akan dikonversi menjadi string dalam jenis BYTE_ARRAY dan dienkode sebagai UTF8. |
TIMESTAMP | INT64 | TIMESTAMP_MICROS | |
YEAR | INT32 | ||
Jenis data geometris | |||
GEOMETRY | BYTE_ARRAY | ||
GEOMETRYCOLLECTION | BYTE_ARRAY | ||
MULTIPOINT | BYTE_ARRAY | ||
MULTIPOLYGON | BYTE_ARRAY | ||
POINT | BYTE_ARRAY | ||
POLYGON | BYTE_ARRAY | ||
Jenis data JSON | |||
JSON | BYTE_ARRAY | STRING |
Pemetaan jenis data PostgreSQL ke Parquet
Tabel berikut menunjukkan pemetaan dari dan jenis data PostgreSQL ke jenis data Parquet saat data dikonversi dan diekspor ke Amazon S3.
Jenis data PostgreSQL | Jenis primitif Parquet | Anotasi jenis logis | Catatan pemetaan |
---|---|---|---|
Jenis data numerik | |||
BIGINT | INT64 | ||
BIGSERIAL | INT64 | ||
DECIMAL | BYTE_ARRAY | STRING | Jenis DECIMAL akan dikonversi ke string dalam jenis BYTE_ARRAY dan dienkode sebagai UTF8. Konversi ini dimaksudkan untuk menghindari kerumitan akibat presisi data dan nilai data yang bukan berupa angka (NaN). |
DOUBLE PRECISION | DOUBLE | ||
INTEGER | INT32 | ||
MONEY | BYTE_ARRAY | STRING | |
REAL | FLOAT | ||
SERIAL | INT32 | ||
SMALLINT | INT32 | INT_16 | |
SMALLSERIAL | INT32 | INT_16 | |
Jenis data string dan terkait | |||
ARRAY | BYTE_ARRAY | STRING |
Array akan dikonversi menjadi string dan dienkode sebagai BINARY (UTF8). Konversi ini dimaksudkan untuk menghindari kerumitan akibat presisi data, nilai data yang bukan berupa angka (NaN), dan nilai data waktu. |
BIT | BYTE_ARRAY | STRING | |
BIT VARYING | BYTE_ARRAY | STRING | |
BYTEA | BINARY | ||
CHAR | BYTE_ARRAY | STRING | |
CHAR(N) | BYTE_ARRAY | STRING | |
ENUM | BYTE_ARRAY | STRING | |
NAME | BYTE_ARRAY | STRING | |
TEXT | BYTE_ARRAY | STRING | |
TEXT SEARCH | BYTE_ARRAY | STRING | |
VARCHAR(N) | BYTE_ARRAY | STRING | |
XML | BYTE_ARRAY | STRING | |
Jenis data tanggal dan waktu | |||
DATE | BYTE_ARRAY | STRING | |
INTERVAL | BYTE_ARRAY | STRING | |
TIME | BYTE_ARRAY | STRING | |
TIME WITH TIME ZONE | BYTE_ARRAY | STRING | |
TIMESTAMP | BYTE_ARRAY | STRING | |
TIMESTAMP WITH TIME ZONE | BYTE_ARRAY | STRING | |
Jenis data geometris | |||
BOX | BYTE_ARRAY | STRING | |
CIRCLE | BYTE_ARRAY | STRING | |
LINE | BYTE_ARRAY | STRING | |
LINESEGMENT | BYTE_ARRAY | STRING | |
PATH | BYTE_ARRAY | STRING | |
POINT | BYTE_ARRAY | STRING | |
POLYGON | BYTE_ARRAY | STRING | |
Jenis data JSON | |||
JSON | BYTE_ARRAY | STRING | |
JSONB | BYTE_ARRAY | STRING | |
Jenis data lainnya | |||
BOOLEAN | BOOLEAN | ||
CIDR | BYTE_ARRAY | STRING | Jenis data jaringan |
COMPOSITE | BYTE_ARRAY | STRING | |
DOMAIN | BYTE_ARRAY | STRING | |
INET | BYTE_ARRAY | STRING | Jenis data jaringan |
MACADDR | BYTE_ARRAY | STRING | |
OBJECT IDENTIFIER | N/A | ||
PG_LSN | BYTE_ARRAY | STRING | |
RANGE | BYTE_ARRAY | STRING | |
UUID | BYTE_ARRAY | STRING |