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.





