全部产品
Search
文档中心

ApsaraDB for SelectDB:Migrasikan data dari sumber data MySQL

更新时间:Jul 30, 2025

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

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

  1. Masuk ke Konsol ApsaraDB for SelectDB.

  2. Di bilah navigasi atas, pilih wilayah tempat instans yang ingin Anda kelola berada.

  3. Di panel navigasi di sebelah kiri, klik Instances. Di halaman Instances, temukan instans dan klik ID-nya untuk masuk ke halaman Instance Details.

  4. Di panel navigasi di sebelah kiri halaman Detail Instans, klik Data Pipeline. Di halaman yang muncul, klik tab Data Synchronization.

    Catatan

    Pada 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.

  5. Klik Create Data Synchronization Task. Di halaman Buat Tugas Sinkronisasi Data, konfigurasikan informasi tentang database sumber dan tujuan.

  6. 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.

  7. Di bagian bawah halaman, klik Test Connectivity and Proceed.

  8. Konfigurasikan objek yang akan dimigrasikan dan pengaturan lanjutan.

  9. 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 向右 untuk menambahkan objek ke bagian Selected Objects. Anda dapat memilih kolom, tabel, atau database sebagai objek yang akan disinkronkan.

    Penting
    1. 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.

    2. 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.

    Selected Objects

    • 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.

    Catatan
    1. 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.

    2. 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.

    3. Jika Anda menggunakan fitur pemetaan nama objek untuk mengganti nama objek, objek lain yang bergantung pada objek tersebut mungkin gagal disinkronkan.

  10. 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.

  11. Catatan
    1. Anda hanya dapat melakukan langkah ini jika Anda memilih Schema Synchronization untuk parameter Synchronization Types. Untuk memodifikasi parameter, atur parameter Definition Status ke All.

    2. 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.

  12. Simpan pengaturan tugas dan jalankan pemeriksaan awal. Tunggu hingga tingkat keberhasilan menjadi 100%. Kemudian, klik Next: Purchase Instance.

  13. 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.

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.

  1. 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.tgz
  2. Unduh 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.jar
  3. Mulai kluster Flink standalone. Contoh kode:

    bin/start-cluster.sh
  4. Buat instans ApsaraDB for SelectDB. Untuk informasi lebih lanjut, lihat Buat Instans.

  5. Hubungkan ke instans ApsaraDB for SelectDB melalui protokol MySQL. Untuk informasi lebih lanjut, lihat Hubungkan ke Instans.

  6. Buat database uji dan tabel uji.

    1. Jalankan pernyataan berikut untuk membuat database uji:

      CREATE DATABASE test_db;
    2. 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: --including-tables table1|tbl.*, yang menentukan bahwa data disinkronkan dari table1 dan semua tabel yang namanya dimulai dengan tbl.

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 hostname, username, password, dan database-name wajib.

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.

Catatan
  1. 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.

  2. 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

  1. Hubungkan ke instans SelectDB. Untuk informasi lebih lanjut, lihat Koneksi Instans.

    Catatan

    Jika Anda masuk ke instans ApsaraDB for SelectDB menggunakan Data Management (DMS), perintah SWITCH menjadi tidak valid. Kami sarankan Anda menghubungkan ke instans ApsaraDB for SelectDB menggunakan klien MySQL.

  2. 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 only_specified_database ke true. Pisahkan beberapa nama database dengan koma (,). Nama database bersifat case-sensitive.

exclude_database_list

Tidak

""

Nama database tempat Anda tidak ingin memigrasikan data. Parameter ini berlaku hanya jika Anda menyetel parameter only_specified_database ke true. Pisahkan beberapa nama database dengan koma (,). Nama database bersifat case-sensitive.

  1. Buat tabel di instans ApsaraDB for SelectDB lalu jalankan pernyataan INSERT INTO SELECT dari 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.

Penting

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.

  1. Tambahkan sumber data MySQL. Untuk informasi lebih lanjut, lihat Sumber Data MySQL.

  2. 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_db

    HTTP 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: