Gunakan Data Transmission Service (DTS) untuk menyinkronkan data penuh atau inkremental dari instans ApsaraDB RDS for MySQL ke fungsi tertentu di Function Compute. Anda kemudian dapat menulis fungsi untuk memproses data tersebut.
Prasyarat
-
Anda memiliki instans sumber ApsaraDB RDS for MySQL.
-
Anda telah membuat layanan dan fungsi tujuan serta mengatur Handler Type-nya ke Event Handler. Untuk membuat fungsi, lihat Buat fungsi dengan cepat.
CatatanHanya Function Compute (FC) 2.0 yang didukung.
Catatan penggunaan
|
Jenis |
Deskripsi |
|
Batasan database sumber |
|
|
Batasan lainnya |
|
|
Kasus khusus |
|
Penagihan
|
Jenis sinkronisasi |
Biaya konfigurasi |
|
sinkronisasi data penuh |
Gratis. |
|
sinkronisasi data inkremental |
Dikenakan biaya. Untuk detailnya, lihat ikhtisar penagihan. |
Operasi SQL yang didukung
|
Jenis operasi |
Pernyataan SQL |
|
DML |
INSERT, UPDATE, dan DELETE |
|
DDL |
|
Izin akun database
|
Database |
Izin yang diperlukan |
Tindakan |
|
Instans sumber ApsaraDB RDS for MySQL |
Izin baca pada objek yang akan disinkronkan. |
Buat akun dan Ubah izin akun. |
Jika akun database sumber Anda tidak dibuat dan diberikan izin melalui Konsol ApsaraDB RDS for MySQL, pastikan akun tersebut memiliki izin REPLICATION CLIENT, REPLICATION SLAVE, SHOW VIEW, dan SELECT.
Prosedur
-
Buka halaman daftar tugas sinkronisasi di wilayah tujuan. Anda dapat menggunakan salah satu dari dua metode berikut:
Dari Konsol DTS
-
Masuk ke Konsol Data Transmission Service (DTS).
-
Di panel navigasi kiri, klik Data Synchronization.
-
Di pojok kiri atas halaman, pilih wilayah tempat instans sinkronisasi berada.
Dari Konsol DMS
CatatanOperasi aktual dapat berbeda tergantung mode dan tata letak Konsol DMS. Untuk informasi lebih lanjut, lihat Mode sederhana dan Sesuaikan tata letak dan gaya antarmuka DMS.
-
Masuk ke Data Management (DMS).
-
Di bilah menu atas, pilih .
-
Di sebelah kanan Data Synchronization Tasks, pilih wilayah tempat instans sinkronisasi berada.
-
-
Klik Create Task untuk membuka halaman konfigurasi tugas.
-
Konfigurasikan database sumber dan tujuan.
Bagian
Parameter
Deskripsi
N/A
Task Name
DTS secara otomatis menghasilkan nama tugas. Kami menyarankan Anda menentukan nama deskriptif agar mudah diidentifikasi. Nama tidak harus unik.
Source Database
Select Existing Connection
-
Untuk menggunakan instans database yang ditambahkan ke sistem (baru dibuat atau disimpan), pilih instans database dari daftar drop-down. Informasi database dikonfigurasi secara otomatis.
CatatanDi Konsol DMS, item konfigurasi ini bernama Select a DMS database instance..
-
Jika Anda belum menambahkan instans database ke sistem, atau tidak perlu menggunakan instans yang sudah ditambahkan, konfigurasikan manual informasi database berikut.
Database Type
Pilih MySQL.
Access Method
Pilih Alibaba Cloud Instance.
Instance Region
Pilih wilayah tempat instans sumber ApsaraDB RDS for MySQL berada.
Replicate Data Across Alibaba Cloud Accounts
Dalam contoh ini, data disinkronkan dalam satu Akun Alibaba Cloud yang sama. Pilih No.
RDS Instance ID
Pilih ID instans dari instans sumber ApsaraDB RDS for MySQL.
Database Account
Masukkan akun database dari instans sumber ApsaraDB RDS for MySQL. Untuk persyaratan izin, lihat Izin yang diperlukan untuk akun database.
Database Password
Masukkan password yang sesuai dengan akun database.
Encryption
Pilih Non-encrypted atau SSL-encrypted sesuai kebutuhan. Jika Anda memilih SSL-encrypted, Anda harus mengaktifkan enkripsi SSL untuk instans RDS for MySQL terlebih dahulu. Untuk informasi lebih lanjut, lihat Gunakan sertifikat cloud untuk mengaktifkan enkripsi SSL dengan cepat.
Destination Database
Select Existing Connection
-
Untuk menggunakan instans database yang ditambahkan ke sistem (baru dibuat atau disimpan), pilih instans database dari daftar drop-down. Informasi database dikonfigurasi secara otomatis.
CatatanDi Konsol DMS, item konfigurasi ini bernama Select a DMS database instance..
-
Jika Anda belum menambahkan instans database ke sistem, atau tidak perlu menggunakan instans yang sudah ditambahkan, konfigurasikan manual informasi database berikut.
Database Type
Pilih Function Compute.
Access Method
Pilih Alibaba Cloud Instance.
Instance Region
Secara default, parameter ini diatur ke nilai yang sama dengan Instance Region database sumber dan tidak dapat diubah.
Service
Pilih nama layanan Function Compute (FC) tujuan.
Function
Pilih fungsi Function Compute (FC) tujuan yang menerima data.
Service Version and Alias
Pilih opsi berdasarkan kebutuhan bisnis Anda.
-
Default Version: Service Version tetap di LATEST.
-
Specified Version: Anda juga harus memilih Service Version.
-
Specified Alias: Anda juga harus memilih Service Alias.
CatatanUntuk informasi lebih lanjut tentang istilah terkait Function Compute, lihat Konsep utama.
-
-
Setelah menyelesaikan konfigurasi, klik Test Connectivity and Proceed di bagian bawah halaman.
Catatan-
Pastikan blok CIDR alamat IP server DTS telah ditambahkan ke pengaturan keamanan database sumber dan tujuan untuk mengizinkan akses dari server DTS. Hal ini dapat dilakukan secara otomatis atau manual. Untuk informasi lebih lanjut, lihat Tambahkan blok CIDR alamat IP server DTS ke daftar putih.
-
Jika database sumber atau tujuan adalah database yang dikelola sendiri (di mana Access Method bukan Alibaba Cloud Instance), Anda juga harus mengklik Test Connectivity di kotak dialog CIDR Blocks of DTS Servers.
-
-
Konfigurasikan objek tugas.
-
Di halaman Configure Objects, konfigurasikan objek yang akan disinkronkan.
Parameter
Deskripsi
Synchronization Types
Incremental Data Synchronization dipilih secara default. Jika Anda perlu menyinkronkan data yang sudah ada, Anda juga harus memilih Full Data Synchronization.
Data Format
Menentukan format data yang disinkronkan ke fungsi Function Compute (FC). Hanya Canal JSON yang didukung.
CatatanUntuk informasi lebih lanjut tentang parameter dan contoh format Canal JSON, lihat Format Canal JSON.
Source Objects
Di kotak Source Objects, klik objek yang akan disinkronkan, lalu klik
untuk memindahkannya ke kotak Selected Objects.CatatanAnda dapat memilih database atau tabel sebagai objek sinkronisasi.
Selected Objects
Di kotak Selected Objects, konfirmasi data yang akan disinkronkan.
CatatanUntuk menghapus objek, pilih objek di kotak Selected Objects dan klik ikon
. -
Klik Next: Advanced Settings untuk mengonfigurasi parameter lanjutan.
Parameter
Deskripsi
Dedicated Cluster for Task Scheduling
Secara default, DTS menjadwalkan tugas pada klaster bersama, dan Anda tidak perlu memilih klaster. Untuk kinerja yang lebih stabil, Anda dapat membeli klaster khusus untuk menjalankan tugas sinkronisasi DTS. Untuk informasi lebih lanjut, lihat Apa itu klaster khusus DTS?.
Retry Time for Failed Connections
Setelah tugas sinkronisasi dimulai, jika koneksi ke database sumber atau tujuan gagal, DTS melaporkan kesalahan dan segera mulai mencoba koneksi ulang. Durasi percobaan ulang default adalah 720 menit. Anda juga dapat menentukan durasi percobaan ulang kustom dari 10 hingga 1.440 menit. Kami menyarankan Anda mengatur durasi minimal 30 menit. Jika DTS berhasil terhubung kembali ke database dalam durasi yang ditentukan, tugas sinkronisasi secara otomatis dilanjutkan. Jika tidak, tugas gagal.
Catatan-
Jika Anda memiliki beberapa instans DTS (misalnya, Instans A dan Instans B) yang berbagi sumber atau tujuan yang sama, dan Anda mengatur waktu percobaan ulang jaringan menjadi 30 menit untuk Instans A dan 60 menit untuk Instans B, durasi yang lebih pendek yaitu 30 menit digunakan untuk keduanya.
-
Karena DTS membebankan biaya untuk waktu proses tugas selama periode percobaan ulang koneksi, kami menyarankan Anda menyesuaikan durasi percobaan ulang berdasarkan kebutuhan bisnis atau segera melepas instans DTS setelah instans database sumber dan tujuan dilepas.
Retry Time for Other Issues
Setelah tugas sinkronisasi dimulai, jika terjadi masalah non-konektivitas lainnya pada database sumber atau tujuan (seperti pengecualian eksekusi DDL atau DML), DTS melaporkan kesalahan dan segera memulai operasi percobaan ulang berkelanjutan. Durasi percobaan ulang default adalah 10 menit. Anda juga dapat menyesuaikan durasi percobaan ulang dalam rentang 1 hingga 1.440 menit. Kami menyarankan Anda mengaturnya minimal 10 menit. Jika operasi terkait berhasil dalam durasi percobaan ulang yang ditetapkan, tugas sinkronisasi secara otomatis dilanjutkan. Jika tidak, tugas gagal.
PentingNilai untuk Retry Time for Other Issues harus lebih kecil daripada Retry Time for Failed Connections.
Enable Throttling for Full Data Synchronization
Selama tahap sinkronisasi penuh, DTS mengonsumsi sumber daya baca dan tulis dari database sumber dan tujuan, yang dapat meningkatkan beban database. Untuk mengurangi beban pada database sumber dan tujuan, Anda dapat mengatur batas laju untuk tugas sinkronisasi penuh dengan mengonfigurasi parameter Queries per second (QPS) to the source database, RPS of Full Data Migration, dan Data migration speed for full migration (MB/s).
Catatan-
Item konfigurasi ini tersedia hanya ketika Synchronization Types diatur ke Full Data Synchronization.
-
Anda juga dapat menyesuaikan laju sinkronisasi penuh setelah instans sinkronisasi berjalan.
Enable Throttling for Incremental Data Synchronization
Anda juga dapat mengatur batas laju untuk tugas sinkronisasi inkremental. Untuk mengurangi tekanan pada database tujuan, atur 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
Pilih apakah akan menulis informasi SQL heartbeat ke database sumber saat instans DTS berjalan.
-
Yes: Informasi SQL heartbeat tidak ditulis ke database sumber. Hal ini dapat menyebabkan instans DTS melaporkan keterlambatan.
-
No: Menulis informasi SQL heartbeat ke database sumber. Hal ini dapat mengganggu fitur seperti backup fisik dan kloning database sumber.
Environment Tag
Anda dapat memilih tag lingkungan untuk mengidentifikasi instans berdasarkan kebutuhan bisnis Anda. Dalam contoh ini, Anda tidak perlu memilih tag.
Configure ETL
Pilih apakah akan mengaktifkan fitur ekstrak, transformasi, dan muat (ETL). Untuk informasi lebih lanjut, lihat Apa itu ETL? Nilai yang valid:
-
Yes: Mengaktifkan fitur ETL. Masukkan pernyataan pemrosesan data di editor kode. Untuk informasi lebih lanjut, lihat Konfigurasikan ETL dalam tugas migrasi data atau sinkronisasi data.
-
No: Menonaktifkan fitur ETL.
Monitoring and Alerting
Tentukan apakah akan mengonfigurasi peringatan. Jika sinkronisasi gagal atau latensi melebihi ambang batas yang ditentukan, notifikasi dikirim ke kontak peringatan.
-
No: Tidak ada peringatan yang dikonfigurasi.
-
Yes: Konfigurasikan peringatan dengan mengatur ambang batas peringatan dan menentukan pemberitahuan peringatan. Untuk informasi lebih lanjut, lihat Konfigurasikan pemantauan peringatan selama konfigurasi tugas.
-
-
-
Simpan tugas dan jalankan pemeriksaan awal.
-
Untuk melihat parameter API untuk mengonfigurasi instans ini, arahkan kursor ke tombol Next: Save Task Settings and Precheck dan klik Preview OpenAPI parameters di gelembung.
-
Jika Anda telah selesai melihat parameter API, klik Next: Save Task Settings and Precheck di bagian bawah halaman.
Catatan-
Sebelum pekerjaan sinkronisasi dimulai, DTS menjalankan pemeriksaan awal. Pekerjaan hanya dapat dimulai setelah semua item pemeriksaan awal lolos.
-
Jika pemeriksaan awal gagal, klik View Details untuk item yang gagal. Perbaiki masalah sesuai petunjuk, lalu jalankan pemeriksaan awal lagi.
-
Jika pemeriksaan awal mengembalikan peringatan:
-
Jika item pemeriksaan gagal dan tidak dapat diabaikan, klik View Details di sebelah item tersebut. Ikuti instruksi untuk memperbaiki masalah, lalu jalankan pemeriksaan awal lagi.
-
Untuk item pemeriksaan yang dapat diabaikan, Anda dapat mengklik Confirm Alert Details, Ignore, OK, dan Precheck Again secara berurutan untuk melewati peringatan dan menjalankan pemeriksaan awal ulang. Jika Anda memilih untuk mengabaikan item peringatan, hal ini dapat menyebabkan masalah seperti inkonsistensi data dan menimbulkan risiko bagi bisnis Anda.
-
-
-
Beli instans.
-
Saat Success Rate mencapai 100%, klik Next: Purchase Instance.
-
Di halaman Purchase, pilih metode penagihan dan spesifikasi link untuk instans sinkronisasi data. Tabel berikut menjelaskan parameter ini secara rinci.
Kategori
Parameter
Deskripsi
New Instance Class
Billing Method
-
Subscription: Anda membayar saat membuat instans. Ini cocok untuk kebutuhan jangka panjang dan lebih hemat biaya dibandingkan bayar sesuai penggunaan. Semakin lama durasi langganan, semakin tinggi diskonnya.
-
Pay-as-you-go: Anda dikenai biaya per jam. Ini cocok untuk kebutuhan jangka pendek. Anda dapat melepas instans segera setelah digunakan untuk menghemat biaya.
Resource Group Configuration
Kelompok sumber daya tempat instans berada. Default-nya adalah kelompok sumber daya default. Untuk informasi lebih lanjut, lihat Apa itu Resource Management?.
Link Specification
DTS menyediakan spesifikasi sinkronisasi dengan tingkat kinerja berbeda. Spesifikasi link sinkronisasi memengaruhi laju sinkronisasi. Anda dapat memilih spesifikasi berdasarkan skenario bisnis Anda. Untuk informasi lebih lanjut, lihat Spesifikasi link sinkronisasi data.
Subscription Duration
Dalam mode subscription, pilih durasi dan jumlah untuk instans langganan. Anda dapat memilih langganan bulanan dari 1 hingga 9 bulan, atau langganan tahunan 1, 2, 3, atau 5 tahun.
CatatanOpsi ini hanya tersedia ketika metode penagihan adalah Subscription.
-
-
Setelah menyelesaikan konfigurasi, baca dan pilih Data Transmission Service (Pay-as-you-go) Service Terms.
-
Klik Buy and Start. Di kotak dialog OK, klik OK.
Anda dapat melihat progres tugas di halaman Data Synchronization.
-
Langkah selanjutnya
-
Jika satu catatan yang akan disinkronkan melebihi 16 MB, tugas DTS melaporkan kesalahan. Anda dapat mengubah objek sinkronisasi atau menggunakan fitur ETL untuk memfilter bidang besar. Untuk instruksi, lihat Ubah konfigurasi ETL tugas sinkronisasi dan Ubah objek sinkronisasi.
-
Tulis kode fungsi berdasarkan kebutuhan bisnis Anda. Untuk informasi lebih lanjut, lihat Ikhtisar pengembangan kode.
Format data tujuan
Function Compute (FC) menerima data sebagai Object. Data inkremental dari sumber disimpan di bidang Records, sebuah array catatan. Setiap catatan adalah Object yang berisi bidang yang dijelaskan dalam tabel berikut.
Function Compute (FC) menerima catatan untuk dua jenis operasi: DML dan DDL.
-
DDL: Mewakili perubahan pada skema database.
-
DML: Mewakili perubahan pada data dalam database.
|
Parameter |
Jenis |
Deskripsi |
|
|
Boolean |
Menunjukkan apakah operasi tersebut merupakan operasi DDL.
|
|
|
String |
Jenis operasi SQL.
Penting
Selama sinkronisasi data penuh, nilainya selalu INIT. |
|
|
String |
Nama database MySQL sumber. |
|
|
String |
Nama tabel MySQL sumber. |
|
|
String |
Nama kolom kunci primer. |
|
|
Long |
Waktu eksekusi operasi di database sumber, direpresentasikan sebagai stempel waktu UNIX 13 digit dalam milidetik. Catatan
Konverter stempel waktu UNIX banyak tersedia online. |
|
|
Long |
Waktu catatan ditulis ke tujuan, direpresentasikan sebagai stempel waktu UNIX 13 digit dalam milidetik. Catatan
Konverter stempel waktu UNIX banyak tersedia online. |
|
|
Object Array |
Array yang berisi satu objek yang merepresentasikan data setelah operasi. Kunci dalam objek adalah nama kolom dan nilai adalah nilai kolom yang sesuai. |
|
old |
Object Array |
Berisi data sebelum pembaruan. Penting
Bidang ini hanya ada ketika |
|
sql |
String |
|
|
|
Int |
Nomor seri operasi. |
Format data operasi DDL
Alter table
SQL statement
ALTER TABLE `demoTable`
ADD COLUMN `address` varchar(20) NULL AFTER `sex`
;
Data yang diterima oleh Function Compute (FC)
{
'Records': [{
'type': 'DDL',
'serverId': '27142679',
'es': 1690000000000,
'sql': '/* Query from DMS-WEBSQL-0-Eid_15682857722282385K by user 14xxxxxxxx */ ALTER TABLE `demoDatabase`.`DDL` \n\tADD COLUMN `address` varchar(20) NULL AFTER `sex`',
'database': 'demoDatabase',
'id': 63151,
'isDdl': True,
'table': 'demoTable',
'ts': 1690000000000
}]
}
Format data operasi DML
Insert data
SQL statement
INSERT INTO demoTable VALUES("xiaoming", 10, "man");
Data yang diterima oleh Function Compute (FC)
{
'Records': [{
'data': [{
'sex': 'man',
'name': 'xiaoming',
'age': '10'
}],
'pkNames': ['name'],
'type': 'INSERT',
'serverId': '27142678',
'es': 1690000000000,
'sql': '',
'database': 'demoDatabase',
'sqlType': {
'sex': 253,
'name': 253,
'age': 3
},
'mysqlType': {
'sex': 'varchar',
'name': 'varchar',
'age': 'int'
},
'id': 62051,
'isDdl': False,
'table': 'demoTable',
'ts': 1690000000000
}]
}
Update data
SQL statement
UPDATE `demoDatabase`.`demoTable` SET `age`=11 WHERE `name`='xiaoming';
Data yang diterima oleh Function Compute (FC)
{
'Records': [{
'data': [{
'sex': 'man',
'name': 'xiaoming',
'age': '11'
}],
'pkNames': ['name'],
'old': [{
'sex': 'man',
'name': 'xiaoming',
'age': '10'
}],
'type': 'UPDATE',
'serverId': '27142679',
'es': 1690000000000,
'sql': '',
'database': 'demoDatabase',
'sqlType': {
'sex': 253,
'name': 253,
'age': 3
},
'mysqlType': {
'sex': 'varchar',
'name': 'varchar',
'age': 'int'
},
'id': 62373,
'isDdl': False,
'table': 'demoTable',
'ts': 1690000000000
}]
}
Delete data
SQL statement
DELETE FROM `demoDatabase`.`demoTable` WHERE `name`='xiaoming';
Data yang diterima oleh Function Compute (FC)
{
'Records': [{
'data': [{
'sex': 'man',
'name': 'xiaoming',
'age': '11'
}],
'pkNames': ['name'],
'type': 'DELETE',
'serverId': '27142679',
'es': 1690000000000,
'sql': '',
'database': 'demoDatabase',
'sqlType': {
'sex': 253,
'name': 253,
'age': 3
},
'mysqlType': {
'sex': 'varchar',
'name': 'varchar',
'age': 'int'
},
'id': 62635,
'isDdl': False,
'table': 'demoTable',
'ts': 1690000000000
}]
}