Utilice el componente de sincronización de tablas de biblioteca de ETLCloud para realizar la migración por lotes de tablas de datos heterogéneas: de SQLServer a MySQL

fondo

Anteriormente, me encontré con la necesidad SQLServerde migrar una base de datos en línea de conversión a MySQL.Hay más de 70 tablas de datos y la cantidad total de datos no es grande. Desde Internet hay muchos usos recomendados SQLyog, y los hay Oracle MySQL Serveroficiales Workbenchpara la migración, pero los pasos son un poco engorrosos, más adelante encontré DB2DBesta herramienta en un rincón de un artículo, que viene de Misoft Technology.
Introducción oficial: DB2DBse utiliza para la conversión de datos entre varias bases de datos principales. La primera versión se desarrolló en 2015. Después de muchos años de iteraciones del producto, ha pasado la verificación de más de 400 clientes. Es un producto maduro y práctico. En términos de funciones de software, la versión actual 1.30.107admite la migración y conversión mutua de 6 bases de datos, como SQLServer, MySQL, SQLite, Access, SQLServer CE, , etc., lo cual es suficiente. PostgreSQLPara el proceso de migración específico, consulte: Experiencia de la herramienta de conversión de base de datos heterogénea: conversión de datos de SQLServer y migración a MySQL
Sin embargo, se debe tener en cuenta que después de la descarga, la herramienta de DB2DBesta CSarquitectura es una versión no autorizada (versión de prueba) por defecto, con un límite de 50,000 registros , en este caso, si la base de datos de origen tiene una gran cantidad de datos, debe pagar para comprar la licencia.

Primero, presentemos al protagonista de este proceso de migración: ETLCloud , que reconstruye la arquitectura de fusión de datos empresariales, resuelve varias necesidades de integración de datos complejas, instantáneas y altamente compatibles, y cubre una cobertura integral: desarrollo de tareas, programación de tareas, análisis de relaciones consanguíneas, gestión de calidad de datos, desarrollo de servicios de datos y monitoreo de tareas. Hoy, el mismo trabajo de migración que el anterior se puede completar a través de la versión de la herramienta de integración de datos basada en la arquitectura de microservicio BS: ETLCloud Community Edition .

práctica de migración

A continuación, ingrese a nuestra práctica de migración: todo el proceso es de código cero, visualizado, arrastrar y soltar, y la migración por lotes de tablas de datos heterogéneos se puede completar con un clic del mouse. ¡Lo más importante es que la versión comunitaria es gratuita!
Nota: Aquí se selecciona la versión de la comunidad y Dockerel método de implementación es liviano y de inicio rápido: docker pull ccr.ccs.tencentyun.com/restcloud/restcloud-etl:V2.2.

Configuración de la fuente de datos

SQLServery MySQLson ETLCloudfuentes de datos integradas compatibles con la edición de la comunidad, simplemente cree una nueva fuente de datos directamente.

  1. Configurar origen: SQL Server

Cree una nueva fuente de datos, selecciónela SQLServery complete la información de IP: puerto y contraseña de usuario.
foto.pngLa conexión de prueba es exitosa ~

  1. Configurar sumidero: MySQL

Cree una nueva fuente de datos, selecciónela MySQLy complete la información de IP: puerto y contraseña de usuario.
foto.pngLa conexión de prueba es exitosa ~

Crear aplicaciones y procesos

Cree una aplicación y complete la información de configuración básica de la aplicación. Luego, cree un flujo de datos y complete la información.
Después de crear el proceso, puede hacer clic en el botón "Diseño del proceso" para ingresar a la página de configuración de visualización del proceso.

Proceso de configuración visual

Antes de configurar el proceso, presente brevemente las distintas áreas de esta página de configuración: el lado izquierdo es el área de componentes, la parte superior central es el área funcional y la mayor parte del medio es el área de dibujo del proceso. Haga doble clic en el componente en el área de dibujo y podrá ver el área de elementos de configuración detallada del componente que aparece en un estilo de cajón.

  1. Entrada por lotes de tabla de base de datos: SQLServer

En el componente de sincronización de la tabla de biblioteca a la izquierda, seleccione "Tabla de biblioteca de entrada por lotes", arrástrelo al área de dibujo del proceso central y haga doble clic para ingresar a la etapa de configuración.

SQLServerPaso 1: Seleccione la fuente de datos que hemos configurado , aquí seleccione el método de lectura página por página, y el usuario puede estar vacío.
foto.png
Paso 2: puede cargar SQLServertablas y vistas existentes en , hay 74 tablas y 4 vistas en total.
foto.png
De acuerdo con las necesidades, seleccione la tabla de datos que desea migrar, seleccione todas las tablas y vistas aquí y guarde.
foto.png

  1. Salida por lotes de la tabla de la base de datos: MySQL

En el componente de sincronización de la tabla de la biblioteca a la izquierda, seleccione "Salida por lotes de la tabla de la biblioteca", arrástrelo al área de dibujo del proceso central y haga doble clic para ingresar a la etapa de configuración.

Paso 1: seleccione la fuente de datos MySQL que configuramos.
foto.png
Paso 2: Opciones de salida configurables: si borrar los datos de la tabla, si construir automáticamente la tabla, cómo actualizar los datos, etc.
foto.png

  1. Mejorar el proceso

Finalmente, al 流程线conectar el inicio , la entrada por lotes de la tabla de la base de datos , la salida por lotes de la tabla de la biblioteca y los componentes finales respectivamente, se completa la configuración visual de la migración de datos de la tabla de la base de datos por lotes.
foto.png

ejecutar proceso

Guarde el proceso y ejecútelo; luego puede ver el registro del proceso correspondiente y monitorear visualmente el progreso de la migración.
foto.png

registro de problemas

Por supuesto, todo el proceso de migración no es un proceso único, se encontraron varios problemas en la configuración de la fuente de datos y los enlaces de migración, que se registran a continuación.

  • SQLServerLa fuente de datos informó un error de conexión debido a un JDKproblema con la versión del cliente

foto.png
Descripción del problema: la conexión falló (el controlador no pudo establecer una conexión segura con SQL Server mediante el uso de cifrado de Capa de sockets seguros (SSL). Error: " La versión de protocolo TLS10 seleccionada por el servidor no es aceptada por las preferencias del cliente [TLS12]". es demasiado bajo, y la versión del cliente debe
reducirse para adaptarse . Primero ingrese al contenedor y navegue hasta el archivo.TLS12TLS10
jdk/jre/lib/security/java.securityjdk.tls.disabledAlgorithms
foto.png
java.security

# 进入容器
[root@etl ~]# docker exec -it de63b29c71d0 /bin/bash

# 查看ETLCloud容器中自带的jdk版本信息
root@de63b29c71d0:/usr# java -version
java version "1.8.0_333"
Java(TM) SE Runtime Environment (build 1.8.0_333-b02)
Java HotSpot(TM) 64-Bit Server VM (build 25.333-b02, mixed mode)

# 定位到java.security文件
root@de63b29c71d0:/usr# which java
/usr/jdk/bin/java
root@de63b29c71d0:/usr# ls
bin  games  include  jdk  lib  local  sbin  share  src  start.sh  tomcat  velocity.log
root@de63b29c71d0:/usr# cd jdk/jre/lib/security/
root@de63b29c71d0:/usr/jdk/jre/lib/security# ls
blacklist  blacklisted.certs  cacerts  java.policy  java.security  javaws.policy  policy  public_suffix_list.dat  trusted.libraries
root@de63b29c71d0:/usr/jdk/jre/lib/security# vi java.security 
bash: vi: command not found

Sin embargo, dado que el contenedor no proporciona viel comando, el archivo del contenedor primero se /usr/jdk/jre/lib/security/java.securitycopia en el host y luego se vuelve a copiar en el contenedor después de la modificación.

# 从容器中复制文件到宿主机
[root@etl opt]# docker cp de63b29c71d0://usr/jdk/jre/lib/security/java.security /opt/
                                               Successfully copied 58.9kB to /opt/

# 修改配置文件
[root@etl opt]# vi java.security
删除jdk.tls.disabledAlgorithms中的TLS1.*算法配置

# 从宿主机复制文件到容器中
[root@etl opt]# docker cp /opt/java.security de63b29c71d0://usr/jdk/jre/lib/security/
                                             Successfully copied 58.9kB to de63b29c71d0://usr/jdk/jre/lib/security/
  • MySQLLa fuente de datos informa de un error de conexión debido a problemas de permisos de la tabla de la base de datos

Descripción del problema: Access denied for user 'root'@'%' to database qwert.
foto.png
Solución: habilite el acceso remoto a la base de datos de destino y configure permisos, como la creación de tablas.

grant create,alter,drop,index,select,insert,update,delete on qwert.* to root@'%' identified by 'root';
flush PRIVILEGES;
  • ELTCloudAl leer SQLServerla tabla, DateTimeel campo del tipo será reconocido como TimeStampel tipo, dando como resultado MySQLun error al escribir datos de fecha en

Descripción del problema: Caused by: com.mysql.cj.jdbc.exceptions.MysqlDataTruncation: Data truncation: Incorrect datetime value: '1753-01-01 12:00:00' for column 'ErrorTime' at row 1.
foto.png
Solución: Modifique el proceso de migración. En la configuración del componente de entrada por lotes de la tabla de la biblioteca, primero configure solo la estructura de la tabla para sincronizarla; después de que el proceso de ejecución complete la sincronización de la estructura de la tabla, cambie manualmente el tipo al tipo en el MySQLterminal .TimeStampDateTime
foto.png

Resumir

Lo anterior se basa en ETLCloudel componente de sincronización de la tabla de la base de datos para realizar la migración por lotes de tablas de datos heterogéneas y completar la práctica de migración de datos desde SQLServerla MySQLtabla de la base de datos, que es simple, directa y efectiva; además, también registra varios problemas y soluciones relacionados con la configuración durante el proceso de migración. CSEn comparación con el tipo de herramientas de migración utilizadas anteriormente , ETLCloudla interfaz es más amigable y fácil de usar, y las funciones de la versión comunitaria son lo suficientemente potentes.

Referencia


Si tiene alguna pregunta o se encuentra algún error, no dude en ponerse en contacto conmigo.
¡Tus comentarios y sugerencias son bienvenidos!

Supongo que te gusta

Origin blog.csdn.net/u013810234/article/details/131488797
Recomendado
Clasificación