Layanan Transmisi Data (DTS) memungkinkan Anda memigrasikan data dari instans PolarDB-X 2.0 ke instans Message Queue for Apache Kafka. Anda dapat menjalankan migrasi penuh satu kali atau menjaga Kafka tetap sinkron dengan perubahan inkremental yang berkelanjutan selama migrasi.
Cara kerja
DTS membaca log biner (binlog) dari instans PolarDB-X sumber untuk menangkap operasi INSERT, UPDATE, dan DELETE tingkat baris saat operasi tersebut dikomit. Untuk migrasi gabungan penuh dan inkremental, DTS pertama-tama mengambil snapshot konsisten dari data sumber, lalu beralih ke penangkapan inkremental berbasis binlog mulai dari titik selesainya snapshot tersebut.
Karena MySQL membersihkan (purge) binlog sesuai jadwal, instans sumber harus menyimpan binlog cukup lama untuk mencakup seluruh fase snapshot ditambah potensi downtime atau gangguan. Jika binlog dihapus sebelum DTS membacanya, tugas akan gagal atau terjadi kehilangan data.
Apa yang didukung DTS
| Capability | Details |
|---|---|
| Jenis migrasi | Migrasi skema, migrasi data penuh, migrasi data inkremental |
| Operasi DML inkremental | INSERT, UPDATE, DELETE |
| Format data Kafka | DTS Avro, Canal Json |
| Otentikasi Kafka | Non-encrypted, SCRAM-SHA-256 |
| Perutean partisi | Kebijakan yang dapat dikonfigurasi untuk merutekan data ke partisi Kafka |
| Pemetaan nama objek | Ubah nama tabel atau kolom di destinasi |
| Filtering data | Filtering baris berdasarkan kondisi WHERE |
| ETL | Pemrosesan ekstrak, transformasi, dan muat (ETL) selama migrasi |
DTS tidak memigrasikan kunci asing. Operasi cascade dan delete yang didefinisikan di database sumber tidak direplikasi ke Kafka.
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
Instans PolarDB-X 2.0 yang kompatibel dengan MySQL 5.7
Topik yang telah dibuat di instans Message Queue for Apache Kafka tujuan untuk menerima data yang dimigrasikan. Untuk informasi lebih lanjut, lihat Langkah 1: Buat topik
Versi yang kompatibel untuk sumber dan tujuan. Untuk informasi lebih lanjut, lihat Ikhtisar skenario migrasi data
Ruang penyimpanan yang cukup di instans Kafka tujuan untuk menampung data sumber
Izin akun database sumber:
| Jenis migrasi | Izin yang diperlukan |
|---|---|
| Migrasi skema | SELECT |
| Migrasi data penuh | SELECT |
| Migrasi data inkremental | REPLICATION SLAVE, REPLICATION CLIENT, dan SELECT pada objek yang akan dimigrasikan |
Untuk petunjuk pemberian izin, lihat Alat sinkronisasi data untuk PolarDB-X.
Konfigurasi log biner (diperlukan untuk migrasi data inkremental):
Aktifkan binary logging pada instans PolarDB-X sumber dan atur parameter berikut:
binlog_row_image=fullAtur periode retensi berdasarkan jenis migrasi Anda:
| Jenis migrasi | Periode retensi minimum |
|---|---|
| Hanya migrasi data inkremental | Lebih dari 24 jam |
| Migrasi data penuh + migrasi data inkremental | Minimal 7 hari |
Jika binlog dihapus sebelum DTS membacanya, tugas migrasi akan gagal. Untuk database sumber berukuran besar, fase migrasi data penuh (snapshot) bisa memakan waktu lebih lama daripada periode retensi. Jika binlog dihapus selama proses snapshot, DTS tidak dapat melanjutkan migrasi inkremental dari posisi binlog yang benar, sehingga menyebabkan inkonsistensi atau kehilangan data. Setelah migrasi data penuh selesai, Anda dapat mengurangi periode retensi menjadi lebih dari 24 jam.
Batasan
Source database limits:
Server yang menghosting database sumber harus memiliki bandwidth keluar yang cukup. Bandwidth yang tidak mencukupi akan mengurangi kecepatan migrasi.
Tabel yang akan dimigrasikan harus memiliki PRIMARY KEY atau Kendala UNIK dengan semua field unik. Tanpa kendala ini, destinasi mungkin berisi catatan duplikat.
Jika Anda memilih tabel sebagai objek migrasi dan perlu mengubah nama tabel atau kolom di destinasi, satu tugas migrasi mendukung maksimal 1.000 tabel. Untuk lebih dari 1.000 tabel, konfigurasikan beberapa tugas atau migrasikan seluruh database.
Selama migrasi skema dan migrasi data penuh, jangan lakukan operasi DDL pada database sumber. Perubahan DDL selama migrasi menyebabkan tugas gagal.
Jika Anda mengubah jenis jaringan instans PolarDB-X selama migrasi, perbarui pengaturan koneksi jaringan tugas migrasi tersebut sesuai.
Untuk migrasi data penuh tanpa migrasi inkremental: jangan menulis ke database sumber selama migrasi. Penulisan selama periode ini menyebabkan inkonsistensi data antara sumber dan destinasi. Untuk memastikan konsistensi, pilih bersamaan Schema Migration, Full Data Migration, dan Incremental Data Migration.
Batasan lainnya:
Evaluasi dampak performa sebelum memulai migrasi. Lakukan migrasi selama jam sepi jika memungkinkan. Migrasi data penuh mengonsumsi sumber daya baca dan tulis baik di sumber maupun destinasi.
Selama migrasi data penuh, operasi INSERT konkuren menyebabkan fragmentasi pada tabel destinasi. Setelah migrasi, ruang tabel yang digunakan di destinasi lebih besar daripada di sumber.
DTS mencoba melanjutkan tugas yang gagal hingga 7 hari. Sebelum beralih workload ke destinasi, hentikan atau lepas tugas yang gagal. Atau, jalankan pernyataan
REVOKEuntuk mencabut izin tulis dari akun DTS guna mencegah data sumber menimpa data destinasi saat tugas yang gagal dilanjutkan kembali.
Peringatan:
DTS memperbarui tabel dts_health_check.ha_health_check di database sumber secara berkala untuk memajukan posisi log biner.
Penagihan
| Jenis migrasi | Biaya konfigurasi instans | Biaya lalu lintas Internet |
|---|---|---|
| Migrasi skema dan migrasi data penuh | Gratis | Dikenakan hanya jika data dimigrasikan dari Alibaba Cloud melalui Internet. Lihat Ikhtisar penagihan |
| Migrasi data inkremental | Dikenakan biaya. Lihat Ikhtisar penagihan |
Siapkan tugas migrasi
Langkah 1: Buka halaman Tugas Migrasi Data
Login ke Konsol Data Management (DMS).
Pada bilah navigasi atas, klik DTS.
Pada panel navigasi kiri, pilih DTS (DTS) > Data Migration.
Tata letak konsol dan opsi yang tersedia dapat berbeda tergantung mode DMS Anda. Untuk informasi lebih lanjut, lihat Simple mode dan Sesuaikan tata letak dan gaya Konsol DMS. Anda juga dapat langsung menuju halaman Tugas Migrasi Data di konsol DTS baru.
Langkah 2: Konfigurasi database sumber dan tujuan
Dari daftar drop-down di samping Data Migration Tasks, pilih wilayah tempat instans migrasi berada.
Di konsol DTS baru, pilih wilayah di pojok kiri atas.
Klik Create Task. Di wizard Create Task, konfigurasikan database sumber dan tujuan.
PeringatanSetelah mengonfigurasi database sumber dan tujuan, baca limits yang ditampilkan di bagian atas halaman sebelum melanjutkan. Melewatkan langkah ini dapat menyebabkan kegagalan tugas atau inkonsistensi data.
Parameter database sumber:
Parameter Deskripsi Task Name Nama deskriptif untuk tugas. DTS memberikan nama default. Nama unik tidak wajib. Select an existing DMS database instance Pilih instans yang sudah ada agar DTS mengisi parameter secara otomatis, atau konfigurasikan secara manual. Database Type Pilih PolarDB-X 2.0. Connection Type Pilih Alibaba Cloud Instance. Instance Region Wilayah tempat instans PolarDB-X sumber berada. Instance ID ID instans PolarDB-X sumber. Database Account Akun untuk instans sumber. Lihat tabel izin di Prasyarat. Database Password Kata sandi untuk akun database. Parameter database tujuan:
Parameter Deskripsi Select an existing DMS database instance Pilih instans yang sudah ada agar DTS mengisi parameter secara otomatis, atau konfigurasikan secara manual. Database Type Pilih Kafka. Connection Type Pilih Express Connect, VPN Gateway, or Smart Access Gateway. DTS tidak mencantumkan Message Queue for Apache Kafka sebagai metode akses langsung—hubungkan ke kluster Kafka yang dikelola sendiri. Instance Region Wilayah tempat instans Message Queue for Apache Kafka tujuan berada. Connected VPC ID virtual private cloud (VPC) yang terkait dengan instans Kafka. Untuk mendapatkan ID VPC: login ke konsol Message Queue for Apache Kafka, buka halaman Detail Instans, lalu temukan ID VPC di bagian Configuration Information pada tab Instance Information. IP Address or Domain Name Alamat IP instans Kafka. Untuk mendapatkan alamat IP: pada halaman Detail Instans, temukan alamat IP di field Default Endpoint pada bagian Endpoint Information. Port Number Port layanan instans Kafka. Default: 9092. Database Account Akun untuk instans Kafka. Tidak diperlukan untuk instans terhubung-VPC. Database Password Kata sandi untuk akun database. Tidak diperlukan untuk instans terhubung-VPC. Kafka Version Versi instans Kafka tujuan. Encryption Pilih Non-encrypted atau SCRAM-SHA-256 sesuai kebutuhan keamanan Anda. Topic Topik yang menerima data yang dimigrasikan. Pilih dari daftar drop-down. Topic That Stores DDL Information Topik yang menyimpan informasi DDL. Jika dibiarkan kosong, informasi DDL disimpan di topik yang ditentukan oleh Topic. Use Kafka Schema Registry Apakah akan menggunakan Kafka Schema Registry, yang menyediakan API RESTful untuk menyimpan dan mengambil skema Avro. Pilih No untuk melewati, atau Yes dan berikan URL atau alamat IP yang terdaftar di Schema Registry untuk skema Avro Anda. Klik Test Connectivity and Proceed. DTS secara otomatis menambahkan blok CIDR-nya ke daftar putih alamat IP instans database Alibaba Cloud (seperti ApsaraDB RDS for MySQL atau ApsaraDB for MongoDB) dan ke aturan grup keamanan instans Elastic Compute Service (ECS) yang menghosting database yang dikelola sendiri. Untuk database yang dikelola sendiri di beberapa instans ECS, tambahkan secara manual blok CIDR DTS ke aturan grup keamanan setiap instans. Untuk database on-premises atau cloud pihak ketiga, tambahkan secara manual blok CIDR DTS ke daftar putih alamat IP database. Untuk informasi lebih lanjut, lihat Tambahkan blok CIDR server DTS ke pengaturan keamanan database on-premises.
PeringatanMenambahkan blok CIDR DTS ke daftar putih atau aturan grup keamanan menimbulkan risiko keamanan potensial. Sebelum menggunakan DTS, ambil langkah pencegahan: perkuat keamanan akun dan kata sandi, batasi port yang terbuka, otentikasi panggilan API, audit rutin daftar putih IP dan aturan grup keamanan ECS Anda, serta hapus blok CIDR yang tidak sah. Untuk isolasi yang lebih kuat, hubungkan database ke DTS menggunakan Express Connect, VPN Gateway, atau Smart Access Gateway.
Langkah 3: Konfigurasi objek dan pengaturan migrasi
| Parameter | Deskripsi |
|---|---|
| Migration Types | Pilih Schema Migration dan Full Data Migration untuk migrasi satu kali. Pilih Schema Migration, Full Data Migration, dan Incremental Data Migration untuk menjaga destinasi tetap sinkron selama migrasi tanpa mengganggu aplikasi Anda. Jika Anda tidak memilih Incremental Data Migration, jangan menulis ke database sumber selama migrasi untuk mencegah inkonsistensi data. |
| Processing Mode of Conflicting Tables | Precheck and Report Errors: gagal dalam pemeriksaan awal jika tabel dengan nama identik ada di sumber dan destinasi. Gunakan pemetaan nama objek untuk mengubah nama tabel destinasi sebelum menyelesaikan konflik. Ignore Errors and Proceed: melewati pemeriksaan konflik. Jika skema cocok, catatan dengan primary key duplikat tidak dimigrasikan. Jika skema berbeda, hanya kolom tertentu yang dimigrasikan atau tugas gagal. Lanjutkan dengan hati-hati. |
| Data Format in Kafka | DTS Avro: data diurai menggunakan definisi skema DTS Avro. Lihat definisi skema di GitHub. Canal Json: data disimpan dalam format Canal Json. Lihat bagian Canal Json dari Format data kluster Kafka. |
| Policy for Shipping Data to Kafka Partitions | Pilih kebijakan perutean partisi sesuai kebutuhan Anda. Lihat Tentukan kebijakan untuk memigrasikan data ke partisi Kafka. Tidak tersedia jika sumber adalah instans PolarDB-X 1.0. |
| Source Objects | Pilih satu atau beberapa objek lalu klik ikon |
| Selected Objects | Untuk mengubah nama satu objek di destinasi, klik kanan objek tersebut. Lihat Pemetaan nama objek tunggal. Untuk mengubah nama beberapa objek sekaligus, klik Batch Edit. Lihat Pemetaan nama beberapa objek sekaligus. Mengubah nama objek dapat memutus ketergantungan objek lain yang menggunakannya. Untuk memfilter baris, klik kanan objek dan tentukan kondisi WHERE. Lihat Atur kondisi filter. Untuk memilih operasi SQL tertentu untuk sebuah tabel, klik kanan objek dan pilih operasi yang akan dimigrasikan. |
Langkah 4: Konfigurasi pengaturan lanjutan
Klik Next: Advanced Settings dan konfigurasikan parameter berikut.
| Parameter | Deskripsi |
|---|---|
| Set Alerts | Pilih Yes untuk menerima notifikasi saat tugas gagal atau latensi migrasi melebihi ambang batas. Tentukan ambang batas peringatan dan kontak. Lihat Konfigurasi pemantauan dan peringatan. Pilih No untuk melewati peringatan. |
| Capitalization of Object Names in Destination Instance | Mengontrol kapitalisasi nama database, tabel, dan kolom di destinasi. Default: DTS default policy. Lihat Tentukan kapitalisasi nama objek di instans destinasi. |
| Retry Time for Failed Connections | Durasi DTS mencoba koneksi ulang setelah tugas dimulai. Nilai valid: 10–1440 menit. Default: 720 menit. Atur nilai ini lebih dari 30 menit. Jika DTS terhubung kembali dalam jendela ini, tugas dilanjutkan. Jika tidak, tugas gagal. Saat beberapa tugas berbagi sumber atau destinasi yang sama, waktu retry terpendek di antara mereka yang berlaku. DTS membebankan biaya instans selama upaya retry—atur jendela retry sesuai kebutuhan dan lepas instans segera setelah sumber dan destinasi dihentikan. |
| Configure ETL | Pilih Yes untuk mengaktifkan pemrosesan ekstrak, transformasi, dan muat (ETL) serta masukkan pernyataan pemrosesan data. Lihat Apa itu ETL? dan Konfigurasi ETL dalam tugas migrasi atau sinkronisasi data. Pilih No untuk melewati ETL. |
| Whether to delete SQL operations on heartbeat tables of forward and reverse tasks | Pilih Yes untuk menekan penulisan ke tabel heartbeat. Latensi migrasi mungkin muncul di instans DTS. Pilih No untuk mengizinkan DTS menulis ke tabel heartbeat. Beberapa fitur database sumber seperti backup fisik dan cloning mungkin terpengaruh. |
Langkah 5: Jalankan pemeriksaan awal dan beli instans
Klik Next: Save Task Settings and Precheck. Untuk melihat pratinjau parameter OpenAPI untuk konfigurasi tugas ini, arahkan kursor ke Next: Save Task Settings and Precheck lalu klik Preview OpenAPI parameters.
DTS menjalankan pemeriksaan awal sebelum memulai migrasi. Tugas hanya dimulai setelah pemeriksaan awal berhasil. Jika pemeriksaan awal gagal, klik View Details di samping setiap item yang gagal, selesaikan masalah yang dilaporkan, lalu klik Precheck Again. Jika peringatan dipicu dan dapat diabaikan, klik Confirm Alert Details, lalu klik Ignore di dialog View Details, klik OK, dan klik Precheck Again. Mengabaikan peringatan dapat menyebabkan inkonsistensi data.
Tunggu hingga laju keberhasilan mencapai 100%, lalu klik Next: Purchase Instance.
Pada halaman Purchase Instance, konfigurasikan kelas instans.
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. Pilih berdasarkan beban kerja Anda. Lihat Spesifikasi instans migrasi data. Baca dan centang kotak Data Transmission Service (Pay-as-you-go) Service Terms.
Klik Buy and Start. Tugas muncul di daftar tugas dan mulai berjalan.
Langkah selanjutnya
Setelah tugas migrasi berjalan, pantau progresnya di daftar tugas. Setelah tugas stabil dan instans Kafka tujuan mengonsumsi data dengan benar, alihkan aplikasi downstream Anda untuk membaca dari topik tujuan. Sebelum beralih, hentikan atau lepas tugas yang gagal untuk mencegah DTS menimpa data tujuan saat melanjutkan kembali.