Data Transmission Service (DTS) memungkinkan Anda melakukan migrasi data dari kluster PolarDB for MySQL ke kluster ApsaraDB for ClickHouse, sehingga mendukung analitik terpusat atas data operasional Anda.
Langkah-langkah minimum untuk menyelesaikan migrasi ini:
Penuhi prasyarat (versi kluster ClickHouse dan pengaktifan binary logging jika diperlukan).
Berikan izin yang diperlukan pada database sumber dan tujuan.
Buat dan konfigurasikan tugas migrasi DTS.
Jalankan pemeriksaan awal, beli instans, dan mulai migrasi.
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
Kluster ApsaraDB for ClickHouse yang menjalankan versi 20.8 atau lebih baru. Lihat Buat kluster.
Kluster ClickHouse dengan kapasitas penyimpanan lebih besar daripada kapasitas yang digunakan oleh kluster PolarDB for MySQL sumber.
Untuk migrasi data inkremental: binary logging harus diaktifkan pada kluster sumber, dengan parameter
loose_polar_log_bindiatur keon. Lihat Aktifkan binary logging dan Modifikasi parameter.
Pengaktifan binary logging pada kluster PolarDB for MySQL akan dikenakan biaya penyimpanan untuk file log biner. Atur periode retensi log biner menjadi minimal 3 hari (disarankan 7 hari) untuk mencegah DTS kehilangan akses ke log tersebut. Lihat Modifikasi periode retensi.
Penagihan
Jenis migrasi | Biaya penyiapan koneksi | Biaya transfer data |
Migrasi skema + migrasi data penuh | Gratis | Gratis |
Migrasi data inkremental | Dikenakan biaya | Lihat Ikhtisar penagihan |
Izin yang diperlukan
Berikan izin berikut sebelum mengonfigurasi tugas migrasi.
Database | Izin yang diperlukan | Cara memberikan |
Kluster PolarDB for MySQL sumber | Izin baca pada objek migrasi | Buat dan kelola akun database dan Kelola password akun database |
Kluster ApsaraDB for ClickHouse tujuan (v22.8 atau lebih baru) | Izin baca dan tulis — akun istimewa memenuhi persyaratan ini | |
Kluster ApsaraDB for ClickHouse tujuan (v21.8) | Izin Baca, Tulis, dan Setel Izin; serta Aktifkan DDL | Sama seperti di atas |
Batasan
Batasan database sumber
Server database sumber harus memiliki bandwidth outbound yang mencukupi; bandwidth rendah akan mengurangi kecepatan migrasi.
Satu tugas migrasi mendukung maksimal 1.000 tabel saat melakukan migrasi tingkat tabel dengan pemetaan nama objek. Jika melebihi batas ini, bagi tabel ke beberapa tugas atau lakukan migrasi tingkat database.
Selama migrasi skema dan migrasi data penuh, jangan jalankan operasi DDL pada database sumber — hal ini dapat menyebabkan tugas migrasi gagal.
Selama migrasi data penuh, DTS melakukan kueri ke database sumber dan dapat membuat kunci metadata yang secara sementara memblokir operasi DDL.
Jika hanya menjalankan migrasi data penuh (tanpa inkremental), jangan menulis data baru ke database sumber selama migrasi, karena akan menyebabkan ketidakkonsistenan data.
Batasan lainnya
Node read-only dari kluster PolarDB for MySQL sumber tidak dapat dimigrasikan.
Tabel eksternal Object Storage Service (OSS) tidak dimigrasikan.
Jenis objek berikut tidak didukung: INDEX, PARTITION, VIEW, PROCEDURE, FUNCTION, TRIGGER, dan FOREIGN KEY (FK).
Alih bencana primary/standby tidak didukung selama migrasi data penuh. Jika alih bencana terjadi, konfigurasi ulang tugas migrasi.
Operasi RENAME TABLE tidak dapat dimigrasikan.
Jumlah maksimum database yang dapat dimigrasikan adalah 256 (batasan ApsaraDB for ClickHouse).
Nama database, tabel, dan kolom harus mematuhi Konvensi penamaan ApsaraDB for ClickHouse.
Partition Key tidak boleh merupakan bidang nullable. Partition key hanya mendukung tipe data BIGINT, INT, TIMESTAMP, DATETIME, dan DATE.
Data bertipe waktu di ApsaraDB for ClickHouse memiliki batasan rentang tertentu. Lihat Rentang tipe data waktu untuk detailnya.
Saat migrasi skema diaktifkan, DTS secara otomatis menambahkan bidang
_sign,_is_deleted, dan_versionke tabel tujuan. Jika Anda melewati migrasi skema, buat tabel tujuan secara manual dengan bidang-bidang tersebut. Lihat Persyaratan tabel tujuan.Selama migrasi DTS, jangan menulis data dari sumber lain ke database tujuan — hal ini menyebabkan ketidakkonsistenan data.
Jika instans DTS gagal, tim DTS berusaha memulihkannya dalam waktu 8 jam. Operasi pemulihan dapat mencakup restart instans dan penyesuaian parameter instans DTS (parameter database tidak pernah dimodifikasi).
Sebelum migrasi, evaluasi performa kedua database dan jalankan migrasi selama jam sepi untuk mengurangi beban.
Jika Anda memigrasikan tabel tertentu (bukan seluruh database), jangan gunakan pt-online-schema-change untuk perubahan DDL online pada tabel tersebut — hal ini menyebabkan kegagalan migrasi. Gunakan Data Management (DMS) sebagai gantinya. Lihat Ubah skema tanpa mengunci tabel.
Migrasi data bertipe VECTOR tidak didukung.
Batasan DDL Online
Alat atau mode | Perilaku |
DMS atau gh-ost (perubahan DDL online di sumber) | DTS memigrasikan pernyataan DDL asli ke tujuan tanpa memigrasikan data tabel temporary, yang dapat menyebabkan penguncian tabel di tujuan. |
pt-online-schema-change | Tidak didukung. Data dapat hilang di tujuan atau instans migrasi dapat gagal. |
Mode DDL online berbasis tabel temporary (termasuk penggabungan multi-tabel) | Data dapat hilang di tujuan atau instans migrasi dapat gagal. |
Sintaks DDL MySQL non-standar di sumber | Migrasi dapat gagal atau data dapat hilang. |
Operasi SQL yang didukung untuk migrasi inkremental
Jenis operasi | Pernyataan SQL yang didukung | Pernyataan SQL yang tidak didukung |
DML | INSERT, UPDATE, DELETE | — |
DDL | CREATE TABLE, TRUNCATE TABLE, DROP TABLE, ADD COLUMN, MODIFY COLUMN, DROP COLUMN | RENAME TABLE; semua DDL terkait INDEX, PARTITION, VIEW, PROCEDURE, FUNCTION, TRIGGER, dan FOREIGN KEY |
Pemetaan tipe data
PolarDB for MySQL dan ApsaraDB for ClickHouse mendukung tipe data yang berbeda, sehingga pemetaan satu-ke-satu tidak selalu memungkinkan. Selama migrasi skema, DTS memetakan tipe data sumber ke tipe yang paling mendekati di ClickHouse. Lihat Pemetaan tipe data antar database heterogen untuk tabel pemetaan lengkap.
Buat tugas migrasi
Langkah 1: Buka halaman Migrasi Data
Gunakan salah satu konsol berikut.
Konsol DTS
Login ke Konsol DTS.
Di panel navigasi kiri, klik Data Migration.
Di pojok kiri atas, pilih wilayah tempat instans migrasi akan berada.
Konsol DMS
Langkah-langkah tepatnya dapat berbeda tergantung pada mode dan tata letak konsol DMS Anda. Lihat Mode simple dan Sesuaikan tata letak dan gaya konsol DMS.
Login ke 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, lalu isi parameter berikut.
Kategori | Parameter | Deskripsi |
— | Task Name | Nama untuk tugas DTS. DTS menghasilkan nama secara otomatis. Tentukan nama deskriptif agar tugas mudah diidentifikasi. Nama tidak perlu unik. |
Source Database | Select Existing Connection | Pilih instans database terdaftar dari daftar drop-down — DTS akan mengisi parameter lainnya secara otomatis. Jika instans belum terdaftar, isi parameter secara manual. Di konsol DMS, gunakan daftar drop-down Select a DMS database instance. |
Database Type | Pilih PolarDB for MySQL. | |
Access Method | Pilih Alibaba Cloud Instance. | |
Instance Region | Pilih wilayah tempat kluster PolarDB for MySQL sumber berada. | |
Replicate Data Across Alibaba Cloud Accounts | Pilih No untuk migrasi dalam akun yang sama. | |
PolarDB Cluster ID | Pilih ID kluster PolarDB for MySQL sumber. | |
Database Account | Masukkan akun database. Lihat Izin yang diperlukan. | |
Database Password | Masukkan password untuk akun database. | |
Encryption | Pilih metode enkripsi sesuai kebutuhan. Untuk enkripsi Secure Sockets Layer (SSL), lihat Atur enkripsi SSL. | |
Destination Database | Select Existing Connection | Sama seperti sumber — pilih instans terdaftar atau isi parameter secara manual. |
Database Type | Pilih ClickHouse. | |
Access Method | Pilih Alibaba Cloud Instance. | |
Instance Region | Pilih wilayah tempat kluster ApsaraDB for ClickHouse tujuan berada. | |
Replicate Data Across Alibaba Cloud Accounts | Pilih No untuk migrasi dalam akun yang sama. | |
Cluster Type | Pilih tipe kluster ApsaraDB for ClickHouse. | |
Cluster ID | Pilih ID kluster ApsaraDB for ClickHouse tujuan. | |
Database Account | Masukkan akun database. Lihat Izin yang diperlukan. | |
Database Password | Masukkan password untuk akun database. |
Klik Test Connectivity and Proceed.
Pastikan Blok CIDR server DTS telah ditambahkan ke pengaturan keamanan (daftar putih) kedua database. Lihat Tambahkan alamat IP server DTS ke daftar putih.
Langkah 3: Konfigurasi objek yang akan dimigrasikan
Di halaman Configure Objects, atur parameter berikut.
Parameter | Deskripsi |
Migration Types | Pilih jenis migrasi sesuai tujuan Anda: <br>• Schema Migration + Full Data Migration: salinan data satu kali, tanpa replikasi berkelanjutan. <br>• Schema Migration + Full Data Migration + Incremental Data Migration: replikasi berkelanjutan yang menjaga sinkronisasi tujuan selama sumber tetap aktif. <br><br> Catatan Jika Anda melewatkan Schema Migration, buat tabel tujuan secara manual sebelum memulai. Jika Anda melewatkan Incremental Data Migration, hindari menulis ke database sumber selama migrasi. |
Processing Mode of Conflicting Tables | Precheck and Report Errors (default): pemeriksaan awal gagal jika tabel tujuan memiliki nama yang sama dengan tabel sumber. Gunakan pemetaan nama objek untuk mengganti nama tabel jika diperlukan. <br><br>Ignore Errors and Proceed: lewati pemeriksaan. Selama migrasi data penuh, catatan yang bentrok di tujuan dipertahankan; selama migrasi inkremental, catatan tersebut ditimpa. Jika skema berbeda, hanya kolom yang sesuai yang dimigrasikan. Gunakan dengan hati-hati. |
Capitalization of Object Names in Destination Instance | Mengatur kapitalisasi nama database, tabel, dan kolom di tujuan. Default adalah Kebijakan default DTS. Lihat Tentukan kapitalisasi nama objek di instans tujuan. |
Source Objects | Pilih database atau tabel dari bagian Source Objects, lalu klik ikon panah untuk menambahkannya ke Selected Objects. |
Selected Objects | Klik kanan objek untuk mengganti namanya. Klik Batch Edit untuk mengganti nama beberapa objek sekaligus. Klik kanan tabel untuk mengatur kondisi filter data. Lihat Pemetaan nama objek dan Atur kondisi filter Untuk memilih operasi SQL untuk tabel, klik kanan objek yang sesuai di kotak Selected Objects dan pilih operasi yang diinginkan dari kotak dialog yang muncul. Untuk daftar operasi yang didukung, lihat Operasi SQL yang dapat dimigrasikan secara inkremental. . |
Langkah 4: Konfigurasi pengaturan lanjutan
Klik Next: Advanced Settings dan konfigurasikan hal berikut.
Parameter | Deskripsi |
Dedicated Cluster for Task Scheduling | Secara default, DTS menjadwalkan tugas ke kluster bersama. Beli kluster khusus untuk meningkatkan stabilitas. Lihat Apa itu kluster khusus DTS. |
Time zone of destination database | Zona waktu untuk data tanggal dan waktu (seperti DateTime) yang ditulis ke kluster ClickHouse tujuan. |
Retry Time for Failed Connections | Berapa lama DTS mencoba kembali koneksi yang gagal sebelum tugas dianggap gagal. Rentang: 10–1.440 menit. Default: 720 menit. Atur ke nilai lebih dari 30 menit. <br><br> Catatan Jika beberapa tugas menggunakan database sumber atau tujuan yang sama, nilai yang paling baru diatur akan berlaku. DTS mengenakan biaya untuk instans selama masa percobaan ulang. |
Retry Time for Other Issues | Berapa lama DTS mencoba kembali operasi DDL atau DML yang gagal sebelum tugas dianggap gagal. Rentang: 1–1.440 menit. Default: 10 menit. Atur ke nilai lebih dari 10 menit. Harus kurang dari Retry Time for Failed Connections. |
Enable Throttling for Full Data Migration | Membatasi beban baca/tulis pada sumber dan tujuan selama migrasi data penuh. Konfigurasikan Queries per second (QPS) to the source database, rows per second (RPS) of Full Data Migration, dan Data migration speed for full migration (MB/s). Tersedia hanya jika 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). Tersedia hanya jika Incremental Data Migration dipilih. |
Whether to delete SQL operations on heartbeat tables of forward and reverse tasks | Mengatur apakah DTS menulis operasi SQL tabel heartbeat ke sumber selama instans berjalan. Yes: penulisan heartbeat ditekan, tetapi indikator latensi mungkin ditampilkan. No: penulisan heartbeat diaktifkan, yang dapat memengaruhi backup fisik dan kloning database sumber. |
Environment Tag | Tag opsional untuk mengidentifikasi lingkungan (misalnya, produksi atau uji coba). |
Configure ETL | Mengaktifkan fitur ekstrak, transformasi, dan muat (ETL). Yes: masukkan pernyataan pemrosesan data di editor kode. Lihat Konfigurasi ETL dalam tugas migrasi data atau sinkronisasi data. No: lewati konfigurasi ETL. |
Monitoring and Alerting | Mengonfigurasi peringatan untuk kegagalan tugas atau latensi yang melebihi ambang batas. Yes: atur ambang batas peringatan dan kontak notifikasi. Lihat Konfigurasi pemantauan dan peringatan. No: tanpa peringatan. |
Langkah 5: Konfigurasi bidang tabel untuk ClickHouse
Klik Next: Configure Database and Table Fields dan konfigurasikan Type, Primary Key Column, Sort Key, Distribution Key, dan Partition Key untuk setiap tabel yang dimigrasikan.
DTS menyediakan konfigurasi default. Untuk meninjau atau memodifikasinya, atur Definition Status ke All.
Aturan utama:
Primary Key Column dan Sort Key mendukung kunci komposit — pilih beberapa bidang dari daftar drop-down.
Pilih satu atau beberapa kolom dari Primary Key Column untuk dijadikan Partition Key.
Distribution Key hanya mendukung satu bidang.
Biarkan Partition Key kosong jika tidak diperlukan, tetapi jangan pilih bidang nullable — hal ini menyebabkan tugas migrasi gagal.
Partition key hanya mendukung BIGINT, INT, TIMESTAMP, DATETIME, dan DATE. Lihat Logika perhitungan partition key.
Untuk informasi lebih lanjut tentang primary key, sort key, dan partition key, lihat CREATE TABLE.
Langkah 6: Jalankan pemeriksaan awal dan mulai migrasi
Klik Next: Save Task Settings and Precheck. Untuk melihat pratinjau parameter API untuk tugas ini, arahkan kursor ke Next: Save Task Settings and Precheck dan klik Preview OpenAPI parameters sebelum melanjutkan.
DTS menjalankan pemeriksaan awal sebelum memulai migrasi. Jika pemeriksaan awal gagal:
Klik View Details di samping setiap item yang gagal, perbaiki masalahnya, lalu klik Precheck Again.
Jika suatu item menampilkan peringatan (bukan kegagalan) dan Anda dapat menerima risikonya, klik Confirm Alert Details > Ignore > OK, lalu klik Precheck Again.
PentingMengabaikan peringatan pemeriksaan awal dapat menyebabkan ketidakkonsistenan data.
Langkah 7: Beli instans dan mulai migrasi
Tunggu hingga Success Rate mencapai 100%, lalu klik Next: Purchase Instance.
Di halaman Purchase Instance, konfigurasikan parameter berikut.
Bagian
Parameter
Deskripsi
New Instance Class
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 untuk instans migrasi data.
Baca dan terima Data Transmission Service (Pay-as-you-go) Service Terms, lalu klik Buy and Start > OK.
Lihat progres migrasi di halaman Data Migration.
Jika tugas tidak mencakup migrasi data inkremental, tugas akan berhenti secara otomatis setelah selesai. Kolom Status menunjukkan Completed.
Jika tugas mencakup migrasi data inkremental, tugas berjalan terus-menerus dan tidak pernah berhenti secara otomatis. Kolom Status menunjukkan Running.
Kueri data yang dimigrasikan
Setelah migrasi, jalankan kueri berikut untuk mengambil data dari kluster ClickHouse tujuan:
SELECT * FROM <table_name> FINAL WHERE _sign > 0;Pengubah
FINALmenghapus duplikat baris dengan kunci pengurutan yang sama, memastikan Anda melihat versi terbaru dari setiap baris.Klausa
WHERE _sign > 0menyaring baris yang telah dihapus.
Tanpa FINAL, kueri dapat mengembalikan catatan duplikat atau yang telah dihapus.
Lampiran
Persyaratan tabel tujuan
Jika Anda melewatkan migrasi skema dan membuat tabel tujuan secara manual, tabel tersebut harus memenuhi persyaratan berikut.
Jika tabel tujuan mencakup parameter ENGINE, atur ke ENGINE = ReplicatedReplacingMergeTree(_version, _is_deleted). Konfigurasi engine lainnya dapat menyebabkan ketidakkonsistenan data.
Edisi kluster | Persyaratan pembuatan tabel |
Edisi Kompatibel Komunitas | Buat tabel lokal dan tabel terdistribusi. Nama tabel terdistribusi harus sesuai dengan nama tabel sumber. Nama tabel lokal harus mengikuti format |
Edisi Perusahaan | Buat tabel dengan nama yang sama dengan tabel sumber. |
Bidang tambahan yang ditambahkan oleh DTS
DTS secara otomatis menambahkan bidang berikut ke setiap tabel tujuan selama migrasi skema.
Untuk mengkueri data yang disinkronkan, gunakan:
SELECT * FROM <table_name> FINAL WHERE _sign > 0;Versi kluster | Bidang | Tipe data | Nilai default | Deskripsi |
Edisi Kompatibel Komunitas yang menjalankan ClickHouse V23.8 atau lebih lama |
| Int8 | 1 | Jenis operasi DML: INSERT atau UPDATE = |
| UInt64 | 1 | Timestamp saat catatan ditulis ke kluster ClickHouse. | |
Edisi Perusahaan atau Edisi Kompatibel Komunitas yang menjalankan ClickHouse V23.8 atau lebih baru |
| Int8 | 1 | Jenis operasi DML: INSERT atau UPDATE = |
| UInt8 | 0 | Apakah catatan telah dihapus: Insert atau Update = | |
| UInt64 | 1 | Timestamp saat catatan ditulis ke kluster ClickHouse. |
Rentang tipe data waktu
Jika data waktu di kluster PolarDB for MySQL sumber berada di luar rentang berikut, nilai yang ditulis ke ApsaraDB for ClickHouse akan salah.
Tipe data | Nilai minimum | Nilai maksimum |
Date | 1970-01-01 00:00:00 | 2149-06-06 00:00:00 |
Date32 | 1925-01-01 00:00:00 | 2283-11-11 00:00:00 |
DateTime | 1970-01-01 08:00:00 | 2106-02-07 14:28:15 |
DateTime64 | 1925-01-01 08:00:00 | 2283-11-12 07:59:59 |
Logika perhitungan partition key
DTS menerapkan logika berikut saat menurunkan nilai partition key dari bidang sumber.
Tipe bidang sumber | Logika perhitungan |
BIGINT |
|
INT |
|
TIMESTAMP |
|
DATETIME |
|
DATE |
|