No pierdas tiempo con sincronizaciones de datos rotas hazlo bien con Apache SeaTunnel

Guía completa para realizar la migración y sincronización de datos desde MySQL a OceanBase con Apache SeaTunnel, incluyendo configuraciones para sincronización completa, incremental y CDC.

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

Empresa-Software-Apps

En esta guía, te mostraremos una solución ligera para la migración y sincronización de datos desde MySQL a OceanBase utilizando Apache SeaTunnel (SeaTunnel). Aprovecharemos su motor integrado Zeta engine, que admite sincronización completa de datos, sincronización incremental offline y Change Data Capture (CDC).

En Q2BSTUDIO, expertos en desarrollo y servicios tecnológicos, implementamos soluciones eficientes para la gestión y migración de datos, asegurando que cada proceso sea optimizado para las necesidades del negocio.

Preparación del Entorno de Ejecución

Antes de comenzar, asegúrate de que tu entorno está listo.

Instalar Java

SeaTunnel requiere Java 8 o superior. Se recomienda Java 8, pero versiones posteriores también deberían funcionar.

Verifica que Java esté correctamente configurado ejecutando:

java -version

Asegúrate de que JAVA_HOME esté correctamente configurado.

Descargar e Instalar 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

Instalación de Plugins de Conectores

El paquete de instalación de SeaTunnel solo contiene el núcleo del framework y el Zeta engine. Para conectar diversas fuentes de datos, es necesario descargar y configurar los plugins requeridos.

Instalación Automática de Plugins

Modifica el archivo de configuración para especificar los conectores necesarios:

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

Ejecuta el siguiente comando para instalar los plugins:

sh bin/install-plugin.sh 2.3.9

Verificación de la Instalación de SeaTunnel

Para verificar la correcta instalación de SeaTunnel, ejecuta una prueba de procesamiento por lotes:

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

Si todo está correctamente configurado, verás una salida indicando el éxito del proceso.

Sincronización Completa de Datos

Para verificar la sincronización completa de datos, se crean tablas de prueba tanto en MySQL como en OceanBase.

Configuración de Sincronización Completa

Se recomienda migrar manualmente los esquemas de tabla para evitar errores.

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
    }
}

Resultados esperados:

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

Sincronización Incremental

Para la sincronización incremental, se pueden utilizar consultas filtrando por columnas como id o updatetime.

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

Se recomienda el uso de Apache DolphinScheduler para obtener valores dinámicos y automatizar la sincronización de datos.

Sincronización CDC (Change Data Capture)

Para habilitar CDC, verifica que el binlog de MySQL esté activo.

Ejemplo de configuración:

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ón

Este artículo detalló la configuración de sincronización de datos de MySQL a OceanBase con Apache SeaTunnel. En Q2BSTUDIO, ayudamos a empresas a optimizar su procesamiento y manejo de datos mediante soluciones escalables y eficientes.

Si necesitas asesoría sobre flujos de datos y herramientas de integración, en Q2BSTUDIO estamos listos para llevar tus procesos al siguiente nivel.

¿UNA PAUSA?

Juega un momento antes de irte

NUESTROS SERVICIOS

Cómo podemos ayudarte

¿Tienes un proyecto en mente?

Cuéntanos tu visión y la convertimos en una solución de software. Sea cual sea el alcance, hacemos realidad tu idea.