Gunakan Data Transmission Service (DTS) untuk memigrasikan data dari instans PolarDB-X 2.0 ke proyek MaxCompute. DTS mendukung migrasi penuh satu kali dan migrasi inkremental berkelanjutan, sehingga Anda dapat memilih strategi sesuai dengan downtime yang dapat diterima.
Cara kerja migrasi
DTS mendukung tiga jenis migrasi yang dapat dikombinasikan:
| Jenis migrasi | Apa yang ditransfer | Mendukung CDC inkremental |
|---|---|---|
| Migrasi skema | Definisi tabel dan indeks | Tidak |
| Migrasi data penuh | Semua baris yang ada pada suatu titik waktu | Tidak |
| Migrasi data inkremental | Data perubahan (INSERT, UPDATE, DELETE, ADD COLUMN) setelah migrasi penuh selesai | Ya |
Konvensi penamaan di MaxCompute
DTS menggunakan konvensi penamaan tertentu untuk tabel yang dibuat di MaxCompute:
Schema migration: DTS menambahkan akhiran
_baseke nama tabel sumber. Misalnya, jika tabel sumber bernamacustomer, tabel tujuan di MaxCompute diberi namacustomer_base. Tabel tujuan yang diakhiri dengan_basedikenal sebagai tabel garis dasar penuh.Full data migration: Data historis dimigrasikan ke tabel
_baseyang sesuai (misalnya,customer→customer_base). Ini berfungsi sebagai garis dasar untuk sinkronisasi inkremental selanjutnya.Incremental data migration included: DTS membuat tabel log inkremental di MaxCompute. Nama tabel mengikuti format
DestinationTableName_log(misalnya,customer_log). Data inkremental dimigrasikan ke tabel ini secara real time.
Pilih strategi migrasi
| Tujuan | Jenis migrasi yang dipilih |
|---|---|
| Transfer satu kali dengan downtime yang dapat diterima | Migrasi skema + Migrasi data penuh |
| Sinkronisasi berkelanjutan dengan downtime minimal | Migrasi skema + Migrasi data penuh + Migrasi data inkremental |
Jika hanya memilih migrasi data penuh, hentikan semua operasi tulis ke database sumber selama migrasi untuk mencegah ketidakkonsistenan data antara sumber dan tujuan. Untuk memastikan konsistensi data, kami merekomendasikan memilih migrasi skema, migrasi data penuh, dan migrasi data inkremental secara bersamaan.
Operasi SQL yang didukung oleh migrasi data inkremental
| Jenis operasi | Pernyataan yang didukung |
|---|---|
| DML | INSERT, UPDATE, DELETE |
| DDL | ADD COLUMN (operasi ADD COLUMN yang mencakup kolom atribut tidak didukung) |
Prasyarat
Sebelum memulai, pastikan Anda telah:
Mengaktifkan MaxCompute dan membuat proyek MaxCompute. Lihat Aktifkan MaxCompute dan Buat proyek MaxCompute.
Mengonfigurasi daftar putih MaxCompute agar DTS dapat mengakses MaxCompute. Lihat Konfigurasi daftar putih untuk Layanan Alibaba Cloud agar dapat mengakses MaxCompute.
Membuat Pasangan Kunci Akses untuk Akun Alibaba Cloud yang memiliki proyek MaxCompute tujuan. Lihat Buat Pasangan Kunci Akses.
Sebagai alternatif, Anda dapat membuat Pengguna RAM dan menetapkan Pengguna RAM tersebut sebagai super administrator untuk proyek MaxCompute.
Batasan
Tinjau batasan berikut sebelum memulai tugas migrasi.
Batasan database sumber
Tabel harus memiliki kendala PRIMARY KEY atau UNIQUE, dengan semua bidang unik. Tabel tanpa kendala ini dapat menghasilkan catatan duplikat di MaxCompute.
Instans baca-saja Edisi Perusahaan PolarDB-X 2.0 tidak didukung.
Jika Anda mengganti nama tabel atau kolom selama migrasi (pemetaan nama objek), satu tugas mendukung hingga 1.000 tabel. Untuk lebih dari 1.000 tabel, bagi menjadi beberapa tugas atau migrasikan seluruh database.
TABLEGROUP serta database atau skema dengan atribut Locality tidak didukung.
Tabel dengan nama kata kunci tercadang (misalnya,
select) tidak didukung.
Persyaratan binlog untuk migrasi data inkremental
Jika Anda menyertakan migrasi data inkremental, konfigurasikan pengaturan binlog berikut pada instans PolarDB-X 2.0 sumber sebelum memulai:
| Pengaturan | Nilai yang diperlukan | Catatan |
|---|---|---|
| Pencatatan biner | Diaktifkan | Diperlukan agar DTS dapat membaca data perubahan |
binlog_row_image | full | DTS menolak nilai lain selama Pemeriksaan Awal |
| Retensi log biner (tugas hanya inkremental) | > 24 jam | Retensi yang tidak mencukupi dapat menyebabkan kegagalan tugas atau kehilangan data; SLA DTS tidak berlaku |
| Retensi log biner (tugas penuh + inkremental) | >= 7 hari | Setelah migrasi penuh selesai, Anda dapat mengurangi retensi menjadi lebih dari 24 jam |
Batasan operasional
Selama migrasi skema dan migrasi data penuh: jangan lakukan operasi DDL (perubahan skema) pada database sumber. Tugas akan gagal jika operasi DDL terdeteksi.
Selama migrasi penuh dan inkremental: DTS sementara menonaktifkan pemeriksaan kendala dan operasi kaskade kunci asing pada tingkat sesi. Operasi pembaruan atau penghapusan kaskade pada database sumber dapat menyebabkan ketidakkonsistenan data di tujuan.
Jika Anda mengubah jenis jaringan instans PolarDB-X 2.0 selama migrasi, perbarui juga pengaturan koneksi jaringan di tugas migrasi DTS.
Batasan lainnya
Evaluasi kinerja database sumber dan tujuan sebelum memulai migrasi data. Lakukan migrasi data selama jam sepi. Migrasi data penuh mengonsumsi sumber daya baca dan tulis pada database sumber dan tujuan, yang dapat meningkatkan beban database.
DTS mencoba melanjutkan tugas migrasi yang gagal yang dibuat dalam tujuh hari terakhir. Oleh karena itu, sebelum beralih ke instans tujuan, Anda harus mengakhiri atau melepas tugas, atau menggunakan perintah
revokeuntuk mencabut izin tulis akun DTS pada database tujuan. Hal ini diperlukan untuk mencegah data di tujuan ditimpa ulang setelah tugas dilanjutkan secara otomatis.Jika sebuah instans gagal, tim dukungan DTS akan mencoba memulihkan instans tersebut dalam waktu 8 jam. Selama proses pemulihan, operasi seperti me-restart instans dan menyesuaikan parameter dapat dilakukan. Saat parameter disesuaikan, hanya parameter instans DTS yang dimodifikasi. Parameter database tidak dimodifikasi.
DTS secara berkala memperbarui tabel
dts_health_check.ha_health_checkdi database sumber untuk memajukan offset log biner.
Izin yang diperlukan
Berikan izin berikut kepada akun database yang digunakan oleh DTS:
| Database | Migrasi skema | Migrasi data penuh | Migrasi data inkremental |
|---|---|---|---|
| PolarDB-X 2.0 | SELECT | SELECT | REPLICATION SLAVE, REPLICATION CLIENT, dan SELECT pada objek yang akan dimigrasikan |
| MaxCompute | — | Baca dan tulis | Baca dan tulis |
Untuk petunjuk pemberian izin kepada akun PolarDB-X 2.0, lihat Masalah izin akun selama sinkronisasi data.
Penagihan
| Jenis migrasi | Biaya konfigurasi tugas | Biaya lalu lintas internet |
|---|---|---|
| Migrasi skema + Migrasi data penuh | Gratis | Gratis saat menggunakan akses Instans Cloud. Jika Anda menetapkan metode akses tujuan ke Alamat IP Publik, biaya lalu lintas internet berlaku. Lihat Ikhtisar penagihan. |
| Migrasi data inkremental | Dikenai biaya. Lihat Ikhtisar penagihan. | — |
Buat tugas migrasi
Langkah-langkah berikut menggunakan Konsol DTS. Anda juga dapat menggunakan Konsol DMS — navigasi ke Data + AI > DTS (DTS) > Data Migration, lalu ikuti langkah yang sama mulai dari langkah 2.
Tata letak aktual Konsol DMS dapat berbeda. Lihat Mode simple dan Sesuaikan tata letak dan gaya Konsol DMS untuk informasi lebih lanjut.
Langkah 1: Buka halaman Data Migration
Login ke Konsol DTS.Konsol DTSKonsol DMS
Di panel navigasi kiri, klik Data Migration.
Di pojok kiri atas, pilih wilayah tempat instans migrasi akan berada.
Langkah 2: Buat tugas dan konfigurasi database sumber dan tujuan
Setelah memilih instans sumber dan tujuan, baca Limits di bagian atas halaman untuk memastikan tugas migrasi dapat dibuat dan dijalankan dengan sukses.
Klik Create Task.
Konfigurasi database sumber:
Parameter Deskripsi Task Name DTS menghasilkan nama secara otomatis. Masukkan nama deskriptif untuk memudahkan identifikasi. Nama tidak perlu unik. Select Existing Connection Jika instans PolarDB-X 2.0 sudah terdaftar di DTS, pilih dari daftar drop-down untuk mengisi parameter di bawah secara otomatis. Jika tidak, konfigurasi parameter secara manual. Database Type Pilih PolarDB-X 2.0. Access Method Pilih Cloud Instance. Instance Region Pilih wilayah tempat instans PolarDB-X 2.0 sumber berada. Cross-account Pilih No untuk migrasi dalam Akun Alibaba Cloud yang sama. Instance ID Pilih ID instans PolarDB-X 2.0 sumber. Database Account Masukkan akun database. Lihat Izin yang diperlukan untuk izin yang dibutuhkan. Database Password Masukkan password untuk akun database. Konfigurasi database tujuan:
Parameter Deskripsi Database Type Pilih MaxCompute. Access Method Pilih Cloud Instance. Instance Region Pilih wilayah tempat proyek MaxCompute tujuan berada. Project Masukkan nama proyek MaxCompute tujuan. AccessKey ID of Alibaba Cloud Account Masukkan ID AccessKey yang dibuat di Prasyarat. AccessKey Secret of Alibaba Cloud Account Masukkan AccessKey Secret. Klik Test Connectivity and Proceed.
Klik OK untuk memberikan izin yang diperlukan kepada DTS agar dapat mengakses proyek MaxCompute tujuan.
Langkah 3: Konfigurasi objek yang akan dimigrasikan
Di halaman Configure Objects, konfigurasi parameter berikut:
| Parameter | Deskripsi |
|---|---|
| Migration Types | Pilih jenis migrasi berdasarkan strategi Anda. Lihat Pilih strategi migrasi. Jika Anda melewatkan Schema Migration, buat tabel tujuan di MaxCompute secara manual dan aktifkan pemetaan nama objek di Selected Objects. |
| Processing Mode for Existing Destination Tables | Precheck and Report Errors: gagal dalam Pemeriksaan Awal jika tujuan sudah memiliki tabel dengan nama yang sama. Ignore Errors and Proceed: melewati pemeriksaan konflik nama. Selama migrasi penuh, DTS melewati catatan dengan kunci utama yang bentrok dan mempertahankan catatan tujuan yang ada. Selama migrasi inkremental, DTS menimpa catatan tujuan yang ada. Jika skema sumber dan tujuan berbeda, tugas mungkin hanya memigrasikan beberapa kolom atau gagal. |
| Additional Column Rule | DTS menambahkan kolom metadata ke tabel tujuan. Pilih New Rule atau Old Rule berdasarkan skema Anda. Evaluasi potensi konflik nama sebelum memilih. |
| Partition Definition of Incremental Data Table | Pilih nama partisi jika diperlukan. Lihat Partisi. |
| Capitalization of Object Names in Destination Instance | Mengontrol kapitalisasi nama database, tabel, dan kolom di tujuan. Lihat Tentukan kapitalisasi nama objek di instans tujuan. |
Di bagian Source Objects, pilih objek yang akan dimigrasikan. Pindahkan ke bagian Selected Objects.
Untuk mengganti nama satu objek di tujuan, klik kanan objek tersebut di bagian Selected Objects. Lihat Memetakan nama satu objek.
Untuk mengganti nama beberapa objek sekaligus, klik Batch Edit di pojok kanan atas bagian Selected Objects. Lihat Petakan beberapa nama objek sekaligus.
Langkah 4: Konfigurasi pengaturan lanjutan
Klik Next: Advanced Settings dan konfigurasi hal berikut:
| Parameter | Deskripsi |
|---|---|
| Dedicated Cluster for Task Scheduling | Secara default, DTS menjadwalkan tugas ke klaster bersama. Untuk meningkatkan stabilitas, beli dan tentukan klaster khusus. Lihat Apa itu klaster khusus DTS. |
| Retry Time for Failed Connections | Berapa lama DTS mencoba koneksi database yang gagal sebelum menandai tugas sebagai gagal. Nilai valid: 10–1.440 menit. Default: 720 menit. Atur minimal 30 menit. Selama percobaan ulang, biaya instans DTS tetap berjalan. |
| Retry Time for Other Issues | Berapa lama DTS mencoba ulang operasi DDL atau DML yang gagal. Nilai valid: 1–1.440 menit. Default: 10 menit. Atur minimal 10 menit. Nilai ini harus kurang 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. Konfigurasi QPS ke database sumber, RPS (baris per detik), dan kecepatan migrasi (MB/s). Tersedia hanya jika Full data migration only dipilih. |
| Enable Throttling for Incremental Data Migration | Membatasi beban pada tujuan selama migrasi data inkremental. Konfigurasi RPS dan kecepatan migrasi (MB/s). Tersedia hanya jika Incremental Data Migration dipilih. |
| Whether to delete SQL operations on heartbeat tables | Yespengaturan pemberitahuan peringatan: DTS tidak menulis ke tabel heartbeat. Indikator latensi mungkin muncul untuk instans DTS. No: DTS menulis ke tabel heartbeat. Hal ini dapat memengaruhi pencadangan fisik dan kloning database sumber. |
| Environment Tag | Opsional. Tag untuk mengidentifikasi lingkungan, seperti produksi atau uji coba. |
| Configure ETL | Apakah akan mengaktifkan ekstrak, transformasi, dan muat (ETL). Pilih Yes untuk memasukkan pernyataan pemrosesan data. Lihat Konfigurasi ETL dalam tugas migrasi data atau sinkronisasi data. |
| Monitoring and Alerting | Apakah akan mengonfigurasi peringatan. Jika tugas gagal atau latensi migrasi melebihi ambang batas, kontak peringatan menerima notifikasi. Pilih Yes untuk mengonfigurasi ambang batas peringatan dan pengaturan notifikasi. Lihat Konfigurasi pemantauan dan peringatan. |
Langkah 5: Jalankan Pemeriksaan Awal
Klik Next: Save Task Settings and Precheck.
Jika Pemeriksaan Awal lolos, lanjutkan ke langkah berikutnya.
Jika Pemeriksaan Awal gagal, klik View Details, perbaiki masalah yang dilaporkan, dan jalankan ulang Pemeriksaan Awal.
Untuk item peringatan: perbaiki masalah atau klik Confirm Alert Details > Ignore > OK > Precheck Again jika peringatan tersebut dapat diterima.
Langkah 6: Beli instans dan mulai tugas
Setelah Pemeriksaan Awal menunjukkan Success Rate sebesar 100%, klik Next: Purchase Instance.
Di halaman Purchase Instance, konfigurasi:
Parameter Deskripsi Resource Group Kelompok sumber daya untuk instans migrasi. Default: default resource group. Lihat Apa itu Resource Management?. Instance Class Kelas instans menentukan kecepatan migrasi. Lihat Kelas instans migrasi data. Baca dan terima Data Transmission Service (Pay-as-you-go) Service Terms.
Klik Buy and Start, lalu klik OK di dialog konfirmasi.
Pantau tugas migrasi
Buka halaman Data Migration untuk memantau kemajuan:
Full data migration only: Tugas berhenti otomatis saat selesai. Status menunjukkan Completed.
Incremental data migration included: Tugas berjalan terus-menerus dan tidak pernah berhenti otomatis. Status menunjukkan Running.
Sebelum beralih beban kerja bisnis ke MaxCompute, akhiri atau lepaskan tugas, atau gunakan perintah revoke untuk menghapus izin tulis akun DTS pada database tujuan. Hal ini diperlukan karena DTS mencoba melanjutkan tugas migrasi yang gagal yang dibuat dalam tujuh hari terakhir, dan Anda harus mencegah tugas dilanjutkan secara otomatis serta menimpa data di tujuan.
Struktur tabel log inkremental
Saat DTS menulis data inkremental ke MaxCompute, setiap tabel log inkremental mencakup bidang metadata berikut selain kolom tabel sumber.
Jalankan set odps.sql.allow.fullscan=true; di MaxCompute sebelum mengkueri tabel log inkremental.
| Bidang | Deskripsi |
|---|---|
record_id | ID unik yang meningkat secara inkremental untuk setiap catatan log. Untuk operasi UPDATE, DTS membagi perubahan menjadi dua catatan (sebelum dan sesudah pembaruan) yang memiliki record_id yang sama. |
operation_flag | Jenis operasi: I (INSERT), D (DELETE), atau U (UPDATE). |
utc_timestamp | Timestamp entri log biner, dalam UTC. |
before_flag | Apakah baris berisi nilai kolom sebelum pembaruan. Nilai: Y atau N. |
after_flag | Apakah baris berisi nilai kolom setelah pembaruan. Nilai: Y atau N. |
Pemetaan tipe data
Untuk pemetaan tipe data antara PolarDB-X 2.0 dan MaxCompute, lihat Pemetaan tipe data untuk sinkronisasi skema awal.
Langkah selanjutnya
Petakan nama objek — ganti nama tabel atau kolom di database tujuan.
Modifikasi parameter instans — sesuaikan parameter instans DTS setelah tugas dimulai.
Ikhtisar penagihan — pahami harga DTS untuk migrasi data inkremental.