Anda dapat memigrasikan data dari sumber data MySQL ke instans ApsaraDB for SelectDB menggunakan Data Transmission Service (DTS), DataWorks, Flink change data capture (CDC), atau katalog. Sumber data MySQL dapat berupa database MySQL yang dikelola sendiri, instans ApsaraDB RDS for MySQL, atau kluster PolarDB for MySQL. Pilih solusi yang sesuai berdasarkan jumlah data dan skenario bisnis Anda. Topik ini menjelaskan serta membandingkan solusi untuk migrasi data dari sumber data MySQL ke instans ApsaraDB for SelectDB.
Perbandingan solusi migrasi
Anda dapat memigrasikan data dari sumber data MySQL ke instans ApsaraDB for SelectDB menggunakan DTS, DataWorks, Flink CDC, atau katalog. Jenis data yang dapat dimigrasikan bervariasi tergantung pada solusi yang digunakan. Pilih solusi yang sesuai dengan kebutuhan bisnis Anda.
Solusi | Migrasi data historis | Sinkronisasi data inkremental | Migrasi skema | Migrasi database | Sinkronisasi inkremental operasi DDL | Verifikasi data |
DTS | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
DataWorks | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ❌ |
Flink CDC | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ❌ |
Katalog | ✔️ | ❌ | ❌ | ❌ | ❌ | ❌ |
Berikut adalah penjelasan tentang cara memigrasikan data menggunakan solusi-solusi tersebut. Untuk informasi lebih lanjut, lihat referensi terkait.
Prasyarat
Database MySQL harus terhubung ke instans SelectDB.
Database MySQL harus berada di virtual private cloud (VPC) yang sama dengan instans SelectDB. Jika database MySQL berada di VPC yang berbeda, hubungkan database MySQL ke instans SelectDB. Untuk informasi lebih lanjut, lihat Apa yang harus saya lakukan jika koneksi gagal dibuat antara instans ApsaraDB for SelectDB dan sumber data?
Alamat IP database MySQL harus ditambahkan ke daftar putih alamat IP instans SelectDB. Untuk informasi lebih lanjut, lihat Konfigurasikan Daftar Putih Alamat IP.
Alamat IP dalam VPC tempat instans SelectDB berada harus ditambahkan ke daftar putih alamat IP database MySQL jika mekanisme daftar putih didukung untuk database MySQL.
Untuk mendapatkan alamat IP instans SelectDB dalam VPC tempat instans SelectDB berada, gunakan operasi yang disediakan di Bagaimana cara melihat alamat IP dalam VPC tempat instans ApsaraDB SelectDB saya berada?
Untuk mendapatkan alamat IP publik instans SelectDB, jalankan perintah ping untuk mengakses titik akhir publik instans SelectDB dan dapatkan alamat IP instans tersebut.
Migrasikan data menggunakan DTS
DTS memungkinkan Anda memigrasikan data historis dan menyinkronkan data inkremental dari sumber data MySQL ke instans ApsaraDB for SelectDB. DTS juga mendukung migrasi skema, sinkronisasi operasi DDL, dan verifikasi data. Dalam contoh ini, instans ApsaraDB RDS for MySQL digunakan untuk menjelaskan cara memigrasikan data dari sumber data MySQL ke instans ApsaraDB for SelectDB. Untuk informasi lebih lanjut, lihat Gunakan DTS untuk Mengimpor Data.
Prosedur
Masuk ke Konsol ApsaraDB for SelectDB.
Di bilah navigasi atas, pilih wilayah tempat instans yang ingin Anda kelola berada.
Di panel navigasi di sebelah kiri, klik Instances. Di halaman Instances, temukan instans dan klik ID-nya untuk masuk ke halaman Instance Details.
Di panel navigasi di sebelah kiri halaman Detail Instans, klik Data Pipeline. Di halaman yang muncul, klik tab Data Synchronization.
CatatanPada umumnya, sinkronisasi data di DTS melibatkan migrasi data yang ada dan sinkronisasi data inkremental secara real-time. Migrasi data di DTS umumnya digunakan untuk memigrasikan data historis yang ada.
Klik Create Data Synchronization Task. Di halaman Buat Tugas Sinkronisasi Data, konfigurasikan informasi tentang database sumber dan tujuan.
Di bagian bawah halaman, klik Test Connectivity and Proceed.
Konfigurasikan objek yang akan dimigrasikan dan pengaturan lanjutan.
Jika Anda memilih database sebagai objek yang akan disinkronkan, DTS tidak akan menyinkronkan tabel baru. Jika Anda perlu membuat tabel di database sumber selama sinkronisasi data, pilih tabel sebagai objek yang akan disinkronkan. Untuk memodifikasi objek yang akan disinkronkan dalam tugas sinkronisasi data, temukan tugas sinkronisasi data di tab Sinkronisasi Data dan pilih Lainnya > Reselect Objects di kolom Tindakan.
Jika Anda memilih tabel sebagai objek yang akan disinkronkan dan Anda perlu mengedit tabel, seperti mengganti nama tabel atau kolom, Anda dapat menyinkronkan hingga 1.000 tabel dalam satu tugas sinkronisasi data. Jika Anda menjalankan tugas untuk menyinkronkan lebih dari 1.000 tabel, kesalahan permintaan akan terjadi. Dalam hal ini, kami sarankan Anda mengonfigurasi beberapa tugas untuk menyinkronkan tabel atau mengonfigurasi satu tugas untuk menyinkronkan seluruh database.
Untuk mengganti nama objek yang ingin Anda sinkronkan ke instans tujuan, klik kanan objek di bagian Selected Objects. Untuk informasi lebih lanjut, lihat bagian "Petakan nama objek tunggal" topik Pemetaan nama objek.
Untuk mengganti nama beberapa objek sekaligus, klik Batch Edit di pojok kanan atas bagian Selected Objects. Untuk informasi lebih lanjut, lihat bagian "Petakan beberapa nama objek sekaligus" topik Pemetaan nama objek.
Untuk memilih operasi SQL yang dilakukan pada database atau tabel tertentu, klik kanan objek di bagian Selected Objects. Di kotak dialog yang muncul, pilih operasi SQL yang ingin Anda sinkronkan. Untuk informasi lebih lanjut, lihat Sinkronkan data dari instans ApsaraDB RDS for MySQL ke instans ApsaraDB for SelectDB.
Untuk menentukan kondisi WHERE untuk memfilter data, klik kanan tabel di bagian Selected Objects. Di kotak dialog yang muncul, tentukan kondisi tersebut. Untuk informasi lebih lanjut, lihat Tentukan kondisi filter.
Jika Anda menggunakan fitur pemetaan nama objek untuk mengganti nama objek, objek lain yang bergantung pada objek tersebut mungkin gagal disinkronkan.
Opsional. Di bagian bawah halaman, klik Next: Configure Database and Table Fields. Di kotak dialog yang muncul, konfigurasikan parameter Primary Key Column, Distribution Key, dan Engine untuk tabel yang akan disinkronkan ke instans ApsaraDB for SelectDB.
Anda hanya dapat melakukan langkah ini jika Anda memilih Schema Synchronization untuk parameter Synchronization Types. Untuk memodifikasi parameter, atur parameter Definition Status ke All.
Anda dapat memilih beberapa kolom untuk parameter Primary Key Column dari daftar drop-down. Satu atau lebih kolom yang ditentukan untuk parameter Primary Key Column dapat dipilih untuk parameter Distribution Key. Anda hanya dapat memilih Unique untuk parameter Engine.
Simpan pengaturan tugas dan jalankan pemeriksaan awal. Tunggu hingga tingkat keberhasilan menjadi 100%. Kemudian, klik Next: Purchase Instance.
Di halaman Purchase Instance, konfigurasikan parameter Metode Penagihan dan Kelas Instans untuk instans sinkronisasi data,baca dan setujui Data Transmission Service (Pay-as-you-go) Service Terms dengan memilih kotak centang, lalu klik Buy and Start untuk memulai tugas sinkronisasi data. Anda dapat melihat kemajuan tugas di daftar tugas.
Bagian | Parameter | Deskripsi |
Informasi Tugas | Task Name | Nama tugas DTS. DTS secara otomatis menghasilkan nama tugas. Kami merekomendasikan agar Anda menentukan nama deskriptif yang memudahkan identifikasi tugas. Anda tidak perlu menentukan nama tugas unik. |
Database Sumber | Database Type | Tipe database sumber. Pilih MySQL. |
Access Method | Metode akses database sumber. Pilih Alibaba Cloud Instance. | |
Instance Region | Wilayah tempat instans ApsaraDB RDS for MySQL sumber berada. | |
RDS Instance ID | ID instans ApsaraDB RDS for MySQL sumber. Contoh: rm-2z3m****. | |
Database Account | Akun database instans ApsaraDB RDS for MySQL sumber. Untuk informasi lebih lanjut tentang izin yang diperlukan untuk akun tersebut, lihat bagian "Izin yang diperlukan untuk akun database" topik Sinkronkan data dari instans ApsaraDB RDS for MySQL ke instans ApsaraDB for SelectDB. | |
Database Password | Kata sandi yang digunakan untuk mengakses database. | |
Encryption | Menentukan apakah akan mengenkripsi koneksi ke database. Anda dapat memilih Non-encrypted atau SSL-encrypted berdasarkan kebutuhan bisnis Anda. Jika Anda ingin menyetel parameter ini ke SSL-encrypted, Anda harus mengaktifkan enkripsi SSL untuk instans ApsaraDB RDS for MySQL sebelum mengonfigurasi tugas DTS. Untuk informasi lebih lanjut, lihat Gunakan sertifikat cloud untuk mengaktifkan enkripsi SSL. | |
Database Tujuan | Database Type | Tipe database tujuan. Pilih SelectDB. |
Access Method | Metode akses database tujuan. Pilih Alibaba Cloud Instance. | |
Instance Region | Wilayah tempat instans ApsaraDB for SelectDB tujuan berada. | |
Instance ID | ID instans ApsaraDB for SelectDB tujuan. | |
Database Account | Akun database instans ApsaraDB for SelectDB tujuan. Untuk informasi lebih lanjut tentang izin yang diperlukan untuk akun tersebut, lihat bagian "Izin yang diperlukan untuk akun database" topik Sinkronkan data dari instans ApsaraDB RDS for MySQL ke instans ApsaraDB for SelectDB. | |
Database Password | Kata sandi yang digunakan untuk mengakses database. |
Parameter | Deskripsi |
Synchronization Types | Jenis sinkronisasi. Secara default, Incremental Data Synchronization dipilih. Anda juga harus memilih Schema Synchronization dan Full Data Synchronization. Setelah pemeriksaan awal selesai, DTS akan menyinkronkan data historis dari objek yang dipilih dari database sumber ke kluster tujuan. Data historis ini menjadi dasar untuk sinkronisasi inkremental selanjutnya. Penting Saat Anda menyinkronkan data dari database MySQL ke instans ApsaraDB for SelectDB, tipe data akan dikonversi. Jika Anda tidak memilih Schema Synchronization, Anda harus membuat tabel yang menggunakan model Unique key dengan skema yang sesuai di instans ApsaraDB for SelectDB tujuan terlebih dahulu. Untuk informasi lebih lanjut, lihat Sinkronkan data dari instans ApsaraDB RDS for MySQL ke instans ApsaraDB for SelectDB dan Model data. |
Source Objects | Pilih satu atau beberapa objek dari bagian Source Objects dan klik ikon Penting |
Selected Objects | Catatan |
Gunakan Flink CDC untuk memigrasikan data
Flink menyediakan Flink SQL, Flink CDC, dan DataStream yang dapat Anda gunakan untuk memigrasikan data dari database MySQL ke instans ApsaraDB for SelectDB. Anda dapat menggunakan Flink CDC untuk memigrasikan data historis, data inkremental, dan skema, serta menyinkronkan operasi DDL. Dalam contoh ini, Flink CDC digunakan untuk menjelaskan cara menyinkronkan data dari database MySQL upstream ke instans ApsaraDB for SelectDB. Untuk informasi lebih lanjut, lihat Gunakan Flink untuk Mengimpor Data.
Prosedur
Siapkan Lingkungan
Bangun lingkungan Flink. Dalam contoh ini, kluster Flink standalone versi 1.16 diterapkan.
Unduh paket flink-1.16.3-bin-scala_2.12.tgz dan dekompres paket tersebut. Jika versi ini kedaluwarsa, unduh versi lain. Untuk informasi lebih lanjut tentang versi, lihat Apache Flink. Contoh kode:
wget https://archive.apache.org/dist/flink/flink-1.16.3/flink-1.16.3-bin-scala_2.12.tgz tar -zxvf flink-1.16.3-bin-scala_2.12.tgzUnduh paket flink-sql-connector-mysql-cdc-2.4.2 dan flink-doris-connector-1.16-1.5.2 ke direktori FLINK_HOME/lib. Contoh kode:
cd flink-1.16.3 cd lib/ wget https://repo1.maven.org/maven2/com/ververica/flink-sql-connector-mysql-cdc/2.4.2/flink-sql-connector-mysql-cdc-2.4.2.jar wget https://repo.maven.apache.org/maven2/org/apache/doris/flink-doris-connector-1.16/1.5.2/flink-doris-connector-1.16-1.5.2.jarMulai kluster Flink standalone. Contoh kode:
bin/start-cluster.shBuat instans ApsaraDB for SelectDB. Untuk informasi lebih lanjut, lihat Buat Instans.
Hubungkan ke instans ApsaraDB for SelectDB melalui protokol MySQL. Untuk informasi lebih lanjut, lihat Hubungkan ke Instans.
Buat database uji dan tabel uji.
Jalankan pernyataan berikut untuk membuat database uji:
CREATE DATABASE test_db;Jalankan pernyataan berikut untuk membuat tabel uji:
USE test_db; CREATE TABLE employees ( emp_no int NOT NULL, birth_date date, first_name varchar(20), last_name varchar(20), gender char(2), hire_date date ) UNIQUE KEY(`emp_no`) DISTRIBUTED BY HASH(`emp_no`) BUCKETS 1;
Sinkronkan Data Menggunakan Flink CDC
Berikut ini adalah contoh kode sintaks Flink CDC:
<FLINK_HOME>/bin/flink run \
-Dexecution.checkpointing.interval=10s \
-Dparallelism.default=1 \
-c org.apache.doris.flink.tools.cdc.CdcTools \
lib/flink-doris-connector-1.16-1.5.2.jar \
mysql-sync-database \
--database test_db \
--including-tables "tbl1|test.*" \
--mysql-conf hostname=127.0.0.1 \
--mysql-conf username=root \
--mysql-conf password=123456 \
--mysql-conf database-name=mysql_db \
--sink-conf fenodes=selectdb-cn-****.selectdbfe.rds.aliyuncs.com:8080 \
--sink-conf username=admin \
--sink-conf password=****Parameter | Deskripsi |
execution.checkpointing.interval | Interval checkpoint, yang memengaruhi frekuensi sinkronisasi data. Kami merekomendasikan agar Anda menyetel parameter ini ke 10s. |
parallelism.default | Paralelisme pekerjaan Flink. Anda dapat meningkatkan paralelisme secara tepat untuk mempercepat sinkronisasi data. |
database | Nama database tempat data disinkronkan di instans ApsaraDB for SelectDB. |
including-tables | Tabel MySQL tempat data akan disinkronkan. Anda dapat menggunakan tanda vertikal (|) untuk memisahkan beberapa nama tabel. Ekspresi reguler juga didukung. Contoh: |
excluding-tables | Tabel yang akan dikecualikan. Anda dapat menentukan parameter ini dengan cara yang sama seperti Anda menentukan parameter including-tables. |
mysql-conf | Item konfigurasi sumber MySQL CDC. Untuk informasi lebih lanjut tentang item konfigurasi, lihat MySQL CDC Connector. Parameter |
sink-conf | Item konfigurasi Doris Sink. Untuk informasi lebih lanjut, lihat bagian "Item konfigurasi Doris Sink" topik Gunakan Flink untuk mengimpor data. |
table-conf | Item konfigurasi tabel ApsaraDB for SelectDB. Item konfigurasi tersebut terkandung dalam properti saat tabel ApsaraDB for SelectDB dibuat. |
Untuk menyinkronkan data, Anda harus menginstal dependensi Flink CDC, seperti flink-sql-connector-mysql-cdc-${version}.jar dan flink-sql-connector-oracle-cdc-${version}.jar, di direktori $FLINK_HOME/lib.
Jika Anda ingin menyinkronkan data penuh dari database, versi Flink harus 1.15 atau lebih baru. Untuk informasi lebih lanjut tentang cara mengunduh Flink Doris Connector versi berbeda, kunjungi org/apache/doris.
Migrasikan data menggunakan katalog
ApsaraDB for SelectDB menyediakan fitur katalog untuk mengakses sumber data MySQL dengan melakukan kueri federasi. Ini memungkinkan Anda dengan mudah dan cepat memigrasikan data historis dari sumber data MySQL ke instans ApsaraDB for SelectDB. Contoh berikut menunjukkan cara menyinkronkan data dari database MySQL upstream ke instans ApsaraDB for SelectDB menggunakan katalog. Untuk informasi lebih lanjut, lihat Sumber Data JDBC.
Prosedur
Hubungkan ke instans SelectDB. Untuk informasi lebih lanjut, lihat Koneksi Instans.
CatatanJika Anda masuk ke instans ApsaraDB for SelectDB menggunakan Data Management (DMS), perintah
SWITCHmenjadi tidak valid. Kami sarankan Anda menghubungkan ke instans ApsaraDB for SelectDB menggunakan klien MySQL.Buat katalog Java Database Connectivity (JDBC) untuk sumber data MySQL.
CREATE CATALOG jdbc_mysql PROPERTIES (
"type"="jdbc",
"user"="root",
"password"="123456",
"jdbc_url" = "jdbc:mysql://127.0.0.1:3306/demo",
"driver_url" = "mysql-connector-java-8.0.25.jar",
"driver_class" = "com.mysql.cj.jdbc.Driver",
"checksum" = "fdf55dcef04b09f2eaf42b75e61ccc9a"
)Parameter
Parameter | Wajib | Nilai default | Deskripsi |
user | Ya | Tidak ada nilai default | Akun yang digunakan untuk menghubungkan ke database MySQL. |
password | Ya | Tidak ada nilai default | Kata sandi akun yang digunakan untuk menghubungkan ke database MySQL. |
jdbc_url | Ya | Tidak ada nilai default | URL JDBC yang digunakan untuk menghubungkan ke database MySQL. |
driver_url | Ya | Tidak ada nilai default | Nama paket JAR driver JDBC. |
driver_class | Ya | Tidak ada nilai default | Nama kelas driver JDBC. |
lower_case_table_names | Tidak | "false" | Menentukan apakah akan menyinkronkan nama database dan tabel dari sumber data JDBC eksternal dalam huruf kecil. |
only_specified_database | Tidak | "false" | Menentukan apakah hanya memigrasikan data dari database tertentu. |
include_database_list | Tidak | "" | Nama database tempat Anda ingin memigrasikan data. Parameter ini berlaku hanya jika Anda menyetel parameter |
exclude_database_list | Tidak | "" | Nama database tempat Anda tidak ingin memigrasikan data. Parameter ini berlaku hanya jika Anda menyetel parameter |
Buat tabel di instans ApsaraDB for SelectDB lalu jalankan pernyataan
INSERT INTO SELECTdari sintaks ekstrak, transformasi, dan muat (ETL) untuk menyinkronkan data. Untuk informasi lebih lanjut, lihat Gunakan INSERT INTO untuk Mengimpor Data.
# Buat tabel.
CREATE TABLE selectdb_table ...
# Sinkronkan data.
INSERT INTO selectdb_table SELECT * FROM mysql_catalog.mysql_database.mysql_table;Migrasikan data menggunakan DataWorks
ApsaraDB for SelectDB memungkinkan Anda menggunakan fitur Data Integration dari DataWorks untuk mengimpor data historis. Bagian ini menjelaskan cara menggunakan DataWorks untuk menyinkronkan data dari database MySQL ke instans ApsaraDB for SelectDB. Untuk informasi lebih lanjut, lihat Gunakan DataWorks untuk Mengimpor Data.
Anda tidak dapat menulis bidang tipe data BITMAP, HyperLogLog (HLL), atau QUANTILE_STATE.
Tambahkan sumber data
Sebelum mengonfigurasi tugas sinkronisasi data, tambahkan sumber data MySQL dan sumber data ApsaraDB for SelectDB ke DataWorks.
Tambahkan sumber data MySQL. Untuk informasi lebih lanjut, lihat Sumber Data MySQL.
Tambahkan sumber data ApsaraDB for SelectDB. Untuk informasi lebih lanjut, lihat Tambahkan dan Kelola Sumber Data. Tabel berikut menjelaskan parameter yang digunakan untuk menambahkan sumber data ApsaraDB for SelectDB.
Parameter
Deskripsi
Data Source Name
Nama sumber data.
Host Address/IP Address
URL JDBC dalam format
jdbc:mysql://<ip>:<port>/<dbname>.Untuk mendapatkan titik akhir virtual private cloud (VPC) atau titik akhir publik dan port MySQL instans ApsaraDB for SelectDB, lakukan operasi berikut: Masuk ke ApsaraDB for SelectDB dan buka halaman Instance Details instans yang ingin Anda lihat informasinya. Di bagian Network Information halaman Informasi Dasar, lihat nilai parameter VPC Endpoint atau Public Endpoint dan parameter MySQL Port.
Contoh:
jdbc:mysql://selectdb-cn-4xl3jv1****.selectdbfe.rds.aliyuncs.com:9030/test_dbHTTP Connection Address
Alamat IP dan nomor port yang digunakan untuk mengakses instans ApsaraDB for SelectDB melalui HTTP. Nilainya dalam format
<ip>:<port>.Untuk mendapatkan titik akhir VPC atau titik akhir publik dan port HTTP instans ApsaraDB for SelectDB, lakukan operasi berikut: Masuk ke ApsaraDB for SelectDB dan buka halaman Instance Details instans yang ingin Anda lihat informasinya. Di bagian Network Information halaman Informasi Dasar, lihat nilai parameter VPC Endpoint atau Public Endpoint dan parameter HTTP Port.
Contoh:
selectdb-cn-4xl3jv1****.selectdbfe.rds.aliyuncs.com:8080.Username
Nama pengguna akun pemilik instans ApsaraDB for SelectDB.
Password
Kata sandi akun pemilik instans ApsaraDB for SelectDB.
Konfigurasikan tugas sinkronisasi data
Anda dapat mengonfigurasi tugas sinkronisasi data menggunakan antarmuka pengguna (UI) tanpa kode atau editor kode. Untuk informasi lebih lanjut, lihat topik-topik berikut:
untuk menambahkan objek ke bagian Selected Objects. Anda dapat memilih kolom, tabel, atau database sebagai objek yang akan disinkronkan.