Gunakan Data Transmission Service (DTS) untuk memigrasikan data dari klaster PolarDB for MySQL ke proyek MaxCompute. DTS mendukung migrasi skema, migrasi data penuh, dan migrasi data inkremental—mencakup data historis serta perubahan yang sedang berlangsung.
Cara kerja
DTS menggunakan pipeline tiga tahap untuk memindahkan data dari PolarDB for MySQL ke MaxCompute:
Schema migration: DTS membaca skema tabel sumber dan membuat tabel yang sesuai di MaxCompute dengan menambahkan akhiran
_basepada setiap nama tabel. Misalnya, tabelcustomermenjadicustomer_basedi MaxCompute.Full data migration: DTS menyalin semua baris yang ada dari setiap tabel sumber ke tabel
_baseyang sesuai di MaxCompute. Tabel-tabel ini disebut tabel garis dasar penuh dan berfungsi sebagai titik awal untuk sinkronisasi inkremental.Incremental data migration: DTS membuat tabel
_logterpisah untuk setiap tabel yang dimigrasikan (misalnya,customer_log) dan mengalirkan operasi INSERT, UPDATE, dan DELETE yang sedang berlangsung dari log biner sumber ke tabel-tabel tersebut secara real time.
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
Layanan MaxCompute yang diaktifkan dan proyek MaxCompute. Lihat Aktifkan MaxCompute dan DataWorks dan Buat proyek MaxCompute.
Daftar putih alamat IP yang dikonfigurasi pada proyek MaxCompute untuk mengizinkan akses DTS. Lihat Konfigurasi daftar putih alamat IP untuk mengizinkan akses dari layanan Alibaba Cloud ke MaxCompute.
Pasangan Kunci Akses (AccessKey pair) untuk Akun Alibaba Cloud yang memiliki proyek MaxCompute tujuan. Lihat Buat pasangan AccessKey.
Alih-alih menggunakan pasangan AccessKey akun utama, buat Pengguna RAM dan tetapkan sebagai super administrator untuk proyek MaxCompute.
Batasan
Kondisi yang menghambat tugas (perbaiki sebelum memulai)
Kondisi-kondisi berikut menyebabkan tugas migrasi gagal:
Server tempat database sumber di-deploy harus memiliki bandwidth keluar yang mencukupi. Jika tidak, kecepatan migrasi data akan menurun.
Tabel yang akan dimigrasikan harus memiliki PRIMARY KEY atau kendala UNIK dengan semua bidang unik. Tanpa ini, tujuan mungkin berisi catatan duplikat.
Jika Anda memilih tabel sebagai objek migrasi dan perlu mengganti nama tabel atau kolom, satu tugas mendukung hingga 1.000 tabel. Tugas dengan lebih dari 1.000 tabel dalam mode ini akan mengembalikan kesalahan permintaan. Konfigurasikan beberapa tugas atau lakukan migrasi pada tingkat database saja.
Untuk migrasi data inkremental, binary logging harus diaktifkan dan parameter
loose_polar_log_binharus diatur keon. Jika binary logging tidak diaktifkan, Pemeriksaan Awal gagal dan tugas tidak dapat dimulai. Lihat Aktifkan binary logging dan Ubah parameter.Jangan mengeksekusi pernyataan DDL untuk mengubah skema database atau tabel selama migrasi skema atau migrasi data penuh. Tugas migrasi akan gagal jika skema berubah di tengah proses.
Jangan gunakan alat seperti
pt-online-schema-changeuntuk operasi DDL online pada objek yang sedang dimigrasikan. Tugas migrasi akan gagal.
Mengaktifkan binary logging pada klaster PolarDB for MySQL akan dikenai biaya penyimpanan untuk file log biner.
Risiko integritas data (tinjau sebelum memulai)
Kondisi-kondisi berikut dapat menyebabkan ketidakkonsistenan atau kehilangan data:
Log biner harus dipertahankan minimal selama 3 hari; pertahankan selama 7 hari untuk keamanan. Jika DTS tidak dapat membaca log biner, tugas akan gagal. Dalam kasus luar biasa, ketidakkonsistenan atau kehilangan data dapat terjadi. Mempertahankan log kurang dari durasi yang disyaratkan berarti Perjanjian Tingkat Layanan (SLA) untuk DTS mungkin tidak berlaku. Lihat Ubah periode retensi.
Jangan menulis data ke database sumber selama migrasi hanya penuh (migrasi skema + migrasi data penuh tanpa inkremental). Menulis ke sumber selama fase ini menyebabkan ketidakkonsistenan data. Untuk menulis ke sumber secara aman selama migrasi, sertakan migrasi data inkremental.
Jangan menulis data dari sumber lain ke proyek MaxCompute tujuan selama migrasi. Penulisan eksternal menyebabkan ketidakkonsistenan data.
MaxCompute tidak mendukung kendala kunci primer. Jika terjadi kesalahan jaringan, DTS mungkin menulis catatan duplikat ke proyek MaxCompute.
DTS mencoba mengulang tugas yang gagal hingga 7 hari. Sebelum beralih beban kerja ke tujuan, hentikan atau lepas tugas yang gagal. Atau, cabut izin tulis dari akun DTS di tujuan. Jika tidak, data sumber akan menimpa data tujuan saat tugas yang gagal dilanjutkan.
Batasan operasional
DTS tidak memigrasikan node read-only dari klaster PolarDB for MySQL sumber.
DTS tidak memigrasikan tabel eksternal Object Storage Service (OSS) dari klaster PolarDB for MySQL sumber.
DTS tidak memigrasikan kunci asing. Operasi cascade dan delete yang bergantung pada kunci asing tidak direplikasi ke tujuan.
Lakukan migrasi data selama jam sepi. Migrasi data penuh menggunakan sumber daya baca dan tulis di sumber maupun tujuan, yang meningkatkan beban pada kedua server database.
Setelah migrasi data penuh, ruang tabel tujuan lebih besar daripada sumber karena operasi INSERT konkuren menyebabkan fragmentasi tabel.
Jika instans DTS gagal, tim dukungan DTS berusaha memulihkannya dalam waktu 8 jam. Pemulihan mungkin melibatkan restart instans atau penyesuaian parameter instans DTS (bukan parameter database). Untuk parameter yang mungkin diubah, lihat Ubah parameter instans.
Migrasi data bertipe VECTOR tidak didukung.
Penagihan
Jenis migrasi | Biaya konfigurasi tugas | Biaya lalu lintas internet |
Migrasi skema dan migrasi data penuh | Gratis | Gratis, kecuali Access Method diatur ke Public IP Address. Lihat Ikhtisar penagihan. |
Migrasi data inkremental | Dikenai biaya. Lihat Ikhtisar penagihan. | — |
Operasi SQL yang didukung untuk migrasi inkremental
Jenis operasi | Pernyataan SQL |
DML | INSERT, UPDATE, DELETE |
DDL | ADD COLUMN |
Operasi ADD COLUMN yang mencakup kolom atribut tidak dapat dimigrasikan.
Izin akun database yang diperlukan
Database | Izin yang diperlukan | Cara memberikan |
PolarDB for MySQL | Izin baca pada objek yang akan dimigrasikan | Buat dan kelola akun database dan Kelola password akun database |
Buat tugas migrasi
Langkah 1: Buka halaman Migrasi Data
Gunakan Konsol DTS atau Konsol DMS.
Konsol DTS
Login ke Konsol DTS.Konsol DTS
Di panel navigasi kiri, klik Data Migration.
Di pojok kiri atas, pilih wilayah tempat instans migrasi akan berada.
Konsol DMS
Catatan
Tata letak Konsol DMS bervariasi tergantung mode. Lihat Mode simple dan Sesuaikan tata letak dan gaya Konsol DMS.
Login ke Konsol DMS.Konsol DMS
Di bilah navigasi atas, arahkan pointer ke Data + AI > DTS (DTS) > Data Migration.
Dari daftar drop-down di samping Data Migration Tasks, pilih wilayah tempat instans migrasi akan berada.
Langkah 2: Konfigurasi database sumber dan tujuan
Klik Create Task.
Konfigurasikan parameter berikut.
Umum
Parameter | Deskripsi |
Task Name | Nama untuk tugas DTS. DTS menghasilkan nama default. Tentukan nama deskriptif agar mudah mengidentifikasi tugas. Nama tugas tidak perlu unik. |
Database sumber
Parameter | Deskripsi |
Select Existing Connection | Jika database sumber sudah terdaftar di DTS, pilih dari daftar drop-down. DTS akan mengisi kolom lainnya secara otomatis. Jika tidak, konfigurasikan kolom di bawah ini. Di Konsol DMS, pilih dari Select a DMS database instance. |
Database Type | Pilih PolarDB for MySQL. |
Access Method | Pilih Alibaba Cloud Instance. |
Instance Region | Wilayah tempat klaster PolarDB for MySQL sumber berada. |
Replicate Data Across Alibaba Cloud Accounts | Pilih No saat melakukan migrasi dalam Akun Alibaba Cloud yang sama. |
PolarDB Cluster ID | ID klaster PolarDB for MySQL sumber. |
Database Account | Akun database untuk klaster sumber. Lihat Izin akun database yang diperlukan. |
Database Password | Password untuk akun database. |
Encryption | Apakah koneksi ke database sumber dienkripsi. Lihat Konfigurasi enkripsi SSL. |
Database tujuan
Parameter | Deskripsi |
Select Existing Connection | Jika proyek MaxCompute tujuan sudah terdaftar di DTS, pilih dari daftar drop-down. Jika tidak, konfigurasikan kolom di bawah ini. |
Database Type | Pilih MaxCompute. |
Access Method | Pilih Alibaba Cloud Instance. |
Instance Region | Wilayah tempat proyek MaxCompute tujuan berada. |
Project | Nama proyek MaxCompute tujuan. |
AccessKey ID of Alibaba Cloud Account | ID AccessKey dari pasangan Kunci Akses yang telah Anda siapkan pada prasyarat. |
AccessKey Secret of Alibaba Cloud Account | Secret AccessKey dari pasangan Kunci Akses. |
Klik Test Connectivity and Proceed.
Pastikan blok CIDR server DTS telah ditambahkan ke pengaturan keamanan database sumber dan tujuan. DTS dapat menambahkannya secara otomatis, atau Anda dapat menambahkannya secara manual. Lihat Tambahkan alamat IP server DTS ke daftar putih.
Klik OK untuk memberikan izin DTS pada proyek MaxCompute. Lalu klik Test Connectivity and Proceed.
Langkah 3: Konfigurasi objek migrasi
Di halaman Configure Objects, atur parameter berikut.
Migration types
Parameter | Deskripsi |
Migration Types | Pilih jenis migrasi berdasarkan kasus penggunaan Anda: <br>- Schema Migration + Full Data Migration: hanya memigrasikan data historis. Tugas selesai dan berhenti secara otomatis.<br>- Schema Migration + Full Data Migration + Incremental Data Migration: memigrasikan data historis dan mereplikasi perubahan yang sedang berlangsung secara real time. Tugas berjalan terus-menerus hingga Anda menghentikannya. |
Jika Anda melewatkan Schema Migration, buat database dan tabel tujuan secara manual sebelum memulai tugas, dan aktifkan pemetaan nama objek di Selected Objects.
Jika Anda melewatkan Incremental Data Migration, jangan menulis ke database sumber selama migrasi untuk menghindari ketidakkonsistenan data.
Konfigurasi tabel
Parameter | Deskripsi |
Naming Rules of Additional Columns | Setelah migrasi, DTS menambahkan kolom tambahan ke tabel tujuan. Jika nama kolom tambahan bentrok dengan kolom yang sudah ada, tugas akan gagal. Pilih New Rule atau Previous Rule berdasarkan pengaturan Anda. Periksa kemungkinan bentrok nama sebelum memilih. Lihat Aturan penamaan untuk kolom tambahan. |
Partition Definition of Incremental Data Table | Pilih nama partisi untuk tabel data inkremental. Lihat Partisi. |
Processing Mode of Conflicting Tables | Cara DTS menangani tabel di tujuan yang memiliki nama sama dengan tabel di sumber:<br>- Precheck and Report Errors: tugas gagal dalam Pemeriksaan Awal jika ditemukan bentrok nama. Untuk menyelesaikan bentrok tanpa mengganti nama tabel tujuan, gunakan pemetaan nama objek. Lihat Pemetaan nama objek.<br>- Ignore Errors and Proceed: melewati pemeriksaan bentrok. Jika skema sumber dan tujuan cocok dan kunci primer bentrok, migrasi penuh melewati catatan yang bentrok (catatan tujuan dipertahankan), sedangkan migrasi inkremental menimpanya. Jika skema berbeda, hanya kolom tertentu yang dimigrasikan atau tugas gagal. Gunakan dengan hati-hati. |
Capitalization of Object Names in Destination Instance | Kebijakan kapitalisasi untuk nama database, tabel, dan kolom di tujuan. Default-nya adalah DTS default policy. Lihat Tentukan kapitalisasi nama objek di instans tujuan. |
Pemilihan objek
Parameter | Deskripsi |
Source Objects | Pilih objek yang akan dimigrasikan. Klik ikon |
Selected Objects | Untuk mengganti nama satu objek di tujuan, klik kanan objek tersebut di Selected Objects. Lihat Pemetaan nama satu objek. Untuk mengganti nama beberapa objek sekaligus, klik Batch Edit. Lihat Pemetaan nama beberapa objek sekaligus. Untuk memfilter baris dalam tabel, klik kanan tabel tersebut dan konfigurasikan kondisi filter. Lihat Tentukan kondisi filter. Catatan Mengganti nama objek dengan pemetaan nama objek dapat menyebabkan objek dependen gagal dimigrasikan. |
Klik Next: Advanced Settings.
Langkah 4: Konfigurasi pengaturan lanjutan
Parameter | Deskripsi |
Dedicated Cluster for Task Scheduling | Secara default, DTS menjadwalkan tugas ke kluster bersama. Untuk stabilitas lebih tinggi, beli klaster khusus. Lihat Apa itu klaster khusus DTS. |
Retry Time for Failed Connections | Berapa lama DTS mencoba ulang saat database sumber atau tujuan tidak dapat dijangkau. Nilai valid: 10–1.440 menit. Default: 720 menit. Kami menyarankan Anda mengatur parameter ini ke nilai lebih dari 30. Jika DTS terhubung kembali dalam jendela percobaan ulang, tugas dilanjutkan. Jika tidak, tugas gagal. Catatan Saat beberapa tugas berbagi database sumber atau tujuan, waktu percobaan ulang yang paling baru diatur akan berlaku. DTS menagih instans selama percobaan ulang. |
Retry Time for Other Issues | Berapa lama DTS mencoba ulang setelah kegagalan DDL atau DML. Nilai valid: 1–1.440 menit. Default: 10 menit. Kami menyarankan Anda mengatur parameter ini ke nilai lebih dari 10. Harus lebih kecil dari Retry Time for Failed Connections. |
Enable Throttling for Full Data Migration | Membatasi beban baca dan tulis pada sumber dan tujuan selama migrasi data penuh. Konfigurasikan Queries per second (QPS) to the source database, RPS of Full Data Migration (baris per detik), dan Data migration speed for full migration (MB/s). Hanya tersedia saat Full Data Migration dipilih. |
Enable Throttling for Incremental Data Migration | Membatasi beban selama migrasi data inkremental. Konfigurasikan RPS of Incremental Data Migration dan Data migration speed for incremental migration (MB/s). Hanya tersedia saat Incremental Data Migration dipilih. |
Whether to delete SQL operations on heartbeat tables of forward and reverse tasks | Mengontrol apakah DTS menulis operasi SQL ke tabel heartbeat di database sumber saat berjalan. Yesalert notification settings: tidak menulis ke tabel heartbeat (indikator latensi mungkin muncul di instans). No: menulis ke tabel heartbeat (dapat memengaruhi backup fisik atau kloning sumber). |
Environment Tag | Tag opsional untuk mengidentifikasi instans DTS berdasarkan lingkungan (misalnya, produksi atau uji coba). |
Configure ETL | Apakah akan mengaktifkan fitur extract, transform, and load (ETL). Yes: konfigurasikan pernyataan pemrosesan data di editor kode. Lihat Konfigurasi ETL dalam tugas migrasi data atau sinkronisasi data. No: lewati konfigurasi ETL. Lihat Apa itu ETL? |
Monitoring and Alerting | Apakah akan mengonfigurasi peringatan untuk tugas migrasi. Yes: atur ambang batas peringatan dan kontak notifikasi. Peringatan muncul jika tugas gagal atau latensi migrasi melebihi ambang batas. Lihat Konfigurasi pemantauan dan peringatan saat membuat tugas DTS. No: lewati peringatan. |
Langkah 5: Jalankan Pemeriksaan Awal
Untuk melihat pratinjau parameter API sebelum menyimpan, arahkan kursor ke Next: Save Task Settings and Precheck dan klik Preview OpenAPI parameters.
Klik Next: Save Task Settings and Precheck.
DTS menjalankan Pemeriksaan Awal sebelum tugas migrasi dapat dimulai. Tugas hanya dimulai setelah Pemeriksaan Awal berhasil.
Jika suatu item pemeriksaan gagal, klik View Details di sebelahnya, perbaiki masalahnya, lalu klik Precheck Again.
Jika peringatan muncul pada suatu item pemeriksaan dan item tersebut dapat diabaikan dengan aman, klik Confirm Alert Details, lalu klik Ignore di kotak dialog dan klik OK. Lalu klik Precheck Again. Mengabaikan peringatan dapat menyebabkan ketidakkonsistenan data.
Langkah 6: Beli instans dan mulai tugas
Tunggu hingga Success Rate mencapai 100%, lalu klik Next: Purchase Instance.
Di halaman Purchase Instance, konfigurasikan parameter berikut.
Parameter | Deskripsi |
Resource Group | Kelompok sumber daya untuk instans migrasi. Default-nya adalah kelompok sumber daya default. Lihat Apa itu Manajemen Resource? |
Instance Class | Kelas kecepatan migrasi. Pilih berdasarkan kebutuhan throughput Anda. Lihat Kelas instans untuk instans migrasi data. |
Baca dan terima Data Transmission Service (Pay-as-you-go) Service Terms dengan memilih kotak centang.
Klik Buy and Start, lalu klik OK di dialog konfirmasi.
Tugas muncul di halaman Data Migration.
Tugas tanpa migrasi inkremental berhenti secara otomatis saat migrasi penuh selesai. Statusnya menunjukkan Completed.
Tugas dengan migrasi inkremental berjalan terus-menerus. Statusnya menunjukkan Running. Hentikan tugas secara manual saat Anda siap melakukan cut over.
Struktur tabel data inkremental
Jalankan set odps.sql.allow.fullscan=true; di MaxCompute untuk mengizinkan pemindaian tabel penuh pada proyek sebelum mengkueri tabel data inkremental.DTS menulis perubahan inkremental dari sumber ke tabel _log di MaxCompute (misalnya, customer_log). Setiap baris di tabel data inkremental merepresentasikan satu event perubahan dan mencakup kolom data dari tabel sumber serta kolom metadata berikut.
Bidang | Deskripsi |
| Pengidentifikasi unik untuk entri log inkremental. ID bertambah otomatis untuk setiap entri baru. Untuk operasi UPDATE, DTS menghasilkan dua entri (nilai sebelum dan sesudah update) dengan |
| Jenis perubahan: |
| Timestamp operasi dalam UTC, diambil dari log biner. |
| Apakah baris berisi nilai sebelum update: |
| Apakah baris berisi nilai sesudah update: |