Uso de Kettle para migrar tablas pequeñas de AWS Redshift a un clúster de DWS
Esta práctica demuestra cómo usar la herramienta de código abierto Kettle para migrar datos de Redshift a DWS.
Descripción de Kettle
Kettle es una herramienta de extracción, transformación y carga (ETL) de código abierto, también conocida como Entorno de extracción, transporte, transformación y carga de KDE. Proporciona una interfaz gráfica de usuario que permite diseñar y configurar procesos ETL arrastrando y soltando componentes. Kettle admite múltiples orígenes y destinos de datos, incluidos bases de datos relacionales, archivos, API y Hadoop. Ofrece amplias capacidades de conversión y limpieza, como transformación de formatos de datos, filtrado, fusión y computación.
Las funciones clave incluyen las siguientes:
- Construcción de canalizaciones de datos mediante operaciones de arrastrar y soltar, sin necesidad de codificación
- Conexión a múltiples orígenes de datos
- Visualización de canalizaciones de datos ·
- Desarrollo de canalizaciones mediante plantillas
- Visualización de tareas programadas
- Soporte integral de Hadoop
- DWS debe vincular una EIP antes de poder conectarse a Kettle.
- Tanto Kettle como CDM son adecuados para el procesamiento por lotes. Para volúmenes de datos o cantidades de tablas más pequeños, se recomienda Kettle; de lo contrario, utilice CDM.
- Kettle puede exportar datos desde e importar datos en bases de datos.
- Kettle puede sincronizar datos en tiempo real mediante activadores, campos de marca de tiempo y Kafka.
Esta práctica dura unos 90 minutos. Por ejemplo, la migración de Redshift implica las siguientes operaciones:
- Requisitos previos: Preparar la herramienta de migración Kettle y los paquetes de suites relacionados.
- Migración de metadatos: Utilizar la herramienta DSC para migrar metadatos.
- Creación de una tarea de transformación y configuración de bases de datos de origen y destino: Crear una tarea de transformación y configurar las bases de datos de origen y destino.
- Migración de datos de servicio: Realizar la migración completa y la migración incremental.
- Ejecución de tareas de migración de forma simultánea: Crear un trabajo para ejecutar simultáneamente tareas de transformación para la migración simultánea de tablas.
- Optimización del trabajo de migración: Ajustar el tamaño de la memoria de Kettle y el número de trabajos para mejorar la eficiencia de la migración.
- Verificación de datos de tablas: Verifique la consistencia de los datos después de la migración.
Requisitos previos
- Ha comprado un clúster de DWS, vinculado una EIP al clúster y creado la base de datos de destino dws_vd.
- Ha obtenido el paquete de herramientas DSC y descargado e instalado DSC.
- Ha obtenido el paquete de herramientas DataCheck y descargado e instalado DataCheck.
- Ha obtenido el paquete de herramientas Kettle y el complemento dws-client y ha configurado Kettle. Para obtener más información, consulte "Preparación del entorno de Kettle" e "Instalación del complemento personalizado dws-kettle-plugin" en Uso de Kettle para importar datos.
- Se ha instalado JDK 11 o una versión posterior y se han configurado las variables de entorno relacionadas.
Migración de metadatos
Utilice la herramienta de migración DSC desarrollada por Huawei Cloud para convertir las sentencias DDL de la tabla de ejemplo exportada del extremo de origen en Redshift en sentencias SQL ejecutables en DWS.
- Descomprima el paquete de herramientas DSC obtenido y guarde los archivos que se convertirán en el directorio de entrada de DSC.
El diseño de la estructura de la tabla de Redshift no incluye índices. El rendimiento se ve influenciado principalmente por la clave de distribución de datos (DISTSTYLE) y la clave de ordenación (SORTKEY) especificadas en el DDL.
Figura 1 Sentencia DDL
- Personalice el archivo features-pg.properties.
- Vaya al directorio DSC y ejecute el script runDSC. En Windows, haga doble clic en runDSC.bat. Ejecute runDSC.sh en Linux.
- Convierta la sintaxis.
1runDSC.bat -S postgres
- Vea el resultado y la información de conversión.
- Conéctese a DWS, ejecute la sentencia DDL convertida en el paso anterior para crear una tabla.
Creación de una tarea de transformación y configuración de bases de datos de origen y destino
- Después de desplegar Kettle, haga doble clic en el script Spoon en el directorio data-integration de Kettle para iniciar Kettle. Figura 2 Inicio de Kettle
Aparecerá en la pantalla la página siguiente.
Figura 3 GUI de Kettle
- Elija File > New > Transformation para crear una nueva transformación. Figura 4 Creación de una tarea de transformación
- Haga clic en Database connection en View, haga clic con el botón derecho del mouse en New y configure las conexiones de las bases de datos de origen y destino.
- La configuración de la conexión de la base de datos redshift-VD (origen) es la siguiente:
- URL de conexión personalizada: jdbc: redshift://dwdsi-simulacao.cslagxelrdnm.us-east-1.redshift.amazonaws.com:xxxx/dsidw
- Username: xxxxxxx
- Password: xxxxxxx
Figura 5 Configuración del origen
- La configuración de la conexión de la base de datos DWS-VD (destino) es la siguiente:
- Host Name: EIP del clúster de DWS.
- Database Name: dws_vd
- Username: dbadmin
- Password: contraseña del usuario dbadmin.
Figura 6 Configuración del destino
Figura 7 opciones
Después de conectar las bases de datos, haga clic con el botón derecho del mouse en los enlaces de origen y destino y haga clic en Share. Esto evita la necesidad de volver a configurar los enlaces de la base de datos en tareas futuras.
- La configuración de la conexión de la base de datos redshift-VD (origen) es la siguiente:
- Arrastre los componentes Table input y DWS TableOutput desde los directorios Input y Output de Design al panel derecho por separado.
- Haga clic con el botón derecho del mouse en la línea de conexión del componente Table input para conectar los dos componentes. Figura 8 Conexión de componentes
Migración de datos de servicio
Migración de datos completa
- Haga clic con el botón derecho del mouse en Table Input y seleccione Edit en el menú contextual. Seleccione el enlace de la base de datos de origen. Figura 9 Edición de Table Input
- Haga clic con el botón derecho del mouse en DWS TableOutput y seleccione Edit en el menú contextual. Seleccione el enlace de la base de datos de destino. Seleccione Truncate table y Specify database fields, haga clic en Get fields debajo de Database fields para adquirir el mapeo de campos de origen y destino y, a continuación, haga clic en OK. Figura 10 Edición de Table output
Figura 11 Edición de campos de base de datos
- Después de la configuración, haga clic en Run para iniciar la tarea de migración. Figura 12 Ejecución de la tarea
Migración de datos incremental
Los pasos para la migración incremental y completa son esencialmente los mismos. La diferencia es que se agrega una condición WHERE a la sentencia SQL de origen y se deselecciona Truncate Table en la configuración de destino.
- Haga clic con el botón derecho del mouse en Table Input y seleccione Edit en el menú contextual. Seleccione el enlace de la base de datos de origen. Figura 13 Edición de Table Input
- Haga clic con el botón derecho del mouse en DWS TableOutput y seleccione Edit en el menú contextual. Seleccione el enlace de la base de datos de destino. Deseleccione Truncate table; haga clic en Get fields en Database fields para obtener el mapeo de campos de origen y destino y haga clic en OK. Figura 14 Edición de Table output

- Después de la configuración, haga clic en Run para iniciar la tarea de migración. Figura 15 Ejecución de la tarea
Ejecución de tareas de migración de forma simultánea
La configuración de tareas de trabajo combina la transformación de múltiples tablas en una sola tarea para una ejecución más rápida.
- Seleccione File > New > Job. Arrastre los componentes de destino al panel y conéctelos mediante líneas. Figura 16 Creación de un trabajo
- Haga doble clic en Transformation y seleccione la tarea de transformación que se ha configurado y guardado. Figura 17 Configuración de una transformación
- Haga clic con el botón derecho en el componente Start, seleccione el componente Run Next Entries in Parallel y configure la ejecución de tareas simultáneas. Figura 18 Configuración de simultaneidad
Después de la configuración, aparecerá una doble barra entre los componentes Start y Transformation.
Figura 19 Configuración de simultaneidad exitosa
- Haga clic en Run para ejecutar las tareas de conversión de forma simultánea. Figura 20 Ejecución de las tareas de conversión de forma simultánea
Optimización del trabajo de migración
- Configure la memoria de Kettle.
Para aumentar el número de solicitudes de Kettle simultáneas y el tamaño de los datos almacenados en caché, puede ajustar el tamaño de la memoria de Kettle.
Utilice Notepad++ para abrir el script Spoon.bat y editar el contenido de la memoria. Se recomienda configurarlo en un 60-80 % de la memoria del host.
Figura 21 Configuración de la memoria
- Configure un trabajo.
- Para tablas con menos de 10 millones de registros, configure alrededor de 10 tablas por trabajo.
- Para tablas más grandes con alrededor de 100 millones de registros, configure de 2 a 3 tablas por trabajo. Esto permite la programación de tareas individuales si surge algún problema, lo que mejora la eficiencia.
- Para tablas con más de 100 millones de registros, especialmente aquellas con muchos campos, la eficiencia de extracción de Kettle puede ser lenta. Elija un método de migración en función de sus necesidades de servicio específicas. Figura 22 Configuración de un trabajo
- Agrupe las tareas con volúmenes de datos de tablas similares en el mismo trabajo. Esto garantiza que todas las tareas finalicen aproximadamente al mismo tiempo, evitando que las tareas finales retrasen los trabajos posteriores.
- Si se produce un error en una tarea, consulte los registros de errores. Los problemas suelen deberse a restricciones de enlaces de origen que causan desconexiones. En tales casos, reinicie Kettle y vuelva a intentarlo.
Verificación de datos de tablas
Después de la migración, verifique si los datos de las bases de datos de origen y destino son consistentes mediante DataCheck.
- Cree un ECS (con Linux o Windows) y vincule una EIP al ECS para acceder a BigQuery.
- Cargue el paquete de software en el directorio especificado (definido por el usuario) en el ECS, descomprima el paquete DataCheck-*.zip y vaya al directorio DataCheck-*. Para ver cómo usar los archivos del directorio, consulte Tabla 1.
- Configure el paquete de herramientas.
- En Windows: Abra el archivo dbinfo.properties en la carpeta DataCheck/conf y configúrelo según sea necesario.
Puede utilizar el comando siguiente en la herramienta para generar el texto cifrado de src.passwd y dws.passwd.
encryption.bat password

Después de ejecutar el comando, se genera un archivo cifrado en el directorio local bin.

- En Linux:
El método de generación del texto cifrado es similar al de Windows. El comando es sh encryption.sh Password. Los demás pasos son los mismos.

- En Windows:
- Verifique los datos.
En Windows:
- Abra el archivo check_input.xlsx, ingrese los esquemas, las bases de datos, la tabla de origen y la tabla de destino que se van a verificar, y complete Row Range con una sentencia de consulta de datos para especificar el alcance de la consulta.
- Después de configurar el nombre de la base de datos de origen en el archivo de configuración, el nombre de la base de datos de origen en el archivo check_input.xlsx es este por defecto. Sin embargo, si se especifica un nombre de base de datos de origen diferente en el archivo check_input.xlsx, tendrá prioridad.
- El Check Strategy ofrece tres niveles: high, middle y low. Si no se especifica, el valor predeterminado es low.
- El Check Mode admite statistics (verificaciones de valores estadísticos).
La siguiente figura muestra el archivo check_input.xlsx para la comparación de metadatos.
Figura 23 check_input.xlsx
- Ejecute el comando datacheck.bat en el directorio bin para ejecutar la herramienta de verificación.

- Vea el archivo de resultados de la verificación generado check_input_result.xlsx.
La siguiente figura muestra la verificación de valores estadísticos.

En Linux:
- Edite y cargue el archivo check_input.xlsx. Consulte el paso 1 para Windows.
- Ejecute el comando sh datacheck.sh para ejecutar la herramienta de verificación.

- Vea el resultado de la verificación en el archivo check_input_result.xlsx. (El análisis del resultado de la verificación es el mismo que para Windows).
- Abra el archivo check_input.xlsx, ingrese los esquemas, las bases de datos, la tabla de origen y la tabla de destino que se van a verificar, y complete Row Range con una sentencia de consulta de datos para especificar el alcance de la consulta.
Información relacionada
Para obtener más información, consulte DataCheck.
| Archivo o carpeta | Descripción | |
|---|---|---|
| DataCheck | bin | Guarda el script de entrada de la herramienta de verificación.
|
| conf | Archivo de configuración, que se utiliza para configurar la conexión entre la base de datos de origen y la base de datos de destino y establecer la impresión de registros. | |
| lib | Directorio para almacenar los paquetes JAR necesarios para ejecutar la herramienta de verificación. | |
| check_input.xlsx |
| |
| logs | El paquete no incluye este archivo. Una vez que se ejecuta la herramienta de verificación, genera automáticamente este archivo para registrar el proceso de ejecución de la herramienta. | |
| check_input_result.xlsx | El paquete no incluye este archivo. Una vez que se ejecuta la herramienta de verificación, se creará un archivo de resultados de verificación en la misma ubicación que check_input.xlsx. | |
| DataCheck |
|---|
|
| Nivel de verificación | Descripción | Sintaxis |
|---|---|---|
| Bajo |
|
|
| Medio |
|
|
| Alto |
|
|