Jika database sumber Anda tidak didukung oleh Data Transmission Service (DTS) atau batasan keamanan mencegah DTS terhubung langsung ke database tersebut, Anda dapat menggunakan SDK pengiriman data untuk mendorong data ke DTS secara manual. DTS kemudian menyinkronkan data tersebut ke instans AnalyticDB for PostgreSQL (ADB for PostgreSQL) tujuan.
Kapan menggunakan pengiriman data
Gunakan pengiriman data dalam situasi berikut:
Database sumber tidak didukung: Sumbernya adalah database yang tidak didukung secara native oleh DTS, seperti database yang disediakan oleh vendor Tiongkok lainnya.
Tipe data non-standar: Datanya berupa log atau tipe khusus lain yang memerlukan encoding kustom sebelum ingestion.
Akses langsung dibatasi: Database sumber tidak dapat mengekspos kredensial atau endpoint jaringannya secara langsung ke DTS karena alasan keamanan.
Jika database sumber Anda sudah didukung oleh DTS, gunakan tugas sinkronisasi data standar sebagai gantinya. Lihat daftar database yang didukung oleh DTS.
Cara kerja
Pengiriman data mengikuti penyiapan dua tahap:
Buat instansi pengiriman data di konsol DTS. Ini menyediakan saluran yang menerima data dari SDK.
Konfigurasikan dan mulai SDK. Setelah instans dibuat, ambil parameter koneksi dari halaman detail instans, konfigurasikan SDK, lalu mulai mendorong data.
DTS menyinkronkan data dari saluran pengiriman ke instans ADB for PostgreSQL tujuan.
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
Instans ADB for PostgreSQL untuk menerima data. Hanya ADB for PostgreSQL yang didukung sebagai tujuan. Lihat Buat instans
Database dan skema yang telah dibuat di instans tujuan. Dalam panduan ini, skemanya bernama dts_deliver_test. Lihat bagian Impor data dalam "Gunakan SQL untuk mengimpor data vektor"
ID AccessKey dan Rahasia AccessKey untuk akun yang memiliki instans pengiriman data. Lihat Buat Pasangan Kunci Akses
(Opsional) Jika Anda memilih Express Connect, VPN Gateway, or Smart Access Gateway sebagai metode akses, konfigurasikan terlebih dahulu akses DTS melalui VPN Gateway. Lihat Hubungkan pusat data ke DTS menggunakan VPN Gateway
Kemampuan pengembangan untuk mengimplementasikan SDK pengiriman data dalam codebase Anda
Catatan penting
Kemampuan encoding diperlukan untuk menggunakan SDK pengiriman data guna mengirimkan data dari sumber data ke DTS.
Nama skema di instans ADB for PostgreSQL tujuan harus persis sesuai dengan nama database yang Anda masukkan pada langkah Drop data object configuration dan parameter
dbNamedi SDK. Ketidaksesuaian akan menyebabkan database tujuan gagal menerima data.Setelah instans pengiriman data dibuat, jumlah shard tidak dapat diubah.
Mulai SDK pengiriman data segera setelah instans dibuat. Jika SDK tidak segera dimulai, data inkremental tidak dapat dikumpulkan dan instans akan gagal.
Penagihan
Lihat Ikhtisar penagihan.
Buat instansi pengiriman data
Buka halaman Tugas Sinkronisasi Data.
Login ke Konsol Data Management (DMS).
Di bilah navigasi atas, klik Data + AI.
Di panel navigasi kiri, pilih DTS (DTS) > Data Synchronization.
Operasi dapat berbeda tergantung pada mode dan tata letak konsol DMS. Lihat Mode simple dan Sesuaikan tata letak dan gaya konsol DMS. Anda juga dapat langsung membuka halaman Tugas Sinkronisasi Data di konsol DTS baru.
Pilih wilayah tempat instans sinkronisasi data berada.
Di konsol DTS baru, pilih wilayah di bilah navigasi atas.
Klik Create Task. Di wizard Create Task, konfigurasikan database sumber dan tujuan.
Bagian Parameter Deskripsi N/A 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 a DMS database instance Jangan pilih instans yang sudah ada. Konfigurasikan parameter sumber secara manual untuk tugas pengiriman data. Database Type Pilih Data Shipping. Access Method Metode akses sumber. Dalam contoh ini, Public IP Address dipilih. Jika Anda memilih Express Connect, VPN Gateway, or Smart Access Gateway, konfigurasikan juga parameter VPC dan vSwitch. Instance Region Wilayah tempat database sumber berada. Jika wilayah tidak tercantum, pilih wilayah terdekat secara geografis. Destination Database Select a DMS database instance Pilih instans database yang sudah ada, atau biarkan kosong dan konfigurasikan parameter di bawah secara manual. Jika Anda memilih instans yang sudah ada, DTS akan mengisi parameter secara otomatis. Database Type Pilih AnalyticDB for PostgreSQL. Access Method Pilih Alibaba Cloud Instance. Instance Region Wilayah tempat instans ADB for PostgreSQL tujuan berada. Instance ID ID instans ADB for PostgreSQL tujuan. Database Name Nama database di instans tujuan yang menerima data. Database Account Akun untuk instans tujuan. Akun harus memiliki izin baca dan tulis pada database tujuan. Lihat Buat dan kelola akun database. Database Password Password untuk akun database. Klik Test Connectivity and Proceed. DTS secara otomatis menambahkan blok CIDR servernya ke daftar putih instans database Alibaba Cloud dan ke aturan grup keamanan database yang di-host di ECS. Untuk database yang dikelola sendiri di pusat data atau yang di-host oleh penyedia pihak ketiga, tambahkan secara manual blok CIDR server DTS ke daftar putih database. Lihat Tambahkan blok CIDR server DTS.
PeringatanMenambahkan blok CIDR server DTS ke daftar putih database atau aturan grup keamanan Anda menimbulkan risiko keamanan. Sebelum melanjutkan, ambil tindakan pencegahan seperti memperkuat kredensial, membatasi port yang terbuka, mengotentikasi panggilan API, dan melakukan audit daftar putih secara berkala. Atau, hubungkan database ke DTS melalui Express Connect, VPN Gateway, atau Smart Access Gateway.
Konfigurasikan objek yang akan dikirim dan pengaturan lanjutan.
Parameter Deskripsi Processing Mode of Conflicting Tables Precheck and Report Errors: memeriksa apakah tujuan berisi tabel dengan nama yang sama seperti sumber. Jika nama identik ada, pemeriksaan awal gagal dan tugas tidak dapat dimulai. Untuk menyelesaikan konflik penamaan tanpa menghapus atau mengganti nama tabel tujuan, gunakan pemetaan nama objek. Lihat Map object names. Ignore Errors and Proceed: melewati pemeriksaan awal untuk nama tabel identik. Jika skema sumber dan tujuan cocok dan suatu catatan memiliki nilai kunci primer atau kunci unik yang sama, sinkronisasi penuh mempertahankan catatan tujuan yang sudah ada sedangkan sinkronisasi inkremental menimpanya. Jika skema berbeda, inisialisasi mungkin gagal atau hanya beberapa kolom yang disinkronkan. Lanjutkan dengan hati-hati. Capitalization of Object Names in Destination Instance Mengontrol kapitalisasi nama database, tabel, dan kolom di tujuan. Default-nya adalah DTS default policy. Lihat Specify the capitalization of object names in the destination instance. Drop data object configuration Konfigurasikan database dan tabel sumber yang akan dikirim: 1. Klik Add Library. Di kotak dialog New Database, masukkan nama database sumber. Nama ini harus sesuai dengan nama skema instans ADB for PostgreSQL tujuan. Dalam contoh ini, masukkan dts_deliver_test. Untuk menambahkan database lain, klik Add di sebelah entri yang sudah ada. 2. Klik OK. 3. Klik ikon
di sebelah database untuk memperluas daftar. 4. Klik Add Table di sebelah Table. Di kotak dialog Add Table, masukkan nama tabel. Nama tabel harus sesuai dengan parameter tableNamedi SDK. Dalam contoh ini, masukkan tab1, tab2, and tab3. 5. Klik OK. 6. (Opsional) Konfigurasikan pemetaan nama tabel dan kolom: klik Edit di sebelah tabel, ubah Table Name untuk pemetaan tabel, lalu hapus centang Synchronize All Tables dan ubah Column Name dan Map column name untuk pemetaan kolom. Nilai Column Name sesuai dengannamedalam metodecreateFielddiFakeSource.java. Nilai Map column name adalah nama kolom di instans tujuan. Klik
untuk menambahkan kolom lain. Klik OK setelah selesai.Klik Next: Advanced Settings dan konfigurasikan parameter lanjutan.
Parameter Deskripsi Dedicated Cluster for Task Scheduling Secara default, DTS menjadwalkan tugas ke kluster bersama. Untuk menggunakan kluster khusus, beli secara terpisah. Lihat Apa itu klaster khusus DTS? Set Alerts Apakah akan mengaktifkan peringatan. No: peringatan dinonaktifkan. Yes: konfigurasikan ambang batas peringatan dan pengaturan notifikasi. Lihat Configure monitoring and alerting when you create a DTS task. Retry Time for Failed Connections Berapa lama DTS mencoba ulang setelah kegagalan koneksi, dalam menit. Nilai valid: 10–1440. Default: 720. Atur lebih dari 30 menit. Jika DTS terhubung kembali dalam jendela ini, tugas dilanjutkan. Jika tidak, tugas gagal. CatatanJika beberapa tugas berbagi sumber atau tujuan yang sama, waktu coba ulang terpendek yang dikonfigurasi berlaku untuk semuanya. Anda dikenai biaya untuk instans selama periode coba ulang.
Retry Time for Other Issues Berapa lama DTS mencoba ulang setelah kegagalan operasi DDL atau DML, dalam menit. Nilai valid: 1–1440. Default: 10. Atur lebih dari 10 menit. Nilai ini harus kurang dari Retry Time for Failed Connections. Enable Throttling for Incremental Data Synchronization Apakah akan mengaktifkan pengendalian aliran untuk sinkronisasi inkremental. Jika diaktifkan, konfigurasikan RPS of Incremental Data Migration dan BPS of Incremental Data Migration untuk mengurangi beban pada tujuan. Environment Tag Tag untuk mengidentifikasi instans DTS. Pilih berdasarkan lingkungan Anda. Configure ETL Apakah akan mengaktifkan ekstrak, transformasi, dan muat (ETL). Yes: masukkan pernyataan pemrosesan data di editor kode. Lihat Configure ETL in a data migration or data synchronization task. No: ETL dinonaktifkan. Lihat What is ETL? Simpan tugas dan jalankan pemeriksaan awal.
Untuk melihat pratinjau parameter API untuk konfigurasi ini, arahkan kursor ke Next: Save Task Settings and Precheck lalu klik Preview OpenAPI parameters.
Klik Next: Save Task Settings and Precheck.
DTS menjalankan pemeriksaan awal sebelum memulai tugas. Jika pemeriksaan awal gagal, klik View Details di sebelah setiap item yang gagal, perbaiki masalahnya, lalu klik Precheck Again. Jika peringatan dipicu untuk item yang dapat diabaikan dengan aman, klik Confirm Alert Details, lalu klik Ignore di kotak dialog, klik OK, dan klik Precheck Again. Mengabaikan peringatan dapat menyebabkan inkonsistensi data.
Tunggu hingga Success Rate mencapai 100%, lalu klik Next: Purchase Instance.
Di halaman Purchase Instance, konfigurasikan penagihan dan pengaturan instans.
Parameter Deskripsi Billing Method Subscription: bayar di muka untuk jangka waktu 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 menghindari biaya yang tidak perlu. Number of Shards Jumlah partisi di topik tujuan. Ini tidak dapat diubah setelah instans dibuat. Resource Group Settings Kelompok sumber daya untuk instans. Default: default resource group. Lihat Apa itu Resource Management? Instance Class Spesifikasi sinkronisasi, yang menentukan kinerja. Lihat Instance classes of data synchronization instances. Subscription Duration Hanya tersedia untuk metode penagihan Subscription. Nilai valid: 1–9 bulan, atau 1, 2, 3, atau 5 tahun. Baca dan pilih Data Transmission Service (Pay-as-you-go) Service Terms.
Klik Buy and Start, lalu klik OK di kotak dialog konfirmasi.
Tugas muncul di daftar tugas. Mulai SDK pengiriman data segera setelah instans dibuat.
Konfigurasikan dan mulai SDK
Setelah membuat instans, ambil parameter koneksi dan konfigurasikan SDK.
Langkah 1: Tambahkan dependensi SDK
Buka proyek Anda di IDE (seperti IntelliJ IDEA) dan tambahkan dependensi berikut ke pom.xml:
<dependency>
<groupId>com.aliyun.dts.deliver</groupId>
<artifactId>dts-deliver-client</artifactId>
<version>1.0.0</version>
</dependency>Untuk versi terbaru, lihat halaman dts-deliver-client.
Langkah 2: Unduh kode contoh dan ambil parameter koneksi
Unduh kode contoh dari dts-deliver-test di GitHub. Gunakan DtsDeliverTest.java di folder dts-deliver-test sebagai titik awal.
DiFakeSource.java, metodereadmenunjukkan implementasi sumber data contoh. BidangnamedicreateFieldadalah nama kolom tabel sumber. Implementasikan encoding berdasarkan sumber data aktual Anda.
Untuk mengambil parameter koneksi, buka halaman Tugas Sinkronisasi Data, klik ID instans pengiriman data Anda, lalu navigasi ke Basic Information di panel kiri. Bagian Shipping Channel Information berisi nilai-nilai berikut.
| Parameter | Deskripsi | Tempat menemukannya |
|---|---|---|
ip:port | Titik akhir instans pengiriman data | Di Shipping Channel Information, klik Copy di sebelah Public Endpoint atau VPC Endpoint. Gunakan VPC Endpoint hanya jika database sumber berada di VPC yang sama dengan instans pengiriman data. |
ak | ID AccessKey akun yang memiliki instans | Lihat Buat Pasangan Kunci Akses dan Lihat informasi tentang Pasangan Kunci Akses Pengguna RAM. |
secret | Rahasia AccessKey | Sama seperti di atas. |
dts_job_id | ID tugas instans pengiriman data (bukan ID instans) | Panggil API . Dari respons, temukan nilai Shipped Topic dan ekstrak substring antara _vpc_ dan _data_delivery_. Misalnya, jika Shipped Topic adalah cn_hangzhou_vpc_cxti86dc11z*_data_delivery_version2, maka dts_job_id adalah cxti86dc11z*. |
topic | Topik tujuan instans pengiriman data | Di Shipping Channel Information, klik Copy di sebelah Shipped Topic. |
partition | Jumlah shard di topik tujuan | Di Shipping Channel Information, lihat jumlah shard. |
region | Wilayah tempat instans pengiriman data berada | Di Shipping Channel Information, lihat Instance Region. |
dbName | Nama database sumber. Harus sesuai dengan nama skema instans ADB for PostgreSQL tujuan. | Dalam contoh ini: dts_deliver_test. |
tableName | Nama tabel sumber. Harus sesuai dengan nama tabel yang dikonfigurasi di Drop data object configuration. | Dalam contoh ini: tab1, tab2, tab3. |
Langkah 3: Mulai SDK dan atur offset
Catat waktu saat ini, lalu mulai SDK pengiriman data.
Perbarui offset saat ini dari instans pengiriman data ke waktu saat SDK dimulai. Lihat Ubah offset saat ini dari instans sinkronisasi atau migrasi data.
Secara default, Current Offset adalah waktu saat modul Incremental Write dimulai, bukan saat SDK dimulai. Ubah ke waktu mulai SDK untuk memastikan data dikumpulkan dari titik yang benar.
Langkah 4: Verifikasi alur data
Lihat data yang disinkronkan ke database tujuan.