Tüm Ürünler
Search
Belge Merkezi

ApsaraDB for SelectDB:MySQL verilerini geçirme

Son Güncelleme:Oct 08, 2026

DTS, Flink CDC, katalog veya DataWorks kullanarak MySQL kaynaklarından (kendi yönetiminizdeki MySQL, ApsaraDB RDS for MySQL ve PolarDB for MySQL gibi) ApsaraDB for SelectDB hizmetine veri geçişi yapabilirsiniz. Veri hacmine ve kullanım senaryonuz bağlı olarak bir yöntem seçin.

Geçiş yöntemlerinin karşılaştırılması

DTS, DataWorks, Flink CDC ve katalog seçeneklerinin tümü MySQL verilerini ApsaraDB for SelectDB hizmetine aktarabilir; ancak yetenekleri farklılık gösterir. Senaryonuz için en uygun yöntemi seçin.


Yöntem


Tarihsel veri geçişi


Artımlı veri senkronizasyonu


Şema geçişi


Veritabanı geçişi


DDL senkronizasyonu


Veri doğrulama


DTS


✔️


✔️


✔️


✔️


✔️


✔️


DataWorks


✔️


✔️


✔️


✔️


✔️


❌


Flink CDC


✔️


✔️


✔️


✔️


✔️


❌


katalog


✔️


❌


❌


❌


❌


❌

Aşağıdaki bölümlerde her bir yönteme ait temel adımlar özetlenmiştir. Ayrıntılar için ilgili yöntemin belgelerine bakın.

Ön koşullar

DTS ile veri geçişi yapma

DTS, MySQL'den ApsaraDB for SelectDB hizmetine tarihsel veri geçişi ve artımlı veri senkronizasyonunu destekler; veritabanı ve tablo geçişi, DDL senkronizasyonu ve veri doğrulama gibi özellikler sunar. Aşağıdaki örnek bir ApsaraDB RDS for MySQL örneğini kullanır. Daha fazla bilgi için bkz. DTS kullanarak veri içe aktarma.

Yordam

  1. ApsaraDB for SelectDB konsolu üzerinde oturum açın.

  2. Sol üst köşede örneğinizin bulunduğu bölgeyi seçin.

  3. Instances sayfasında hedef Instance ID değerini tıklayarak Instance Details sayfasına gidin.

  4. Sol gezinme bölmesinde Data Pipeline seçeneğini tıklayın ve ardından Data Synchronization sekmesini seçin.

    Not

    DTS veri senkronizasyonu, tek seferlik aktarımlar için tarihsel veri geçişini gerçek zamanlı güncellemeler için artımlı veri senkronizasyonu ile birleştirir.

  5. Create Synchronization Task seçeneğini tıklayın ve kaynak ile hedef veritabanlarını yapılandırın.

  6. Kategori

    Yapılandırma

    Açıklama

    Görev Bilgileri

    Task Name

    DTS otomatik olarak bir görev adı oluşturur. Kolay tanımlama için açıklayıcı bir ad belirtmenizi öneririz. Adın benzersiz olması gerekmez.

    Kaynak Veritabanı

    Database Type

    MySQL seçin.

    Access Method

    Alibaba Cloud Instance seçin.

    Instance Region

    Kaynak ApsaraDB RDS for MySQL örneğinin bulunduğu bölgeyi seçin.

    RDS Instance ID

    Kaynak ApsaraDB RDS for MySQL örneğinin kimliğini seçin. Örnek: rm-2z3m****.

    Database Account

    Kaynak ApsaraDB RDS for MySQL örneğinin veritabanı hesabını girin. Gerekli izinler için bkz. Veritabanı hesapları için gerekli izinler.

    Database Password

    Veritabanı hesabına karşılık gelen parolayı girin.

    Encryption

    İhtiyaca göre Non-encrypted veya SSL-encrypted seçeneğini belirleyin. SSL-encrypted seçeneğini belirlerseniz RDS for MySQL örneğinde SSL şifrelemeyi önceden etkinleştirmeniz gerekir. Daha fazla bilgi için bkz. SSL şifrelemeyi hızlıca etkinleştirmek için cloud sertifikası kullanma.

    Hedef Veritabanı

    Database Type

    SelectDB seçin.

    Access Method

    Alibaba Cloud Instance seçin.

    Instance Region

    Hedef SelectDB örneğinin bulunduğu bölgeyi seçin.

    Instance ID

    Hedef SelectDB örneğinin kimliğini seçin.

    Database Account

    Hedef SelectDB örneğinin veritabanı hesabını girin. Gerekli izinler için bkz. Veritabanı hesapları için gerekli izinler.

    Database Password

    Veritabanı hesabına karşılık gelen parolayı girin.

  7. Yapılandırmayı tamamladıktan sonra sayfanın alt kısmında Test Connection and Proceed seçeneğini tıklayın.

  8. Görev nesnelerini ve gelişmiş ayarları yapılandırın.

  9. Yapılandırma

    Açıklama

    Synchronization Types

    Incremental Data Synchronization seçilidir. Varsayılan olarak ayrıca Schema Synchronization ve Full Data Synchronization seçeneklerini de belirlemeniz gerekir. Ön kontrol tamamlandıktan sonra DTS, seçilen nesnelerin tam veri senkronizasyonunu kaynak örneğinden hedef kümeye gerçekleştirir. Bu işlem, sonraki artımlı veri senkronizasyonu için temel veriler olarak işlev görür.

    Önemli

    Veriler MySQL'den SelectDB'ye senkronize edilirken veri türleri dönüştürülür. Schema Synchronization seçeneğini belirlemezseniz öncelikle hedef SelectDB örneğinde Unique Key modelini kullanan ve buna karşılık gelen şemaya sahip bir tablo oluşturmanız gerekir. Daha fazla bilgi için bkz. Veri türü eşlemeleri ve Veri modeli.

    Source Objects

    Source Objects kutusunda senkronize etmek istediğiniz nesneleri tıklayın ve ardından nesneleri Selected Objects kutusuna taşımak için 向右 simgesini tıklayın. Nesneleri veritabanı, tablo veya sütun düzeyinde seçebilirsiniz.

    Önemli
    • Nesneleri veritabanı düzeyinde seçerseniz DTS görev başladıktan sonra oluşturulan tabloların verilerini senkronize etmez. Senkronizasyon sırasında tablo eklemeyi planlıyorsanız nesneleri tablo düzeyinde seçin. Seçimi daha sonra Modify Synchronized Objects özelliğini kullanarak değiştirebilirsiniz.

    • Nesneleri tablo düzeyinde seçer ve tablo ya da sütun adlarını eşleme gibi düzenlemeler yapmanız gerekirse tek bir senkronizasyon görevi en fazla 1.000 tabloyu destekler. Bu sınır aşılırsa görevi gönderdiğinizde hata bildirilir. Bu durumda senkronize edilecek tabloları gruplara ayırıp birden çok görev yapılandırın veya veritabanı düzeyinde bir senkronizasyon görevi yapılandırın.

    Selected Objects

    Not
    • Veritabanı veya tablo düzeyinde senkronize edilecek SQL işlemlerini seçmek için Selected Objects kutusunda senkronize edilecek nesneye sağ tıklayın ve ardından açılan iletişim kutusunda istediğiniz SQL işlemlerini seçin. Desteklenen işlemlerin listesi için bkz. Artımlı senkronizasyonu destekleyen SQL işlemleri.

    • WHERE yan tümcesini kullanarak verileri filtrelemek için Selected Objects kutusunda senkronize edilecek tabloya sağ tıklayın ve ardından açılan iletişim kutusunda filtre koşulunu ayarlayın. Daha fazla bilgi için bkz. Filtre koşulları ayarlama.

    • Nesne adı eşleme özelliğini kullanırsanız yeniden eşlenen nesneye bağımlı diğer nesneler senkronize edilemeyebilir.

  10. İsteğe bağlı: Önceki yapılandırmaları tamamladıktan sonra hedef tablolar için Primary Key Column, Distribution Key ve Engine değerlerini ayarlamak üzere Next: Configure Database and Table Fields seçeneğini tıklayın.

  11. Not
    • Bu adım yalnızca görev nesnelerini yapılandırırken Synchronization Types altında Schema Synchronization seçeneğini belirlediğinizde kullanılabilir. Definition Status değerini All olarak ayarlayıp ardından ayarları değiştirebilirsiniz.

    • Bileşik bir Primary Key Column oluşturmak için birden çok sütun seçebilir ve Primary Key Column içinden bir veya daha fazla sütunu Distribution Key olarak seçmeniz gerekir. Engine için yalnızca Unique desteklenir.

  12. Görevi kaydedin ve ön kontrolü çalıştırın. Precheck Success Rate değeri %100 olduğunda Next: Purchase seçeneğini tıklayın.

  13. Purchase sayfasında veri senkronizasyonu örneği için faturalama yöntemini ve bağlantı teknik özelliklerini seçin. Data Transmission Service (Pay-As-You-Go) Service Terms metnini okuyup kabul edin. Senkronizasyon görevini başlatmak için Purchase and Start seçeneğini tıklayın. Görev ilerlemesini veri senkronizasyonu sayfasında görüntüleyebilirsiniz.

DataWorks ile veri geçişi yapma

DataWorks Data Integration, verileri MySQL'den ApsaraDB for SelectDB hizmetine senkronize edebilir. Daha fazla bilgi için bkz. DataWorks kullanarak veri içe aktarma.

Önemli

BITMAP, HLL (HyperLogLog) veya QUANTILE_STATE veri türündeki alanlara yazma işlemi desteklenmez.

Veri kaynakları ekleme

Bir veri senkronizasyonu görevi geliştirirken DataWorks'te bir MySQL veri kaynağı ve bir SelectDB veri kaynağı oluşturun.

  1. MySQL veri kaynağı oluşturun. Daha fazla bilgi için bkz. MySQL veri kaynağı.

  2. SelectDB veri kaynağı oluşturun. Daha fazla bilgi için bkz. Veri kaynağı yönetimi. Aşağıdaki tabloda SelectDB veri kaynağı için bazı yapılandırma parametreleri açıklanmıştır.

    Parametre

    Açıklama

    Data Source Name

    Veri kaynağının adı.

    MySQL Connection URL

    jdbc:mysql://<ip>:<port>/<dbname> JDBC bağlantı dizesini girin.

    VPC Endpoint (veya Public Endpoint) ile MySQL Port değerlerini ApsaraDB for SelectDB konsolundaki Instance Details > Network Information sayfasından alabilirsiniz.

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

    HTTP Connection URL

    <ip>:<port> biçiminde HTTP protokolü uç noktasını girin.

    VPC Endpoint (veya Public Endpoint) ile HTTP Port değerlerini ApsaraDB for SelectDB konsolundaki Instance Details > Network Information sayfasından alabilirsiniz.

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

    Username

    ApsaraDB for SelectDB örneği için kullanıcı adını girin.

    Password

    ApsaraDB for SelectDB örneğinde belirtilen kullanıcı için parolayı girin.

Veri senkronizasyonunu yapılandırma

Bir veri geçişi görevini yapılandırmak için aşağıdaki belgelere bakın:

Flink CDC ile veri geçişi yapma

Flink, verileri MySQL'den SelectDB'ye geçirmek için Flink SQL, Flink CDC ve DataStream olmak üzere üç yöntem sunar. Flink CDC tarihsel veri geçişi, artımlı veri senkronizasyonu, veritabanı ve tablo geçişi ile DDL senkronizasyonunu destekler. Aşağıdaki örnek Flink CDC kullanarak verileri MySQL'den ApsaraDB for SelectDB hizmetine senkronize etmeyi gösterir. Daha fazla bilgi için bkz. Flink kullanarak veri içe aktarma.

Yordam

Ortamı hazırlama

Bir Flink ortamı kurun. Bu örnekte Flink 1.16 bağımsız ortamı kullanılmaktadır.

  1. flink-1.16.3-bin-scala_2.12.tgz dosyasını indirip sıkıştırmasını açın. Bu sürüm mevcut değilse başka bir sürüm indirin. Diğer sürümler için bkz. 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. FLINK_HOME/lib dizinine gidin ve flink-sql-connector-mysql-cdc-2.4.2 ile flink-doris-connector-1.16-1.5.2 dosyalarını indirin.

    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. Flink Bağımsız kümesini başlatın.

    bin/start-cluster.sh
  4. Bir ApsaraDB for SelectDB örneği oluşturun. Daha fazla bilgi için bkz. Örnek oluşturma.

  5. ApsaraDB for SelectDB örneğine MySQL protokolü üzerinden bağlanın. Daha fazla bilgi için bkz. Örneğe bağlanma.

  6. Test veritabanı ve test tablosu oluşturun.

    1. Test veritabanı oluşturun.

      CREATE DATABASE test_db;
    2. Test tablosu oluşturun.

      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;

Flink CDC görevi gönderme

Flink CDC görevini göndermek için aşağıdaki sözdizimini kullanın:

<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=****


Parametre


Açıklama


execution.checkpointing.interval


Veri senkronizasyonu sıklığını etkileyen Flink kontrol noktası aralığıdır. 10s değeri önerilir.


parallelism.default


Flink görevinin paralellik derecesidir. Veri senkronizasyonu aktarım hızını artırmak için paralellik derecesini yükseltebilirsiniz.


database


SelectDB'deki hedef veritabanının adı.


including-tables


Senkronize edilecek MySQL tabloları. Birden çok tabloyu ayırmak için dikey çubuk (|) kullanabilirsiniz. Düzenli ifadeler desteklenir. Örneğin --including-tables table1|tbl.* ifadesi table1 ve adı tbl ile başlayan tüm tabloların senkronize edileceğini belirtir.


excluding-tables


Senkronize edilmemesi gereken tablolar. Yapılandırma yöntemi including-tables parametresiyle aynıdır.


mysql-conf


MySQL CDC kaynak yapılandırması. Daha fazla bilgi için bkz. MySQL CDC Connector. hostname, username, password ve database-name parametreleri gereklidir.


sink-conf


Doris havuzu için tüm yapılandırmalar. Daha fazla bilgi için bkz. Flink kullanarak veri içe aktarma.


table-conf


SelectDB tablosu için yapılandırma öğeleri. CREATE TABLE deyiminin PROPERTIES yan tümcesi içindeki içerikle eşleşir.

Not
  1. Verileri senkronize etmek için flink-sql-connector-mysql-cdc-${version}.jar ve flink-sql-connector-oracle-cdc-${version}.jar gibi gerekli Flink CDC bağımlılıklarını $FLINK_HOME/lib dizinine ekleyin.

  2. Veritabanı düzeyinde senkronizasyon için Flink 1.15 veya sonraki bir sürüm gerekir. Flink Doris Connector indirmeleri için bkz. Flink Doris Connector.

Katalog kullanarak veri geçişi yapma

SelectDB'deki katalog özelliği, MySQL'e erişmek için birleşik sorgular kullanır ve böylece tarihsel veri geçişini basitleştirir. Aşağıdaki örnek bir MySQL veritabanından ApsaraDB for SelectDB hizmetine veri senkronize etmeyi gösterir. Daha fazla bilgi için bkz. JDBC veri kaynağı.

Yordam

  1. SelectDB örneğine bağlanın. Daha fazla bilgi için bkz. Örneğe bağlanma.

    Not

    DMS kullanarak bağlandığınızda SWITCH deyimi çalışmaz. MySQL istemcisi ile bağlanmanızı öneririz.

  2. MySQL JDBC kataloğu oluşturun.

    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"
    )

    Parametre açıklaması


    Parametre


    Gerekli


    Varsayılan


    Açıklama


    user


    Evet


    Yok


    Veritabanı hesabı.


    password


    Evet


    Yok


    Veritabanı hesabının parolası.


    jdbc_url


    Evet


    Yok


    JDBC bağlantı dizesi.


    driver_url


    Evet


    Yok


    JDBC sürücü JAR paketinin dosya adı.


    driver_class


    Evet


    Yok


    JDBC sürücüsünün sınıf adı.


    lower_case_table_names


    Hayır


    "false"


    Dış JDBC veri kaynağından veritabanı ve tablo adlarının küçük harfle senkronize edilip edilmeyeceğini belirtir.


    only_specified_database


    Hayır


    "false"


    Yalnızca belirtilen veritabanlarının senkronize edilip edilmeyeceğini belirtir.


    include_database_list


    Hayır


    ""


    only_specified_database=true olduğunda virgülle ayrılmış senkronize edilecek veritabanı listesini belirtir. Veritabanı adları büyük/küçük harfe duyarlıdır.


    exclude_database_list


    Hayır


    ""


    only_specified_database=true olduğunda senkronizasyondan hariç tutulacak virgülle ayrılmış veritabanı listesini belirtir. Veritabanı adları büyük/küçük harfe duyarlıdır.

    1. SelectDB'de hedef tabloyu oluşturun ve ardından verileri senkronize etmek için INSERT INTO ... SELECT deyimini kullanın. INSERT INTO hakkında daha fazla bilgi için bkz. INSERT INTO.

    # Create the destination table.
    CREATE TABLE selectdb_table ...
    
    # Migrate data.
    INSERT INTO selectdb_table SELECT * FROM mysql_catalog.mysql_database.mysql_table;