Halaman ini menawarkan ringkasan cara memigrasikan database Pemrosesan Transaksi Online (OLTP) dari MySQL ke Spanner. Proses migrasi ke Spanner dapat bervariasi bergantung pada faktor seperti ukuran data, persyaratan periode nonaktif, kompleksitas kode aplikasi, skema sharding, fungsi kustom, serta strategi failover dan replikasi.
Migrasi Spanner dipecah menjadi langkah-langkah berikut:
- Menilai migrasi Anda.
- Migrasikan skema Anda, dan terjemahkan kueri SQL apa pun.
- Migrasikan aplikasi Anda untuk menggunakan Spanner selain MySQL.
- Muat data sampel dan optimalkan performa Anda.
- Migrasikan data Anda.
- Validasi migrasi.
- Konfigurasi mekanisme peralihan dan penggantian.
Menilai migrasi Anda
Menilai migrasi dari database MySQL sumber ke Spanner memerlukan evaluasi kebutuhan bisnis, teknis, operasional, dan keuangan Anda. Untuk mengetahui informasi selengkapnya, lihat Menilai migrasi Anda.
Memigrasikan skema
Anda mengonversi skema yang ada menjadi skema Spanner menggunakan alat migrasi Spanner.
Untuk mengetahui informasi selengkapnya, lihat Ringkasan memigrasikan skema dari MySQL.
Memigrasikan aplikasi Anda untuk menggunakan Spanner
Spanner menyediakan serangkaian Library klien untuk berbagai bahasa, dan kemampuan untuk membaca dan menulis data menggunakan panggilan API khusus Spanner, serta dengan menggunakan Kueri SQL dan pernyataan Data Modification Language (DML). Menggunakan panggilan API mungkin lebih cepat untuk beberapa kueri, seperti pembacaan baris langsung menurut kunci, karena pernyataan SQL tidak perlu diterjemahkan.
Spanner menyediakan driver JDBC untuk aplikasi Java.
Sebagai bagian dari proses migrasi, fitur yang tidak tersedia di Spanner seperti yang disebutkan sebelumnya harus diterapkan di aplikasi. Misalnya, pemicu untuk memverifikasi nilai data dan memperbarui tabel terkait harus diterapkan di aplikasi menggunakan transaksi baca atau tulis untuk membaca baris yang ada, memverifikasi batasan, lalu menulis baris yang diperbarui ke kedua tabel.
Spanner menawarkan transaksi baca atau tulis dan hanya baca yang memastikan konsistensi eksternal data Anda. Selain itu, transaksi baca dapat menerapkan Batas stempel waktu, tempat Anda membaca versi data yang konsisten:
- pada waktu yang tepat di masa lalu (hingga 1 jam yang lalu).
- pada masa mendatang (tempat pembacaan akan diblokir hingga waktu tersebut tiba).
- dengan jumlah keusangan terikat yang dapat diterima, yang akan menampilkan tampilan yang konsisten hingga beberapa waktu di masa lalu tanpa perlu memeriksa apakah data yang lebih baru tersedia di replika lain. Hal ini dapat memberikan manfaat performa dengan mengorbankan kemungkinan data yang tidak valid.
Memuat data sampel ke Spanner
Anda dapat memuat contoh data ke Spanner sebelum melakukan migrasi data lengkap untuk menguji skema, kueri, dan aplikasi Anda.
Anda dapat menggunakan alur kerja ETL terbalik BigQuery dan Google Cloud CLI untuk memuat sejumlah kecil data dalam format file CSV ke Spanner.
Untuk mengetahui informasi selengkapnya, lihat Memuat contoh data.
Untuk mentransfer data dari MySQL ke Spanner, Anda juga dapat mengekspor database MySQL ke format file portabel—misalnya, XML—lalu mengimpor data tersebut ke Spanner menggunakan Dataflow.
Memigrasikan data ke Spanner
Setelah mengoptimalkan skema Spanner dan memuat data contoh, Anda dapat memindahkan data ke database Spanner berukuran produksi yang kosong.
Untuk mengetahui informasi selengkapnya, lihat Migrasi data langsung dari MySQL.
Memvalidasi migrasi data Anda
Saat data di-streaming ke database Spanner, Anda dapat menjalankan perbandingan secara berkala antara data Spanner dan data MySQL untuk memastikan data konsisten. Anda dapat memvalidasi konsistensi dengan mengirimkan kueri ke kedua sumber data dan membandingkan hasilnya.
Anda dapat menggunakan Dataflow untuk melakukan perbandingan mendetail pada set data besar menggunakan transformasi gabungan. Transformasi ini mengambil 2 set data yang diberi kunci, dan mencocokkan nilai berdasarkan kunci. Nilai yang cocok kemudian dapat dibandingkan untuk kesetaraan. Anda dapat menjalankan verifikasi ini secara rutin hingga tingkat konsistensi sesuai dengan persyaratan bisnis Anda.
Untuk mengetahui informasi selengkapnya, lihat Memvalidasi migrasi data Anda.
Mengonfigurasi mekanisme peralihan dan penggantian
Anda dapat menyiapkan peralihan dan penggantian untuk MySQL menggunakan replikasi terbalik. Pengalihan dan penggantian berarti Anda memiliki rencana darurat untuk kembali ke database MySQL sumber jika Anda mengalami masalah dengan Spanner.
Replikasi terbalik berguna saat Anda mengalami masalah tak terduga dengan Spanner dan perlu melakukan failover ke database MySQL asli dengan gangguan minimum pada layanan. Replikasi terbalik memungkinkan failback dengan mereplikasi data yang ditulis di Spanner kembali ke database MySQL sumber Anda.
Alur replikasi terbalik melibatkan langkah-langkah berikut, yang dilakukan oleh
Spanner to SourceDB
template Dataflow:
Membaca perubahan dari Spanner menggunakan aliran perubahan Spanner.
Memfilter perubahan yang dimigrasikan ke depan.
Transformasikan data Spanner agar kompatibel dengan skema database sumber Anda.
Verifikasi apakah database sumber sudah berisi data yang lebih baru untuk kunci utama yang ditentukan.
Tulis data ke database sumber Anda.
Langkah berikutnya
- Praktik terbaik dalam desain skema.
- Optimalkan skema Spanner Anda.
- Pelajari cara menggunakan Dataflow untuk situasi yang lebih kompleks.