AnalyticDB for PostgreSQL (sebelumnya dikenal sebagai HybridDB for PostgreSQL) adalah layanan gudang data yang cepat, mudah digunakan, dan hemat biaya yang mampu memproses data dalam skala petabyte. Gunakan Data Transmission Service (DTS) untuk menyinkronkan data dari kluster PolarDB for MySQL ke instans AnalyticDB for PostgreSQL. Hal ini umum dilakukan untuk kueri dan analisis ad hoc, operasi ekstrak, transformasi, dan muat (ETL), serta visualisasi data.
Prasyarat
Sebelum memulai, pastikan Anda telah:
Mengaktifkan binary logging pada kluster PolarDB for MySQL. Untuk informasi selengkapnya, lihat How to enable Binlog.
Menetapkan kunci primer pada semua tabel yang akan disinkronkan dari kluster PolarDB for MySQL.
Membuat instans AnalyticDB for PostgreSQL. Untuk informasi selengkapnya, lihat Create an AnalyticDB for PostgreSQL instanceCreate an AnalyticDB for PostgreSQL instance.
Topologi sinkronisasi yang didukung
Sinkronisasi satu arah satu-ke-satu
Sinkronisasi satu arah satu-ke-banyak
Sinkronisasi satu arah banyak-ke-satu
Batasan
| Batasan | Berlaku untuk |
|---|---|
| Hanya tabel yang dapat dipilih sebagai objek yang akan disinkronkan. | Sinkronisasi awal dan sinkronisasi inkremental |
| Tipe data berikut tidak dapat disinkronkan: BIT, VARBIT, GEOMETRY, ARRAY, UUID, TSQUERY, TSVECTOR, TXID_SNAPSHOT, dan POINT. | Sinkronisasi awal dan sinkronisasi inkremental |
| Indeks awalan tidak dapat disinkronkan. Jika database sumber berisi indeks awalan, sinkronisasi mungkin gagal. | Sinkronisasi awal dan sinkronisasi inkremental |
| Jangan gunakan gh-ost atau pt-online-schema-change untuk melakukan operasi DDL pada objek selama sinkronisasi. Tindakan tersebut dapat menyebabkan kegagalan sinkronisasi. | Sinkronisasi inkremental |
| Operasi DML yang didukung: INSERT, UPDATE, DELETE. | Sinkronisasi inkremental |
| Operasi DDL yang didukung: hanya ADD COLUMN. CREATE TABLE tidak didukung. Untuk menyinkronkan data dari tabel baru, tambahkan tabel tersebut ke daftar objek yang dipilih. Untuk informasi selengkapnya, lihat Add an object to a data synchronization task. | Sinkronisasi inkremental |
Pemetaan istilah
| PolarDB for MySQL | AnalyticDB for PostgreSQL |
|---|---|
| Database | Schema |
| Table | Table |
Menyiapkan tugas sinkronisasi
Langkah 1: Membeli instans DTS
Purchase a DTS instance. Pada halaman pembelian, atur opsi berikut:
Source Instance: PolarDB
Target Instance: AnalyticDB for PostgreSQL
Synchronization Topology: One-Way Synchronization
Langkah 2: Mengonfigurasi saluran sinkronisasi
Masuk ke DTS console.
Pada panel navigasi sebelah kiri, klik Data Synchronization.
Di bagian atas halaman Synchronization Tasks, pilih wilayah tempat instans tujuan berada.
Temukan instans sinkronisasi, lalu klik Configure Synchronization Channel di kolom Actions.
Konfigurasikan instans sumber dan tujuan.
Detail instans sumber
Parameter Deskripsi Nama tugas sinkronisasi DTS secara otomatis menghasilkan nama. Tentukan nama deskriptif agar mudah diidentifikasi. Nama tersebut tidak perlu unik. Tipe instans Tetap sebagai PolarDB Instance. Wilayah instans Wilayah sumber yang Anda pilih pada halaman pembelian. Hanya-baca. ID instans PolarDB Pilih ID kluster PolarDB for MySQL. Akun database Masukkan akun database kluster PolarDB for MySQL. Akun tersebut harus memiliki izin baca pada objek yang akan disinkronkan. Kata Sandi Database Masukkan password akun database. Detail instans tujuan
Parameter Deskripsi Tipe instans Tetap sebagai AnalyticDB for PostgreSQL. Wilayah instans Wilayah tujuan yang Anda pilih pada halaman pembelian. Hanya-baca. ID instans Pilih ID instans AnalyticDB for PostgreSQL. Nama database Masukkan nama database tujuan dalam instans AnalyticDB for PostgreSQL. Akun database Masukkan initial account instans AnalyticDB for PostgreSQL. Anda juga dapat menggunakan akun yang memiliki izin RDS_SUPERUSER. Untuk informasi selengkapnya, lihat Create a database account dan Manage users and permissions. Password database Masukkan password akun database. 
Klik Set Whitelist and Next di pojok kanan bawah.
DTS menambahkan blok CIDR server DTS ke daftar putih kluster PolarDB for MySQL dan instans AnalyticDB for PostgreSQL sehingga server DTS dapat terhubung ke kluster sumber dan instans tujuan.
Pilih kebijakan sinkronisasi dan objek yang akan disinkronkan.
Pengaturan Parameter Deskripsi Kebijakan sinkronisasi Sinkronisasi awal Dalam kebanyakan kasus, pilih kedua opsi berikut: Initial Schema Synchronization dan Initial Full Data Synchronization. DTS akan menyinkronkan skema dan data objek yang diperlukan dari sumber ke tujuan setelah pemeriksaan awal. Proses ini menjadi dasar untuk sinkronisasi inkremental berikutnya. Mode penanganan tabel yang bentrok Clear Target Table: Melewatkan item Schema Name Conflict selama pemeriksaan awal. Mengosongkan data di tabel tujuan sebelum sinkronisasi data penuh awal. Pilih mode ini jika Anda ingin menyinkronkan data bisnis setelah pengujian. Ignore: Melewatkan item Schema Name Conflict selama pemeriksaan awal. Menambahkan data ke data yang sudah ada selama sinkronisasi data penuh awal. Pilih mode ini jika Anda ingin menyinkronkan data dari beberapa tabel ke satu tabel. Tipe sinkronisasi Pilih jenis operasi yang akan disinkronkan: Insert, Update, Delete, AlterTable. Objek yang akan disinkronkan N/A Pilih tabel dari bagian Available dan klik ikon
untuk memindahkannya ke bagian Selected. Hanya tabel yang dapat dipilih.Ubah nama database dan tabel N/A Gunakan fitur pemetaan nama objek untuk mengubah nama objek di instans tujuan. Untuk informasi selengkapnya, lihat Object name mapping. Replikasi tabel temporary saat DMS melakukan operasi DDL N/A Jika Anda menggunakan Data Management (DMS) untuk melakukan operasi DDL Online pada database sumber, tentukan apakah akan menyinkronkan tabel temporary yang dihasilkan oleh operasi tersebut. Yes: DTS menyinkronkan data tabel temporary. Jika operasi DDL Online menghasilkan volume data besar, tugas sinkronisasi mungkin tertunda. No: DTS melewatkan tabel temporary dan hanya menyinkronkan data DDL asli dari sumber. Tabel di database tujuan mungkin terkunci. Waktu percobaan ulang koneksi yang gagal N/A Secara default, DTS mencoba kembali koneksi yang gagal hingga 720 menit (12 jam). Jika DTS berhasil terhubung kembali dalam periode yang ditentukan, tugas sinkronisasi dilanjutkan. Jika tidak, tugas tersebut gagal. Anda tetap dikenai biaya untuk instans DTS selama percobaan ulang. Kami menyarankan Anda menentukan waktu percobaan ulang sesuai kebutuhan bisnis. Anda juga dapat melepas instans DTS sesegera mungkin setelah instans sumber dan tujuan dilepas. 
Tentukan kolom kunci primer dan kolom distribusi untuk setiap tabel yang akan disinkronkan ke instans AnalyticDB for PostgreSQL.
Langkah ini hanya muncul jika Anda memilih Initial Schema Synchronization. Untuk informasi selengkapnya mengenai kolom kunci primer dan kolom distribusi, lihat Define constraints dan Define table distribution.

Klik Precheck di pojok kanan bawah.
DTS menjalankan pemeriksaan awal sebelum memulai tugas sinkronisasi. Tugas hanya dimulai setelah pemeriksaan awal berhasil. Jika ada item yang gagal, klik ikon
di samping item yang gagal untuk melihat detailnya. Perbaiki masalah tersebut dan jalankan pemeriksaan awal lagi. Jika Anda memilih untuk tidak memperbaiki masalah tertentu, abaikan item yang gagal tersebut dan jalankan pemeriksaan awal lagi.Setelah muncul pesan The precheck is passed., tutup kotak dialog tersebut. Tugas sinkronisasi akan dimulai secara otomatis.
Tunggu hingga sinkronisasi awal selesai. Status tugas berubah menjadi Synchronizing pada halaman Synchronization Tasks.

Pertimbangan kinerja
DTS menggunakan sumber daya baca dan tulis dari kedua database (sumber dan tujuan) selama sinkronisasi data penuh awal, sehingga meningkatkan beban pada kedua server. Jika spesifikasi database rendah atau volumenya besar, beban tambahan tersebut dapat mengganggu layanan. Pemicu umum meliputi:
Banyak kueri SQL lambat pada database sumber
Tabel tanpa kunci primer
Deadlock di database tujuan
Jadwalkan sinkronisasi pada jam sepi ketika utilisasi CPU kedua database berada di bawah 30%.
Operasi INSERT konkuren selama sinkronisasi data penuh awal menyebabkan fragmentasi pada tabel tujuan. Akibatnya, setelah sinkronisasi data penuh awal selesai, ruang tabel instans tujuan lebih besar daripada kluster sumber.