Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mengimpor data dari sumber apa pun ke Amazon RDS for MySQL DB instans
Langkah-langkah berikut memandu Anda dalam mengimpor data ke instans Amazon RDS DB:
Langkah 1: Buat file datar yang berisi data yang akan dimuat
Gunakan format umum, seperti CSV (Comma-Separated Values), untuk menyimpan data yang akan dimuat. Setiap tabel harus memiliki file sendiri—Anda tidak dapat menggabungkan data untuk beberapa tabel dalam file yang sama. Beri setiap file nama yang sama dengan tabelnya. Ekstensi file dapat berupa apa pun yang Anda inginkan. Misalnya, jika nama tabelnyasales
, nama file bisa jadi sales.csv
atausales.txt
.
Jika memungkinkan, urutkan data dengan kunci utama tabel yang sedang dimuat. Tindakan ini secara drastis meningkatkan waktu pemuatan dan meminimalkan kebutuhan penyimpanan disk.
Kecepatan dan efisiensi prosedur ini ditentukan oleh kemampuan untuk mempertahankan ukuran file tetap kecil. Jika ukuran file individual yang tidak terkompresi lebih besar dari 1 GiB, bagilah ke dalam beberapa file dan muat setiap file secara terpisah.
Pada sistem seperti Unix (termasuk Linux), gunakan perintah split
. Misalnya, perintah berikut membagi file sales.csv
menjadi beberapa file berukuran kurang dari 1 GiB, yang hanya membagi pada jeda baris (-C 1024m). Nama-nama file baru termasuk sufiks numerik menaik. Perintah berikut menghasilkan file dengan nama seperti sales.part_00
dansales.part_01
.
split -C 1024m -d sales.csv sales.part_
Utilitas yang serupa juga tersedia untuk sistem operasi lain.
Anda dapat menyimpan file datar di mana saja. Namun, ketika Anda memuat data di Langkah 5, Anda harus memanggil mysql
shell dari lokasi yang sama di mana file ada, atau menggunakan jalur absolut untuk file saat Anda menjalankanLOAD DATA LOCAL
INFILE
.
Langkah 2: Hentikan aplikasi apa pun dari mengakses instans DB target
Sebelum memulai pemuatan besar, hentikan semua aktivitas aplikasi mengakses instans DB target yang Anda rencanakan untuk dimuat. Kami menyarankan hal ini terutama jika sesi lain akan memodifikasi tabel yang sedang dimuat atau tabel yang menjadi rujukan. Tindakan ini dapat mengurangi risiko pelanggaran pembatasan yang terjadi selama pemuatan dan meningkatkan performa pemuatan. Tindakan ini juga memungkinkan untuk memulihkan instans DB ke titik tepat sebelum pemuatan tanpa kehilangan perubahan yang dibuat oleh proses yang tidak terlibat dalam pemuatan.
Tentu saja, terkadang ini tidak memungkinkan atau tidak praktis. Jika Anda tidak dapat menghentikan aplikasi dari mengakses instans DB sebelum pemuatan, lakukan langkah-langkah untuk memastikan ketersediaan dan integritas data Anda. Langkah-langkah tertentu yang dibutuhkan dapat bervariasi tergantung kasus penggunaan dan persyaratan situs tertentu.
Langkah 3: Buat snapshot DB
Jika Anda berencana memuat data ke dalam instans DB baru yang tidak berisi data, Anda dapat melompati langkah ini. Jika tidak, sebaiknya Anda membuat snapshot DB dari instans Amazon RDS DB target sebelum dan sesudah pemuatan data. Snapshot Amazon RDS DB adalah cadangan lengkap instans DB Anda yang dapat Anda gunakan untuk memulihkan instans DB Anda ke status yang diketahui. Saat Anda memulai sebuah snapshot DB, operasi I/O ke instans DB Anda untuk sementara ditangguhkan selama basis data Anda dicadangkan.
Jika perlu, segera buat sebuah snapshot DB sebelum pemuatan agar Anda dapat memulihkan basis data ke statusnya sebelum pemuatan. Dengan snapshot DB yang diambil segera setelah pemuatan, Anda tidak perlu memuat data lagi jika terjadi hal yang tidak diinginkan. Anda juga dapat menggunakan snapshot DB setelah pemuatan untuk mengimpor data ke instance database baru.
Contoh berikut menjalankan AWS CLI create-db-snapshotperintah untuk membuat snapshot DB dari AcmeRDS
instance dan memberikan snapshot DB pengenal. "preload"
Untuk Linux, macOS, atau Unix:
aws rds create-db-snapshot \ --db-instance-identifier
AcmeRDS
\ --db-snapshot-identifierpreload
Untuk Windows:
aws rds create-db-snapshot ^ --db-instance-identifier
AcmeRDS
^ --db-snapshot-identifierpreload
Anda juga dapat menggunakan pemulihan dari fungsionalitas snapshot DB untuk membuat instans DB pengujian untuk melakukan dry run atau untuk membatalkan perubahan yang dibuat selama pemuatan.
Harap diingat bahwa pemulihan basis data dari sebuah snapshot DB akan menciptakan sebuah instans DB baru yang, seperti semua instans DB, memiliki pengidentifikasi yang unik dan titik akhir. Untuk memulihkan instans DB tanpa mengubah titik akhir, pertama-tama hapus instans DB sehingga Anda dapat menggunakan ulang titik akhir.
Misalnya, untuk membuat instans DB untuk dry run atau pengujian lainnya, beri instans DB tersebut pengidentifikasinya sendiri. Dalam contoh ini, AcmeRDS-2
" adalah pengidentifikasinya. Contoh ini terhubung ke instans DB menggunakan titik akhir yang terkait dengan AcmeRDS-2
. Untuk informasi selengkapnya, lihat restore-db-instance-from-db-snapshot.
Untuk Linux, macOS, atau Unix:
aws rds restore-db-instance-from-db-snapshot \ --db-instance-identifier
AcmeRDS-2
\ --db-snapshot-identifierpreload
Untuk Windows:
aws rds restore-db-instance-from-db-snapshot ^ --db-instance-identifier
AcmeRDS-2
^ --db-snapshot-identifierpreload
Untuk menggunakan ulang titik akhir yang sudah ada, pertama-tama hapus instans DB kemudian berikan pengidentifikasi yang sama kepada basis data yang dipulihkan. Untuk informasi selengkapnya, lihat delete-db-instance.
Contoh berikut juga mengambil snapshot DB akhir dari instans DB sebelum menghapusnya. Ini adalah langkah opsional, tetapi direkomendasikan.
Untuk Linux, macOS, atau Unix:
aws rds delete-db-instance \ --db-instance-identifier
AcmeRDS
\ --final-db-snapshot-identifierAcmeRDS-Final
aws rds restore-db-instance-from-db-snapshot \ --db-instance-identifierAcmeRDS
\ --db-snapshot-identifierpreload
Untuk Windows:
aws rds delete-db-instance ^ --db-instance-identifier
AcmeRDS
^ --final-db-snapshot-identifierAcmeRDS-Final
aws rds restore-db-instance-from-db-snapshot ^ --db-instance-identifierAcmeRDS
^ --db-snapshot-identifierpreload
Langkah 4 (Opsional): Matikan cadangan otomatis Amazon RDS
Awas
Jangan mematikan pencadangan otomatis jika Anda perlu melakukan point-in-time pemulihan.
Mematikan pencadangan otomatis adalah pengoptimalan kinerja dan tidak diperlukan untuk pemuatan data. Mematikan backup otomatis menghapus semua backup yang ada. Akibatnya, setelah Anda mematikan pencadangan otomatis, point-in-time pemulihan tidak mungkin dilakukan. Snapshot DB manual tidak terpengaruh dengan menonaktifkan pencadangan otomatis. Semua snapshot DB manual yang sudah ada tetap tersedia untuk pemulihan.
Penonaktifan pencadangan otomatis mengurangi waktu pemuatan sekitar 25 persen dan mengurangi jumlah ruang penyimpanan yang dibutuhkan selama pemuatan. Jika Anda berencana memuat data ke dalam sebuah instans DB baru yang tidak berisi data, penonaktifan pencadangan adalah cara yang mudah untuk mempercepat pemuatan dan menghindari penggunaan penyimpanan tambahan yang diperlukan untuk pencadangan. Namun, dalam beberapa kasus Anda mungkin berencana untuk melakukan pemuatan ke dalam instans DB yang sudah berisi data. Jika demikian, pertimbangkan manfaat mematikan cadangan terhadap dampak kehilangan kemampuan untuk melakukan. point-in-time-recovery
Instans DB memiliki pencadangan otomatis yang diaktifkan secara default (dengan periode retensi satu hari). Untuk menonaktifkan pencadangan otomatis, atur periode retensi pencadangan ke nol. Setelah pemuatan selesai, Anda dapat mengaktifkan kembali pencadangan dengan mengatur periode retensi pencadangan ke nilai selain nol. Untuk mengaktifkan atau mematikan cadangan, Amazon RDS mematikan instans DB dan kemudian memulai ulang untuk mengaktifkan atau menonaktifkan login MariaDB atau MySQL.
Jalankan AWS CLI modify-db-instance
perintah untuk mengatur retensi cadangan ke nol dan segera terapkan perubahan. Untuk mengatur periode retensi menjadi nol diperlukan mulai ulang instans DB, jadi tunggu hingga mulai ulang selesai sebelum melanjutkan. Untuk informasi selengkapnya, lihat modify-db-instance.
Untuk Linux, macOS, atau Unix:
aws rds modify-db-instance \ --db-instance-identifier
AcmeRDS
\ --apply-immediately \ --backup-retention-period0
Untuk Windows:
aws rds modify-db-instance ^ --db-instance-identifier
AcmeRDS
^ --apply-immediately ^ --backup-retention-period0
Anda dapat memeriksa status instans DB Anda dengan AWS CLI describe-db-instancesperintah. Contoh berikut menampilkan status instans DB dari instans AcmeRDS
DB:
aws rds describe-db-instances --db-instance-identifier
AcmeRDS
--query "*[].{DBInstanceStatus:DBInstanceStatus}"
Ketika status instans DBavailable
, Anda siap untuk melanjutkan ke langkah berikutnya.
Langkah 5: Muat data
Untuk membaca baris dari file datar Anda ke dalam tabel database, gunakan pernyataan MySQLLOAD
DATA LOCAL INFILE
.
catatan
Anda harus memanggil mysql
shell dari lokasi yang sama di mana file datar Anda ada, atau menggunakan jalur absolut untuk file saat Anda menjalankanLOAD
DATA LOCAL INFILE
.
Contoh berikut menunjukkan cara memuat data dari file bernama sales.txt
ke dalam tabel bernama Sales
dalam database:
mysql> LOAD DATA LOCAL INFILE 'sales.txt' INTO TABLE Sales FIELDS TERMINATED BY ' ' ENCLOSED BY '' ESCAPED BY '\\'; Query OK, 1 row affected (0.01 sec) Records: 1 Deleted: 0 Skipped: 0 Warnings: 0
Untuk informasi selengkapnya tentang LOAD DATA
pernyataan tersebut, lihat MEMUAT Pernyataan DATA
Langkah 6: Hidupkan kembali backup otomatis Amazon RDS
Jika Anda mematikan pencadangan otomatis Amazon RDS di Langkah 4, setelah pemuatan selesai, aktifkan pencadangan otomatis dengan menyetel periode retensi cadangan kembali ke nilai pramuatnya. Seperti disebutkan di Langkah 4, Amazon RDS memulai ulang instans DB, jadi bersiaplah untuk pemadaman singkat.
Contoh berikut menjalankan AWS CLI modify-db-instanceperintah untuk mengaktifkan backup otomatis untuk instans AcmeRDS
DB dan mengatur periode retensi menjadi satu hari:
Untuk Linux, macOS, atau Unix:
aws rds modify-db-instance \ --db-instance-identifier
AcmeRDS
\ --backup-retention-period1
\ --apply-immediately
Untuk Windows:
aws rds modify-db-instance ^ --db-instance-identifier
AcmeRDS
^ --backup-retention-period1
^ --apply-immediately