No perdis temps amb sincronitzacions de dades trencades, fes-ho bé amb Apache SeaTunnel

Guia completa per realitzar la migració i sincronització de dades des de MySQL a OceanBase amb Apache SeaTunnel, incloent configuracions per a sincronització completa, incremental i CDC.

jueves, 20 de marzo de 2025 • 2 min de lectura • Equip Q2BSTUDIO

Empresa-Software-Apps

En aquesta guia, et mostrarem una solució lleugera per a la migració i sincronització de dades des de MySQL a OceanBase utilitzant Apache SeaTunnel (SeaTunnel). Aprofitarem el seu motor integrat Zeta engine, que admet sincronització completa de dades, sincronització incremental offline i Change Data Capture (CDC).

A Q2BSTUDIO, experts en desenvolupament i serveis tecnològics, implementem solucions eficients per a la gestió i migració de dades, assegurant que cada procés sigui optimitzat per a les necessitats del negoci.

Preparació de l'Entorn d'Execució

Abans de començar, assegura't que el teu entorn estigui preparat.

Instal·lar Java

SeaTunnel requereix Java 8 o superior. Es recomana Java 8, però versions posteriors també haurien de funcionar.

Verifica que Java estigui correctament configurat executant:

java -version

Assegura't que JAVA_HOME estigui correctament configurat.

Descargar i Instal·lar Apache SeaTunnel

wget https://dlcdn.apache.org/seatunnel/2.3.9/apache-seatunnel-2.3.9-bin.tar.gz
tar -zxvf apache-seatunnel-2.3.9-bin.tar.gz

Instal·lació de Connectors Plugins

El paquet d'instal·lació de SeaTunnel només conté el nucli del framework i el Zeta engine. Per connectar diverses fonts de dades, cal descarregar i configurar els plugins requerits.

Instal·lació Automàtica de Plugins

Modifica el fitxer de configuració per especificar els connectors necessaris:

connector-cdc-mysql
connector-jdbc
connector-fake
connector-console

Executa la següent comanda per instal·lar els plugins:

sh bin/install-plugin.sh 2.3.9

Verificació de la Instal·lació de SeaTunnel

Per verificar la correcta instal·lació de SeaTunnel, executa una prova de processament per lots:

./bin/seatunnel.sh --config ./config/v2.batch.config.template -m local

Si tot està correctament configurat, veuràs una sortida indicant l'èxit del procés.

Sincronització Completa de Dades

Per verificar la sincronització completa de dades, es creen taules de prova tant a MySQL com a OceanBase.

Configuració de Sincronització Completa

Es recomana migrar manualment els esquemes de taula per evitar errors.

env {
  parallelism = 5
  job.mode = BATCH
}
source {
    Jdbc {
        url = jdbc:mysql://127.0.0.1:3306/mysql
        driver = com.mysql.cj.jdbc.Driver
        user = usuario
        password = contraseña
        query = select * from base_datos.tabla1
    }
}
sink {
    jdbc {
        url = jdbc:mysql://127.0.0.1:2883/mysql
        driver = com.mysql.cj.jdbc.Driver
        user = usuario
        password = contraseña
        database = base_datos
        table = tabla1
    }
}

Resultats esperats:

Total Read Count: 100000
Total Write Count: 100000
Total Failed Count: 0

Sincronització Incremental

Per a la sincronització incremental, es poden utilitzar consultes filtrant per columnes com id o updatetime.

source {
    Jdbc {
        query = SELECT * FROM base_datos.tabla1 WHERE updatetime > '2024-01-01'
    }
}

Es recomana l'ús de Apache DolphinScheduler per obtenir valors dinàmics i automatitzar la sincronització de dades.

Sincronització CDC (Change Data Capture)

Per habilitar CDC, verifica que el binlog de MySQL estigui actiu.

Exemple de configuració:

source {
  MySQL-CDC {
    base-url = jdbc:mysql://127.0.0.1:3306/mysql
    username = usuario
    password = contraseña
    table-names = [base_datos.tabla1, base_datos.tabla2]
    startup.mode = initial
  }
}

Conclusió

Aquest article va detallar la configuració de sincronització de dades de MySQL a OceanBase amb Apache SeaTunnel. A Q2BSTUDIO, ajudem empreses a optimitzar el seu processament i maneig de dades mitjançant solucions escalables i eficients.

Si necessites assessoria sobre fluxos de dades i eines d'integració, a Q2BSTUDIO estem preparats per portar els teus processos al següent nivell.

UNA PAUSA?

Juga una estona abans de marxar

ELS NOSTRES SERVEIS

Com et podem ajudar

Tens un projecte en ment?

Explica'ns la teva visió i la convertim en una solució de programari. Sigui quin sigui l'abast, fem realitat la teva idea.