Gunakan Data Transmission Service (DTS) untuk mereplikasi data dari klaster PolarDB for MySQL ke proyek MaxCompute. DTS menangani sinkronisasi skema, pemuatan data penuh awal, dan penangkapan perubahan inkremental berkelanjutan dalam satu tugas terkelola.
Sebelum memulai
Sebelum memulai, pastikan Anda telah:
Membuat proyek MaxCompute. Lihat Aktifkan MaxCompute dan DataWorks dan Buat proyek MaxCompute.
Mengonfigurasi daftar putih MaxCompute untuk mengizinkan akses DTS. Lihat Konfigurasi daftar putih agar layanan Alibaba Cloud dapat mengakses MaxCompute.
Memiliki pasangan AccessKey untuk Akun Alibaba Cloud yang memiliki proyek MaxCompute tujuan. Lihat Buat pasangan AccessKey.
Sebagai alternatif penggunaan langsung pasangan AccessKey Akun Alibaba Cloud, buat Pengguna RAM dan tetapkan Pengguna RAM sebagai super administrator untuk proyek MaxCompute.
Penagihan
| Jenis sinkronisasi | Biaya |
|---|---|
| Sinkronisasi skema dan sinkronisasi data penuh | Gratis |
| Sinkronisasi data inkremental | Dikenai biaya. Lihat Ikhtisar penagihan. |
Cara kerja sinkronisasi
DTS menjalankan sinkronisasi dalam tiga tahap berurutan:
Schema Synchronization — DTS mereplikasi skema tabel dari PolarDB for MySQL ke MaxCompute. Setiap tabel sumber menerima akhiran
_basedi MaxCompute (misalnya,customermenjadicustomer_base).Full data synchronization — DTS menyalin semua baris yang ada dari tabel sumber ke tabel
_baseyang sesuai. Tabel garis dasar penuh ini menjadi titik awal untuk sinkronisasi inkremental.Incremental Data Synchronization — DTS membuat tabel
_loguntuk setiap tabel sumber (misalnya,customer_log) dan terus-menerus menulis catatan perubahan dari log biner sumber ke tabel tersebut.
Untuk struktur tabel _log, lihat Struktur tabel data inkremental.
Topologi sinkronisasi yang didukung
Sinkronisasi satu arah satu-ke-satu
Sinkronisasi satu arah satu-ke-banyak
Sinkronisasi satu arah cascade
Sinkronisasi satu arah banyak-ke-satu
Untuk daftar lengkapnya, lihat Topologi sinkronisasi.
Operasi SQL yang dapat disinkronkan
| Jenis operasi | Pernyataan SQL |
|---|---|
| DML | INSERT, UPDATE, DELETE |
| DDL | ADD COLUMN (ADD COLUMN dengan kolom atribut tidak dapat disinkronkan) |
DTS tidak menyinkronkan kunci asing. Operasi cascade dan delete pada sumber tidak direplikasi ke tujuan.
Batasan
Source Database
| Batasan | Rincian |
|---|---|
| Kunci utama atau kunci unik wajib | Tabel harus memiliki kendala PRIMARY KEY atau UNIQUE dengan semua bidang unik; jika tidak, catatan duplikat mungkin muncul di tujuan. |
| Batas tabel per tugas | Jika Anda memilih tabel individual sebagai objek sinkronisasi dan perlu mengganti namanya di tujuan, satu tugas mendukung hingga 1.000 tabel. Untuk lebih dari 1.000 tabel, konfigurasikan beberapa tugas atau sinkronkan pada tingkat database. |
| Persyaratan log biner | Lihat tabel di bawah. |
| DDL selama sinkronisasi | Jangan menjalankan pernyataan DDL yang mengubah skema database atau tabel selama sinkronisasi skema atau sinkronisasi data penuh. Tugas akan gagal. |
Persyaratan log biner untuk klaster PolarDB for MySQL sumber
| Parameter | Nilai yang diperlukan | Catatan |
|---|---|---|
loose_polar_log_bin | ON | Binary logging harus diaktifkan. Jika tidak diatur, pemeriksaan awal gagal dan tugas tidak dapat dimulai. Mengaktifkan binary logging dikenai biaya penyimpanan. Lihat Aktifkan binary logging dan Ubah parameter. |
| Periode retensi log biner | Minimal 3 hari (disarankan 7 hari) | Periode retensi kurang dari 3 hari berisiko menyebabkan inkonsistensi atau kehilangan data dan dapat memengaruhi jaminan perjanjian tingkat layanan (SLA) DTS. Lihat Ubah periode retensi. |
Batasan lainnya
DTS tidak menyinkronkan node read-only dari klaster PolarDB for MySQL sumber.
DTS tidak menyinkronkan tabel eksternal Object Storage Service (OSS) dari klaster sumber.
Evaluasi dampak terhadap kinerja database sumber dan tujuan sebelum memulai sinkronisasi. Jalankan sinkronisasi selama jam sepi jika memungkinkan. Sinkronisasi data penuh awal menggunakan sumber daya baca dan tulis di kedua sisi dan dapat meningkatkan beban server.
Setelah sinkronisasi data penuh awal selesai, ukuran ruang tabel yang digunakan di database tujuan lebih besar daripada sumber karena fragmentasi dari operasi INSERT bersamaan.
Jangan gunakan alat seperti pt-online-schema-change untuk menjalankan operasi DDL pada tabel sumber selama sinkronisasi. Tugas akan gagal.
Jika tidak ada sumber lain yang menulis ke tujuan selama sinkronisasi, Anda dapat menggunakan Data Management (DMS) untuk menjalankan operasi DDL online pada tabel sumber. Lihat Lakukan operasi DDL tanpa lock.
Jika sumber lain menulis ke tujuan saat Anda juga menjalankan DDL online melalui DMS, kehilangan data dapat terjadi di tujuan.
MaxCompute tidak mendukung kendala PRIMARY KEY. Jika terjadi error jaringan, DTS mungkin menulis catatan duplikat ke proyek MaxCompute.
Jika tugas DTS gagal, dukungan teknis DTS akan mencoba memulihkan tugas dalam waktu 8 jam. Selama pemulihan, tugas mungkin dimulai ulang dan parameter tugas (bukan parameter database) mungkin diubah. Untuk parameter yang mungkin berubah, lihat bagian Ubah parameter instans.
Kasus khusus
DTS secara berkala mengeksekusi CREATE DATABASE IF NOT EXISTS \test\`` pada database sumber untuk memajukan posisi log biner.
Buat tugas sinkronisasi data
Langkah 1: Buka halaman Sinkronisasi Data
Gunakan salah satu konsol berikut untuk membuka halaman Sinkronisasi Data dan pilih wilayah tempat instans sinkronisasi akan berada.
Konsol DTS
Masuk ke Konsol DTS.
Di panel navigasi kiri, klik Data Synchronization.
Di pojok kiri atas halaman, pilih wilayah tempat instans sinkronisasi data berada.
Konsol DMS
Operasi aktual dapat berbeda tergantung pada mode dan tata letak Konsol DMS. Untuk informasi selengkapnya, lihat Mode simple dan Sesuaikan tata letak dan gaya Konsol DMS.
Masuk ke Konsol DMS.
Di bilah navigasi atas, arahkan kursor ke Data + AI lalu pilih .
Dari daftar drop-down di sebelah kanan Data Synchronization Tasks, pilih wilayah tempat instans sinkronisasi data berada.
Langkah 2: Konfigurasi database sumber dan tujuan
Klik Create Task untuk membuka halaman konfigurasi tugas.
Konfigurasikan database sumber dan tujuan menggunakan parameter berikut.
| Bagian | Parameter | Deskripsi |
|---|---|---|
| N/A | Task Name | Nama tugas DTS. DTS menghasilkan nama secara otomatis. Tentukan nama deskriptif untuk memudahkan identifikasi. Nama tidak perlu unik. |
| Source Database | Select Existing Connection | Jika sumber sudah terdaftar di DTS, pilih dari daftar drop-down dan DTS akan mengisi parameter lainnya secara otomatis. Lihat Kelola koneksi database. Di Konsol DMS, pilih instans dari daftar Select a DMS database instance. Jika instans belum terdaftar, isi parameter di bawah ini secara manual. |
| Database Type | Pilih PolarDB for MySQL. | |
| Connection Type | Pilih Alibaba Cloud Instance. | |
| Instance Region | Wilayah klaster PolarDB for MySQL sumber. | |
| Cross-account | Pilih No untuk menyinkronkan dalam Akun Alibaba Cloud yang sama. | |
| PolarDB Cluster ID | ID klaster PolarDB for MySQL sumber. | |
| Database Account | Akun untuk klaster sumber. Akun harus memiliki izin baca pada objek yang akan disinkronkan. | |
| Database Password | Kata sandi untuk akun database. | |
| Encryption | Opsional. Aktifkan enkripsi SSL untuk koneksi ke klaster sumber berdasarkan kebutuhan keamanan Anda. Lihat Konfigurasi enkripsi SSL. | |
| Destination Database | Select Existing Connection | Jika tujuan sudah terdaftar di DTS, pilih dari daftar drop-down. Lihat Kelola koneksi database. Jika belum terdaftar, isi parameter di bawah ini secara manual. |
| Database Type | Pilih MaxCompute. | |
| Connection Type | Pilih Alibaba Cloud Instance. | |
| Instance Region | Wilayah proyek MaxCompute tujuan. | |
| Project | Nama proyek MaxCompute. | |
| AccessKey ID of Alibaba Cloud Account | ID AccessKey dari prasyarat Anda. | |
| AccessKey Secret of Alibaba Cloud Account | Rahasia AccessKey dari prasyarat Anda. |
Klik Test Connectivity and Proceed.
DTS harus dapat mengakses database sumber dan tujuan. Jika diperlukan, tambahkan blok CIDR server DTS ke pengaturan keamanan database Anda. Lihat Tambahkan blok CIDR server DTS.
Klik OK untuk menyelesaikan otorisasi akun ODPS (MaxCompute), lalu klik Test Connectivity and Proceed lagi.
Langkah 3: Konfigurasi objek sinkronisasi
Pada langkah Configure Objects, atur parameter berikut.
| Parameter | Deskripsi |
|---|---|
| Synchronization Types | Secara default, Incremental Data Synchronization dipilih. Pilih juga Schema Synchronization dan Full Data Synchronization. Ketiganya diperlukan untuk menetapkan data garis dasar dan menangkap perubahan berkelanjutan. |
| Naming Rules of Additional Columns | DTS menambahkan kolom metadata ke tabel tujuan. Jika nama kolom tersebut bertentangan dengan nama kolom yang sudah ada, tugas akan gagal. Pilih New Rule atau Previous Rule sesuai kebutuhan Anda. Sebelum memilih, verifikasi bahwa tidak ada konflik nama antara kolom tambahan dan kolom tujuan yang sudah ada. Lihat Aturan penamaan untuk kolom tambahan. |
| Partition Definition of Incremental Data Table | Pilih nama partisi sesuai kebutuhan Anda. Lihat Partisi. |
| Processing Mode of Conflicting Tables | Precheck and Report Errors: Memeriksa apakah tabel tujuan memiliki nama yang sama dengan tabel sumber. Jika nama identik ditemukan, kesalahan dikembalikan dan tugas tidak dapat dimulai. Untuk menyelesaikan konflik tanpa menghapus tabel tujuan, gunakan fitur pemetaan nama objek. Lihat Pemetaan nama objek. Ignore Errors and Proceed: Melewati pemeriksaan konflik nama. Jika tabel sumber dan tujuan memiliki skema yang sama, DTS melewati catatan yang bertentangan selama sinkronisasi penuh tetapi menimpanya selama sinkronisasi inkremental. Jika skema berbeda, inisialisasi data mungkin sebagian gagal. Gunakan dengan hati-hati. |
| Capitalization of Object Names in Destination Instance | Mengontrol kapitalisasi nama database, tabel, dan kolom di tujuan. Default adalah DTS default policy. Lihat Tentukan kapitalisasi nama objek di instans tujuan. |
| Source Objects | Pilih tabel dari bagian Source Objects lalu klik ikon panah kanan untuk memindahkannya ke bagian Selected Objects. |
| Selected Objects | Untuk mengganti nama satu objek di tujuan, klik kanan objek tersebut di bagian Selected Objects. Lihat Pemetaan nama satu objek. Untuk mengganti nama beberapa objek sekaligus, klik Batch Edit di pojok kanan atas. Lihat Pemetaan nama beberapa objek sekaligus. |
Klik Next: Advanced Settings dan konfigurasikan parameter berikut.
| Parameter | Deskripsi |
|---|---|
| Dedicated Cluster for Task Scheduling | Secara default, DTS menjadwalkan tugas ke klaster bersama. Untuk meningkatkan stabilitas tugas, beli dan tentukan klaster khusus. Lihat Apa itu klaster khusus DTS. |
| Retry Time for Failed Connections | Berapa lama DTS mencoba ulang setelah kegagalan koneksi. Nilai valid: 10–1440 menit. Default: 720 menit. Kami menyarankan Anda mengatur parameter ini ke nilai lebih dari 30. Jika DTS terhubung kembali dalam jendela ini, tugas dilanjutkan; jika tidak, tugas gagal. Jika beberapa tugas berbagi database sumber atau tujuan yang sama, waktu coba ulang terpendek yang berlaku. DTS mengenakan biaya untuk instans selama mencoba ulang. |
| Retry Time for Other Issues | Berapa lama DTS mencoba ulang setelah kegagalan operasi DDL atau DML. Nilai valid: 1–1440 menit. Default: 10 menit. Kami menyarankan Anda mengatur parameter ini ke nilai lebih dari 10. Nilai ini harus lebih kecil dari Retry Time for Failed Connections. |
| Enable Throttling for Full Data Synchronization | Membatasi penggunaan sumber daya selama sinkronisasi data penuh dengan mengonfigurasi Queries per second (QPS) to the source database, RPS of Full Data Migration, dan Data migration speed for full migration (MB/s). Tersedia hanya jika Full Data Synchronization dipilih. |
| Enable Throttling for Incremental Data Synchronization | Membatasi penggunaan sumber daya selama sinkronisasi inkremental dengan mengonfigurasi RPS of Incremental Data Synchronization dan Data synchronization speed for incremental synchronization (MB/s). |
| Whether to delete SQL operations on heartbeat tables of forward and reverse tasks | Mengontrol apakah DTS menulis operasi SQL heartbeat ke database sumber. Yespengaturan pemberitahuan peringatan: Tidak menulis operasi heartbeat. Indikator latensi mungkin muncul untuk instans DTS. No: Menulis operasi heartbeat. Backup fisik dan kloning database sumber mungkin terpengaruh. |
| Environment Tag | Tag opsional untuk mengidentifikasi instans DTS. |
| Configure ETL | Mengaktifkan fitur ekstrak, transformasi, dan muat (ETL). Yes: Membuka editor kode untuk pernyataan pemrosesan data. Lihat Konfigurasi ETL dalam tugas migrasi data atau sinkronisasi data. No: Melewatkan konfigurasi ETL. Lihat Apa itu ETL? |
| Monitoring and Alerting | Mengonfigurasi peringatan untuk kegagalan tugas atau latensi yang melebihi ambang batas. No: Menonaktifkan peringatan. Yes: Mengaktifkan peringatan. Atur ambang batas peringatan dan pengaturan notifikasi. Lihat Konfigurasi pemantauan dan peringatan saat membuat tugas DTS. |
Langkah 4: Jalankan pemeriksaan awal
Klik Next: Save Task Settings and Precheck.
Untuk melihat pratinjau parameter API untuk konfigurasi tugas ini, arahkan kursor ke Next: Save Task Settings and Precheck lalu klik Preview OpenAPI parameters sebelum melanjutkan.
DTS menjalankan pemeriksaan awal sebelum tugas dapat dimulai.
Jika pemeriksaan awal gagal, klik View Details di sebelah item yang gagal, selesaikan masalahnya, lalu klik Precheck Again.
Jika peringatan dipicu:
Jika peringatan tidak dapat diabaikan, klik View Details, perbaiki masalahnya, lalu jalankan ulang pemeriksaan awal.
Jika peringatan dapat diabaikan, klik Confirm Alert Details, lalu klik Ignore di kotak dialog, konfirmasi dengan OK, dan klik Precheck Again. Mengabaikan peringatan dapat menyebabkan inkonsistensi data.
Langkah 5: Beli instans
Tunggu hingga Success Rate mencapai 100%, lalu klik Next: Purchase Instance.
Di halaman buy, konfigurasikan pengaturan penagihan dan instans.
| Bagian | Parameter | Deskripsi |
|---|---|---|
| New Instance Class | Metode penagihan | Subscription: Bayar di muka untuk periode tetap. Lebih hemat biaya untuk penggunaan jangka panjang. Pay-as-you-go: Ditagih per jam. Cocok untuk penggunaan jangka pendek. Lepaskan instans saat tidak lagi diperlukan untuk menghentikan penagihan. |
| Instance class | Mengontrol kecepatan sinkronisasi. Pilih kelas berdasarkan kebutuhan throughput Anda. Lihat Kelas instans untuk instansi sinkronisasi data. | |
| Durasi langganan | Tersedia hanya untuk penagihan langganan. Opsi: 1–9 bulan, 1 tahun, 2 tahun, 3 tahun, atau 5 tahun. | |
| Pengaturan kelompok sumber daya | — | Kelompok sumber daya untuk instans. Default: default resource group. Lihat Apa itu Resource Management? |
Baca dan pilih Data Transmission Service (Pay-as-you-go) Service Terms.
Klik Buy and Start, lalu klik OK di dialog konfirmasi.
Tugas muncul di daftar tugas. Pantau perkembangannya di sana.
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.Setiap tabel data inkremental (_log table) berisi kolom sumber asli ditambah bidang metadata berikut yang ditambahkan oleh DTS.
| Bidang | Deskripsi |
|---|---|
record_id | ID unik dan inkremental untuk setiap entri log. Untuk operasi UPDATE, DTS membagi perubahan menjadi dua catatan (nilai sebelum dan sesudah) yang berbagi 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 | Menunjukkan apakah nilai baris mewakili status sebelum pembaruan. Nilai valid: Y atau N. |
after_flag | Menunjukkan apakah nilai baris mewakili status setelah pembaruan. Nilai valid: Y atau N. |