全部产品
Search
文档中心

ApsaraDB for SelectDB:Migrasi Data StarRocks

更新时间:Nov 11, 2025

Topik ini menjelaskan cara menggunakan katalog untuk memigrasikan data offline dari StarRocks ke ApsaraDB for SelectDB.

Prasyarat

Lingkungan Contoh

Contoh ini menunjukkan cara memigrasikan data dari tabel `SR_t` di database StarRocks `starRocks_db` ke tabel `test_SR2SelectDB` di database SelectDB `test_db`. Anda dapat menyesuaikan parameter sesuai kebutuhan. Lingkungan contoh adalah sebagai berikut:

  • Database tujuan: test_db

  • Tabel tujuan: test_SR2SelectDB

  • Database sumber: starRocks_db

  • Tabel sumber: SR_t

Contoh: Persiapkan Data Sumber

Login ke instans StarRocks sumber Anda dan lakukan langkah-langkah berikut.

  1. Buat database.

    CREATE DATABASE starRocks_db;
  2. Buat tabel.

    CREATE TABLE SR_t
    (
        id int,
        name string,
        age int
    )
    DISTRIBUTED BY HASH(id) BUCKETS 4
    PROPERTIES("replication_num" = "1");
  3. Masukkan data.

    INSERT INTO SR_t VALUES
    (1, 'Alice', 25),
    (2, 'Bob', 30),
    (3, 'Charlie', 35),
    (4, 'David', 40),
    (5, 'Eve', 45);

Prosedur

  1. Sambungkan ke instans SelectDB. Untuk informasi lebih lanjut, lihat Sambungkan ke instans.

    Catatan

    Instruksi SWITCH tidak berfungsi saat Anda login menggunakan DMS. Anda harus terhubung menggunakan klien MySQL.

  2. Buat katalog Java Database Connectivity (JDBC) StarRocks. Untuk informasi lebih lanjut, lihat Sumber data JDBC.

    CREATE CATALOG starrocks_catalog 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

    Nama pengguna untuk database StarRocks.

    password

    Ya

    Tidak ada

    Kata sandi untuk database StarRocks.

    jdbc_url

    Ya

    Tidak ada

    String koneksi JDBC. Harus berisi titik akhir database StarRocks.

    driver_url

    Ya

    Tidak ada

    Nama paket JAR driver JDBC.

    Catatan
    • Gunakan mysql-connector-java-8.0.25.jar.

    • Untuk menggunakan paket JAR yang berbeda, ajukan tiket.

    driver_class

    Ya

    Tidak ada

    Nama kelas driver JDBC.

    Atur parameter ini ke com.mysql.cj.jdbc.Driver.

    lower_case_table_names

    (Diganti nama menjadi `lower_case_meta_names` di versi 4.0)

    Tidak

    "false"

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

    true: Anda dapat mengkueri database dan tabel dengan nama yang bukan huruf kecil dengan mempertahankan pemetaan dari nama huruf kecil ke nama sebenarnya di sistem jarak jauh. Dalam hal ini, nama database, tabel, dan kolom dikonversi menjadi huruf kecil.

    false: Anda tidak dapat mengkueri database dan tabel dengan nama yang bukan huruf kecil.

    Penting
    • Untuk SelectDB 3.0:

      • Jika parameter lower_case_table_names frontend (FE) diatur ke 1 atau 2, Anda harus mengatur parameter lower_case_table_names Katalog ke true.

      • Jika parameter lower_case_table_names FE diatur ke 0, parameter Katalog dapat diatur ke true atau false.

    • Untuk SelectDB 4.0:

      • Jika parameter lower_case_table_names FE adalah 0 atau 2, nama database, tabel, dan kolom tidak dikonversi.

      • Jika parameter lower_case_table_names FE adalah 1, nama tabel dikonversi menjadi huruf kecil, tetapi nama database dan kolom tidak.

    only_specified_database

    Tidak

    "false"

    Menentukan apakah hanya akan menyinkronkan database yang ditentukan.

    true: Hanya menyinkronkan database yang ditentukan dalam URL JDBC.

    false: Menyinkronkan semua database dalam URL JDBC.

    include_database_list

    Tidak

    ""

    Ketika only_specified_database=true, parameter ini menentukan beberapa database yang akan disinkronkan. Pisahkan nama database dengan koma (,). Nama database bersifat case-sensitive.

    exclude_database_list

    Tidak

    ""

    Ketika only_specified_database=true, parameter ini menentukan beberapa database yang akan dikecualikan dari sinkronisasi. Pisahkan nama database dengan koma (,). Nama database bersifat case-sensitive.

    meta_names_mapping

    Tidak

    ""

    Jika sumber data eksternal memiliki nama yang hanya berbeda dalam kapitalisasi, seperti `DORIS` dan `doris`, mengkueri Katalog dapat menyebabkan kesalahan karena ambiguitas. Dalam kasus ini, konfigurasikan parameter meta_names_mapping untuk menyelesaikan konflik.

    Untuk informasi lebih lanjut, lihat Pengaturan sensitivitas kapitalisasi.

    Penting

    Parameter ini hanya berlaku untuk SelectDB 4.0.

  3. Lihat katalog.

    SHOW CATALOGS; -- Periksa apakah Katalog berhasil dibuat.

    Hasilnya adalah sebagai berikut.

    +--------------+-------------------+----------+-----------+-------------------------+---------------------+------------------------+
    | CatalogId    | CatalogName       | Type     | IsCurrent | CreateTime              | LastUpdateTime      | Comment                |
    +--------------+-------------------+----------+-----------+-------------------------+---------------------+------------------------+
    | 436009309195 | starrocks_catalog | jdbc     |           | 2024-08-06 17:09:08.058 | 2024-07-19 18:04:37 |                        |
    |            0 | internal          | internal | yes       | UNRECORDED              | NULL                | Doris internal catalog |
    +--------------+-------------------+----------+-----------+-------------------------+---------------------+------------------------+
  4. (Opsi) Beralih ke katalog eksternal `SR_catalog`.

    Anda dapat melihat dan mengakses data di katalog eksternal starrocks_catalog dengan cara yang sama seperti saat mengakses data di katalog internal.

    Catatan

    Saat ini, ApsaraDB for SelectDB hanya mendukung operasi baca pada data di katalog eksternal.

    SWITCH SR_catalog;
  5. (Opsi) Beralih ke katalog internal `internal`.

    Jika Anda melewatkan langkah sebelumnya, lewati langkah ini.

    SWITCH internal;
  6. (Opsi) Buat database.

    Jika database tujuan telah dibuat, lewati langkah ini.

    CREATE database test_db;
  7. Beralih ke database tujuan.

    USE test_db;
  8. Buat tabel.

    Jika tabel tujuan sudah ada, pastikan tipe data kolom target sesuai dengan tipe data kolom sumber di StarRocks.

    Jika tabel tujuan belum ada, pastikan tipe data kolom target sesuai dengan tipe data kolom sumber di StarRocks saat membuat tabel.

    Untuk informasi lebih lanjut tentang pemetaan kolom, lihat Pemetaan tipe.

    CREATE TABLE test_SR2SelectDB
    (
        id int,
        name string,
        age int
    )
    DISTRIBUTED BY HASH(id) BUCKETS 4
    PROPERTIES("replication_num" = "1");
  9. Migrasikan data.

    INSERT INTO test_SR2SelectDB SELECT *  FROM doris_catalog.SR_db.SR_t;
  10. Verifikasi data yang diimpor.

    SELECT * FROM test_SR2SelectDB;

Migrasi Data Inkremental

Dalam lingkungan produksi, data StarRocks mencakup data offline dan data inkremental. Skenario umum untuk memigrasikan data dari StarRocks ke SelectDB adalah menyalin data ke gudang data untuk akselerasi kueri. Untuk migrasi data inkremental, Anda dapat menggunakan salah satu dari dua metode berikut:

  • Saat menghasilkan data untuk SelectDB, tulis salinan data tersebut secara bersamaan ke SelectDB.

  • Gunakan pekerjaan periodik untuk membaca data terpartisi dari StarRocks dan menulisnya ke SelectDB.