All Products
Search
Document Center

ApsaraDB for SelectDB:Migrasi data MySQL

Last Updated:Aug 29, 2026

Anda dapat menggunakan DTS, Flink CDC, katalog, atau DataWorks untuk melakukan migrasi data dari sumber MySQL (seperti MySQL yang dikelola sendiri, ApsaraDB RDS for MySQL, dan PolarDB for MySQL) ke ApsaraDB for SelectDB. Pilih metode berdasarkan volume data dan kasus penggunaan Anda.

Perbandingan metode migrasi

DTS, DataWorks, Flink CDC, dan katalog semuanya dapat melakukan migrasi data MySQL ke ApsaraDB for SelectDB, tetapi kemampuan masing-masing berbeda. Pilih metode yang paling sesuai dengan skenario Anda.

Metode

Migrasi data historis

Sinkronisasi data inkremental

Migrasi skema

Migrasi database

Sinkronisasi DDL

Verifikasi data

DTS

✔️

✔️

✔️

✔️

✔️

✔️

DataWorks

✔️

✔️

✔️

✔️

✔️

❌

Flink CDC

✔️

✔️

✔️

✔️

✔️

❌

catalog

✔️

❌

❌

❌

❌

❌

Bagian-bagian berikut menjelaskan langkah-langkah dasar untuk setiap metode. Untuk detail selengkapnya, lihat dokumentasi masing-masing metode.

Prasyarat

Migrasi data dengan DTS

DTS mendukung migrasi data historis dan sinkronisasi data inkremental dari MySQL ke ApsaraDB for SelectDB, serta menyediakan kemampuan seperti migrasi database dan tabel, sinkronisasi DDL, dan verifikasi data. Contoh berikut menggunakan instans ApsaraDB RDS for MySQL. Untuk informasi selengkapnya, lihat Gunakan DTS untuk mengimpor data.

Prosedur

  1. Masuk ke Konsol ApsaraDB for SelectDB.

  2. Di pojok kiri atas, pilih wilayah tempat instans Anda berada.

  3. Pada halaman Instances, klik Instance ID yang dituju untuk membuka halaman Instance Details.

  4. Di panel navigasi sebelah kiri, klik Data Pipeline, lalu pilih tab Data Synchronization.

    Catatan

    Sinkronisasi data DTS menggabungkan migrasi data historis untuk transfer satu kali dengan sinkronisasi data inkremental untuk pembaruan secara real-time.

  5. Klik Create Synchronization Task dan konfigurasikan database sumber dan tujuan.

  6. Kategori

    Konfigurasi

    Deskripsi

    Informasi Tugas

    Task Name

    DTS secara otomatis menghasilkan nama tugas. Kami menyarankan agar Anda menentukan nama deskriptif untuk memudahkan identifikasi. Nama tersebut tidak harus unik.

    Database Sumber

    Database Type

    Pilih MySQL.

    Access Method

    Pilih Alibaba Cloud Instance.

    Instance Region

    Pilih wilayah tempat instans sumber ApsaraDB RDS for MySQL berada.

    RDS Instance ID

    Pilih ID instans sumber ApsaraDB RDS for MySQL. Contoh: rm-2z3m****.

    Database Account

    Masukkan akun database instans sumber ApsaraDB RDS for MySQL. Untuk izin yang diperlukan, lihat Izin yang diperlukan untuk akun database.

    Database Password

    Masukkan kata sandi yang sesuai dengan akun database tersebut.

    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 selengkapnya, lihat Gunakan sertifikat cloud untuk mengaktifkan enkripsi SSL dengan cepat.

    Database Tujuan

    Database Type

    Pilih SelectDB.

    Access Method

    Pilih Alibaba Cloud Instance.

    Instance Region

    Pilih wilayah tempat instans SelectDB tujuan berada.

    Instance ID

    Pilih ID instans SelectDB tujuan.

    Database Account

    Masukkan akun database instans SelectDB tujuan. Untuk izin yang diperlukan, lihat Izin yang diperlukan untuk akun database.

    Database Password

    Masukkan kata sandi yang sesuai dengan akun database tersebut.

  7. Setelah menyelesaikan konfigurasi, klik Test Connection and Proceed di bagian bawah halaman.

  8. Konfigurasikan objek tugas dan pengaturan lanjutan.

  9. Konfigurasi

    Deskripsi

    Synchronization Types

    Incremental Data Synchronization dipilih. Secara default, Anda juga harus memilih Schema Synchronization dan Full Data Synchronization. Setelah pemeriksaan awal selesai, DTS akan melakukan sinkronisasi data penuh dari objek yang dipilih dari instans sumber ke kluster tujuan. Ini menjadi garis dasar data untuk sinkronisasi data inkremental berikutnya.

    Penting

    Tipe data dikonversi saat data disinkronkan dari MySQL ke SelectDB. Jika Anda tidak memilih Schema Synchronization, Anda harus terlebih dahulu membuat tabel dengan skema yang sesuai yang menggunakan model Unique Key di instans SelectDB tujuan. Untuk informasi selengkapnya, lihat Pemetaan tipe data dan Model data.

    Source Objects

    Pada kotak Source Objects, klik objek yang ingin Anda sinkronkan, lalu klik 向右 untuk memindahkan objek ke kotak Selected Objects. Anda dapat memilih objek pada tingkat database, tabel, atau kolom.

    Penting
    • Jika Anda memilih objek pada tingkat database, DTS tidak akan menyinkronkan data untuk tabel yang dibuat setelah tugas dimulai. Jika Anda berencana menambahkan tabel selama sinkronisasi, pilih objek pada tingkat tabel. Anda dapat mengubah pilihan nanti dengan menggunakan Modify Synchronized Objects.

    • Jika Anda memilih objek pada tingkat tabel dan perlu mengeditnya, misalnya dengan memetakan nama tabel atau kolom, satu tugas sinkronisasi mendukung maksimal 1.000 tabel. Jika batas ini dilampaui, kesalahan akan dilaporkan saat Anda mengirimkan tugas. Dalam kasus ini, bagi tabel yang akan disinkronkan menjadi beberapa batch dan konfigurasikan beberapa tugas, atau konfigurasikan tugas sinkronisasi tingkat database.

    Selected Objects

    • Untuk mengganti nama objek sinkronisasi tunggal di instans tujuan, klik kanan objek tersebut di kotak Selected Objects. Untuk informasi selengkapnya tentang penggantian nama objek, lihat Memetakan satu database, tabel, atau kolom.

    • Untuk mengganti nama beberapa objek sinkronisasi di instans tujuan secara batch, klik Batch Edit di pojok kanan atas kotak Selected Objects. Untuk informasi selengkapnya, lihat Memetakan database, tabel, dan kolom secara batch.

    Catatan
    • Untuk memilih operasi SQL yang akan disinkronkan pada tingkat database atau tabel, klik kanan objek yang akan disinkronkan di kotak Selected Objects, lalu pilih operasi SQL yang diinginkan di kotak dialog yang muncul. Untuk daftar operasi yang didukung, lihat Operasi SQL yang mendukung sinkronisasi inkremental.

    • Untuk memfilter data menggunakan klausa WHERE, klik kanan tabel yang akan disinkronkan di kotak Selected Objects, lalu atur kondisi filter di kotak dialog yang muncul. Untuk informasi selengkapnya, lihat Atur kondisi filter.

    • Jika Anda menggunakan fitur pemetaan nama objek, objek lain yang bergantung pada objek yang dipetakan ulang mungkin gagal disinkronkan.

  10. Opsi: Setelah menyelesaikan konfigurasi di atas, klik Next: Configure Database and Table Fields untuk mengatur Primary Key Column, Distribution Key, dan Engine untuk tabel tujuan.

  11. Catatan
    • Langkah ini tersedia hanya jika Anda memilih Synchronization Types untuk Schema Synchronization saat mengonfigurasi objek tugas. Anda dapat mengatur Definition Status ke All lalu memodifikasi pengaturannya.

    • Anda dapat memilih beberapa kolom untuk membentuk Primary Key Column komposit, dan Anda harus memilih satu atau beberapa kolom dari Primary Key Column sebagai Distribution Key. Untuk Engine, hanya Unique yang didukung.

  12. Simpan tugas dan jalankan pemeriksaan awal. Setelah Precheck Success Rate mencapai 100%, klik Next: Purchase.

  13. Pada halaman Purchase, pilih metode penagihan dan spesifikasi tautan untuk instansi sinkronisasi data. Baca dan pilih Data Transmission Service (Pay-As-You-Go) Service Terms. Klik Purchase and Start untuk memulai tugas sinkronisasi. Anda dapat melihat progres tugas di halaman sinkronisasi data.

Migrasi data dengan DataWorks

Data Integration DataWorks dapat menyinkronkan data dari MySQL ke ApsaraDB for SelectDB. Untuk informasi selengkapnya, lihat Impor data menggunakan DataWorks.

Penting

Penulisan ke bidang dengan tipe data BITMAP, HLL (HyperLogLog), atau QUANTILE_STATE tidak didukung.

Tambahkan sumber data

Saat mengembangkan tugas sinkronisasi data, buat sumber data MySQL dan sumber data SelectDB di DataWorks.

  1. Buat sumber data MySQL. Untuk informasi selengkapnya, lihat Sumber data MySQL.

  2. Buat sumber data SelectDB. Untuk informasi selengkapnya, lihat Manajemen sumber data. Tabel berikut menjelaskan beberapa parameter konfigurasi untuk sumber data SelectDB.

    Parameter

    Deskripsi

    Data Source Name

    Nama sumber data.

    MySQL Connection URL

    Masukkan string koneksi JDBC jdbc:mysql://<ip>:<port>/<dbname>.

    Anda dapat memperoleh VPC Endpoint (atau Public Endpoint) dan MySQL Port dari halaman Instance Details > Network Information di Konsol ApsaraDB for SelectDB.

    Contoh: jdbc:mysql://selectdb-cn-4xl3jv1****.selectdbfe.rds.aliyuncs.com:9030/test_db

    HTTP Connection URL

    Masukkan titik akhir protokol HTTP dalam format <ip>:<port>.

    Anda dapat memperoleh VPC Endpoint (atau Public Endpoint) dan HTTP Port dari halaman Instance Details > Network Information di Konsol ApsaraDB for SelectDB.

    Contoh: selectdb-cn-4xl3jv1****.selectdbfe.rds.aliyuncs.com:8080

    Username

    Masukkan username untuk instans ApsaraDB for SelectDB.

    Password

    Masukkan kata sandi untuk pengguna yang ditentukan dari instans ApsaraDB for SelectDB.

Konfigurasi sinkronisasi data

Untuk mengonfigurasi tugas migrasi data, lihat dokumen berikut:

Migrasi data dengan Flink CDC

Flink menyediakan tiga metode untuk migrasi data dari MySQL ke SelectDB: Flink SQL, Flink CDC, dan DataStream. Flink CDC mendukung migrasi data historis, sinkronisasi data inkremental, migrasi database dan tabel, serta sinkronisasi DDL. Contoh berikut menggunakan Flink CDC untuk menyinkronkan data dari MySQL ke ApsaraDB for SelectDB. Untuk informasi selengkapnya, lihat Gunakan Flink untuk mengimpor data.

Prosedur

Persiapan lingkungan

Siapkan lingkungan Flink. Contoh ini menggunakan lingkungan Flink 1.16 standalone.

  1. Unduh dan ekstrak flink-1.16.3-bin-scala_2.12.tgz. Jika versi ini tidak tersedia, unduh versi lainnya. Untuk versi lainnya, lihat Apache Flink.

    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. Buka direktori FLINK_HOME/lib dan unduh flink-sql-connector-mysql-cdc-2.4.2 dan flink-doris-connector-1.16-1.5.2.

    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. Jalankan kluster Flink Standalone.

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

  5. Hubungkan ke instans ApsaraDB for SelectDB melalui protokol MySQL. Untuk informasi selengkapnya, lihat Hubungkan ke instans.

  6. Buat database uji dan tabel uji.

    1. Buat database uji.

      CREATE DATABASE test_db;
    2. Buat 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;

Kirimkan pekerjaan Flink CDC

Gunakan sintaks berikut untuk mengirimkan pekerjaan 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 Flink, yang memengaruhi frekuensi sinkronisasi data. Nilai 10s direkomendasikan.

parallelism.default

Paralelisme pekerjaan Flink. Anda dapat meningkatkan paralelisme untuk meningkatkan throughput sinkronisasi data.

database

Nama database tujuan di SelectDB.

including-tables

Tabel MySQL yang akan disinkronkan. Anda dapat menggunakan tanda vertikal (|) untuk memisahkan beberapa tabel. Ekspresi reguler didukung. Misalnya, --including-tables table1|tbl.* menentukan bahwa table1 dan semua tabel yang namanya diawali tbl akan disinkronkan.

excluding-tables

Tabel yang tidak ingin Anda sinkronkan. Metode konfigurasinya sama dengan parameter including-tables.

mysql-conf

Konfigurasi sumber MySQL CDC. Untuk informasi selengkapnya, lihat MySQL CDC Connector. Parameter hostname, username, password, dan database-name wajib diisi.

sink-conf

Semua konfigurasi untuk sink Doris. Untuk informasi selengkapnya, lihat Gunakan Flink untuk mengimpor data.

table-conf

Item konfigurasi untuk tabel SelectDB. Ini sesuai dengan konten dalam klausa PROPERTIES pernyataan CREATE TABLE.

Catatan
  1. Untuk menyinkronkan data, tambahkan dependensi Flink CDC yang diperlukan, seperti flink-sql-connector-mysql-cdc-${version}.jar dan flink-sql-connector-oracle-cdc-${version}.jar, ke direktori $FLINK_HOME/lib.

  2. Sinkronisasi tingkat database memerlukan Flink 1.15 atau lebih baru. Untuk unduhan Flink Doris Connector, lihat Flink Doris Connector.

Migrasi data dengan katalog

Fitur katalog di SelectDB menggunakan kueri federasi untuk mengakses MySQL, sehingga menyederhanakan migrasi data historis. Contoh berikut menyinkronkan data dari database MySQL ke ApsaraDB for SelectDB. Untuk informasi selengkapnya, lihat Sumber data JDBC.

Prosedur

  1. Hubungkan ke instans SelectDB. Untuk informasi selengkapnya, lihat Hubungkan ke instans.

    Catatan

    Pernyataan SWITCH tidak berfungsi saat Anda terhubung menggunakan DMS. Kami menyarankan untuk terhubung dengan klien MySQL.

  2. Buat katalog JDBC 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"
    )

    Deskripsi parameter

    Parameter

    Wajib

    Default

    Deskripsi

    user

    Ya

    Tidak ada

    Akun database.

    password

    Ya

    Tidak ada

    Kata sandi untuk akun database.

    jdbc_url

    Ya

    Tidak ada

    String koneksi JDBC.

    driver_url

    Ya

    Tidak ada

    Nama file paket JAR driver JDBC.

    driver_class

    Ya

    Tidak ada

    Nama kelas driver JDBC.

    lower_case_table_names

    Tidak

    "false"

    Menentukan apakah nama database dan tabel dari sumber data JDBC eksternal disinkronkan dalam huruf kecil.

    only_specified_database

    Tidak

    "false"

    Menentukan apakah hanya database yang ditentukan yang disinkronkan.

    include_database_list

    Tidak

    ""

    Saat only_specified_database=true, menentukan daftar database yang dipisahkan koma untuk disinkronkan. Nama database bersifat case-sensitive.

    exclude_database_list

    Tidak

    ""

    Saat only_specified_database=true, menentukan daftar database yang dipisahkan koma untuk dikecualikan dari sinkronisasi. Nama database bersifat case-sensitive.

    1. Buat tabel tujuan di SelectDB, lalu gunakan pernyataan INSERT INTO ... SELECT untuk menyinkronkan data. Untuk informasi selengkapnya tentang INSERT INTO, lihat INSERT INTO.

    # Buat tabel tujuan.
    CREATE TABLE selectdb_table ...
    
    # Migrasi data.
    INSERT INTO selectdb_table SELECT * FROM mysql_catalog.mysql_database.mysql_table;