Datavin3

Dejando Kettle/PDI: Cómo Hacer una Transición Exitosa a Apache Hop

Escrito por Adalennis Buchillón Soris | 18 de octubre de 2023 8:40:37 Z

Haz el salto a Apache Hop desde Kettle/PDI de forma perfecta. Desbloquea el potencial de la integración de datos con conocimientos expertos y una guía de transición sin problemas.

Introducción

Apache Hop es una plataforma de integración de datos de código abierto diseñada para ayudar a las organizaciones a construir flujos de datos para sus necesidades comerciales. Está construida sobre la base de la popular herramienta de integración de datos, Kettle/PDI.

La migración de Kettle/PDI a Apache Hop es un proceso relativamente sencillo, aunque puede llevar tiempo dependiendo de la complejidad del código de integración de datos existente. Aquí hay algunos pasos que puedes seguir para que la transición sea lo más fluida posible:

  1. Evaluar tu código actual de Kettle/PDI: El primer paso es revisar tus transformaciones actuales de integración de datos para comprender su complejidad, dependencias y diseño general. Esto te ayudará a identificar posibles desafíos que puedas enfrentar durante el proceso de migración.
  2. Instalar Apache Hop: Una vez que hayas evaluado tus flujos de trabajo actuales, el siguiente paso es descargar e instalar Apache Hop en tu sistema. Puedes descargar Apache Hop desde el sitio web oficial, y las instrucciones de instalación están disponibles en la documentación.
  3. Convertir transformaciones de Kettle/PDI en flujos de Hop: El siguiente paso es convertir tus transformaciones actuales de Kettle/PDI en flujos de Hop y los trabajos en flujos de trabajo de Hop. Esto se puede hacer utilizando la herramienta Hop Import, que está incluida en la instalación de Apache Hop.
  4. Verificar posibles problemas: La migración de una plataforma o herramienta a otra puede ser una tarea desafiante, especialmente cuando se trata de sistemas complejos. Si bien la migración ofrece muchos beneficios, como acceso a nuevas características y un rendimiento mejorado, también puede introducir una serie de problemas que deben resolverse. Algunos de los problemas comunes de migración incluyen problemas de compatibilidad, pérdida de datos, asignación incorrecta de datos, problemas de rendimiento y tiempo de inactividad del sistema. Es importante identificar estos posibles problemas y planificarlos para garantizar un proceso de migración sin problemas. Al comprender los problemas potenciales, puedes tomar medidas para minimizar su impacto y realizar una transición exitosa a tu nueva plataforma o herramienta.
  5. Verificar flujos de trabajo/flujos de Hop: Después de convertir tu código existente a Apache Hop, debes verificar que funcionen según lo esperado. Esto se puede hacer ejecutando casos de prueba y comparando los resultados con el código original de Kettle/PDI.
  6. Optimizar flujos de trabajo/flujos de Hop: Una vez que hayas verificado que tus flujos de trabajo/flujos de Hop funcionan correctamente, puedes comenzar a optimizarlos para aprovechar las características y capacidades que ofrece Apache Hop. Esto puede implicar cambiar el diseño de tus flujos de trabajo/flujos para utilizar nuevos componentes de Hop o aprovechar nuevas características como el seguimiento de la línea de datos.

En conclusión, la migración de Kettle/PDI a Apache Hop es un proceso relativamente sencillo que requiere una planificación y ejecución cuidadosas. Siguiendo estos pasos, puedes asegurarte de que tu transición a Apache Hop sea fluida y exitosa.

Evaluar tus transformaciones actuales de Kettle/PDI

En Kettle/PDI, el término utilizado para un flujo de integración de datos es "transformación", mientras que en Apache Hop se llama "flujo". Al migrar de Kettle/PDI a Apache Hop, es importante tener en cuenta que las transformaciones se convertirán en flujos y los trabajos se convertirán en flujos de trabajo.

 

Migración de código en Apache Hop Entonces, al evaluar tus transformaciones actuales de Kettle/PDI, deberás revisar los siguientes aspectos:

  1. Ejecución del proyecto: Esto incluye identificar los diferentes componentes, su orden de ejecución y cómo están interconectados. Conocer o verificar la estructura de tu proyecto es esencial para identificar posibles desafíos que puedas enfrentar durante el proceso de migración. Por ejemplo, tener el orden de ejecución de los trabajos/principales transformaciones o una lista de prioridades a migrar, dependiendo del tamaño del proyecto.
  2. Fuentes y destinos de datos: Tus transformaciones pueden estar leyendo datos desde, o escribiendo datos en, fuentes o destinos de datos específicos. Comprender las fuentes y destinos de datos utilizados por tus transformaciones te ayudará a identificar cualquier cambio necesario durante el proceso de migración. Es importante considerar que tu proyecto actual de Kettle/PDI puede contener conexiones de bases de datos duplicadas o no utilizadas. Esta es una buena oportunidad para eliminarlas y organizar tu proyecto.
  3. Reglas de negocio: Tus transformaciones pueden contener reglas de negocio que gobiernan cómo se transforma y procesa la información. Conocer y entender estas reglas te ayudará a identificar cualquier cambio necesario para asegurarte de que la misma lógica comercial se aplique en el nuevo entorno y verificar los cambios necesarios. Por ejemplo, dependiendo del entorno del proyecto (desarrollo, pruebas, etc.), es posible que necesites usar configuraciones diferentes para los correos electrónicos de notificación.
  4. Rendimiento: Por último, es importante evaluar el rendimiento de tus transformaciones actuales. Esto incluye identificar posibles cuellos de botella, ajustar parámetros y otros factores que afectan el rendimiento. Conocer las características de rendimiento de tus transformaciones es esencial para asegurarte de que la migración no afecte negativamente el rendimiento general del sistema.

Al evaluar a fondo tu código actual de Kettle/PDI, puedes identificar posibles desafíos y desarrollar un plan de migración integral teniendo en cuenta todos los factores necesarios. Esto ayudará a garantizar que tu transición a Apache Hop sea fluida y exitosa.

Instalar Apache Hop

La instalación de Apache Hop es un proceso relativamente sencillo. Aquí están los pasos generales a seguir:

  1. Descargar Apache Hop: El primer paso es descargar el paquete de distribución de Apache Hop desde el sitio web oficial de Apache Hop (Descargas). Selecciona la versión adecuada para tu sistema operativo y descarga el paquete en tu sistema local.
  2. Extraer el paquete: Una vez que la descarga esté completa, extrae el paquete en un directorio de tu elección. Esto se puede hacer utilizando cualquier utilidad estándar de compresión de archivos.
  3. Configurar Java: Apache Hop requiere Java para ejecutarse. Si aún no tienes Java instalado en tu sistema, deberás descargarlo e instalarlo antes de continuar. Asegúrate de tener la versión adecuada de Java instalada, según se especifica en la documentación de Apache Hop.
  4. Iniciar Apache Hop: Una vez configuradas las variables de entorno, puedes iniciar Apache Hop ejecutando el script hop.sh (en sistemas basados en Unix) o hop.bat (en Windows). Esto iniciará la interfaz gráfica de usuario de Apache Hop, que puedes utilizar para crear y gestionar tus flujos de integración de datos.

Siguiendo estos pasos, deberías ser capaz de instalar Apache Hop en tu sistema y comenzar a usarlo para crear y gestionar tus flujos de integración de datos.

Convertir el código de Kettle/PDI a código de Apache Hop

Convertir las transformaciones/trabajos de Kettle/PDI en flujos de trabajo/flujos de Apache Hop requiere una planificación y ejecución cuidadosas para asegurarse de que el código migrado funcione correctamente. Aquí están los pasos generales a seguir:

Migrar el código

  1. Clonar/respaldar tu proyecto de Kettle/PDI: Haz una copia de seguridad del directorio de tu proyecto de Kettle/PDI, incluidos todos los archivos y carpetas. Es importante tener en cuenta que es posible que necesites acceso a archivos de entrada/salida/configuración fuera del código de tu proyecto. Se recomienda verificar que los tengas o que tengas acceso apropiado a ellos.
  2. Abrir el asistente de importación de Hop: Abre el asistente de importación de Hop seleccionando "Hop" > "Importar desde Kettle/PDI" en el menú de Hop.
  3. Seleccionar el directorio del proyecto de Kettle/PDI: En la vista Importar código a Hop, selecciona el directorio del proyecto de Kettle/PDI que deseas importar.
  4. Mapear el repositorio de Kettle/PDI a un proyecto de Apache Hop: Puedes crear un nuevo proyecto de Hop o seleccionar uno existente. También puedes importar a una carpeta en lugar de a un proyecto de Hop.
  5. Seleccionar el archivo kettle.properties de tu proyecto de Kettle/PDI. Esto importará tus variables de proyecto.
  6. Seleccionar el archivo shared.xml: Es posible extraer conexiones de bases de datos relacionales como objetos de metadatos de conexión de base de datos relacional en Hop.
  7. Encontrar el archivo jdbc.properties: Con esta opción, puedes convertir conexiones de bases de datos relacionales JNDI (simple-jndi) en objetos de metadatos de conexión de base de datos relacional en Hop. Las conexiones JNDI no son compatibles con Apache Hop. La funcionalidad JNDI en Kettle/PDI se basa en un proyecto de código abierto que no ha recibido actualizaciones durante aproximadamente diez años. Dado que no había justificación para mantener esta función en Apache Hop, se ha discontinuado.
  8. Puedes omitir archivos y carpetas de destino existentes, archivos y carpetas ocultos y carpetas en la fuente.
  9. Mantener el nombre del archivo de configuración de proyecto generado por defecto o especificar un nombre.
  10. Puedes seleccionar una Configuración de Ejecución de Flujo y una Configuración de Ejecución de Flujo de Trabajo para que se usen de manera predeterminada.
  11. Validar la importación: Una vez que la asignación esté completa, valida la importación para asegurarte de que todo se haya importado correctamente. En pocos segundos, incluso al importar proyectos grandes, recibirás un resumen de migración. Esto te permite verificar la cantidad y el tipo de archivos migrados.

Crear un entorno

Una vez que hayas completado la migración de código, puedes crear un entorno para tu proyecto o múltiples entornos según sea necesario. Esto te permitirá gestionar las configuraciones de metadatos necesarias y los valores de variables para asegurarte de que el proyecto funcione correctamente en un entorno específico.

Puedes agregar, por ejemplo, un archivo de configuración específico del entorno y un archivo de configuración por conexión u objeto de metadatos que necesites en tu entorno.

Verificar posibles problemas

La migración de una herramienta de integración de datos a otra puede ser un proceso desafiante, y es importante anticipar y abordar cualquier problema potencial que pueda surgir. Durante el proceso de migración, es común encontrar problemas como tipos de datos incompatibles, conflictos de versiones, problemas de rendimiento y otros errores inesperados. Además, puede haber código heredado o prácticas desactualizadas que necesiten ser refactorizadas o reemplazadas. Identificar y abordar estos problemas desde el principio del proceso de migración puede ahorrar tiempo y recursos a largo plazo y garantizar una transición fluida a la nueva plataforma.

Verificar las conexiones

Aunque migrar a Hop no es una solución completa para todos los problemas que tu proyecto actual de Kettle/PDI pueda tener (estás migrando lo que tienes), es un momento oportuno para verificar algunos problemas comunes como la presencia de conexiones duplicadas, código repetido, problemas de rendimiento, subutilización de variables y parámetros.

Verifica tus conexiones, verifica la conectividad y los controladores necesarios, utiliza variables para las credenciales y agrega archivos de entorno para tus conexiones.

Actualizar las transformaciones

Es posible que necesites actualizar los flujos para utilizar diferentes transformaciones en algunos casos. Por ejemplo, la salida de informes de Pentaho no es una transformación en Apache Hop, por lo que deberás usar otra transformación en tu nuevo proyecto.

Otra verificación que puedes necesitar es para cualquier código/función Java específica de Pentaho. Simplemente cámbialo por el código de Apache Hop.

Verificar rutas codificadas

Después de migrar, tener rutas codificadas en el proyecto de Kettle puede ser otro problema que deba abordarse. Aunque se considera una mala práctica, si has utilizado alguna ruta codificada en tu proyecto anterior, es algo que probablemente necesitarás verificar. Puedes realizar una búsqueda de código o ejecutar el código y verificar errores o datos incorrectos.

Es importante tener en cuenta que el proceso exacto puede variar según la complejidad de tus flujos y los requisitos específicos de tus tareas de integración de datos. También es una buena idea consultar la documentación y los foros de la comunidad de Apache Hop para obtener orientación y soporte adicional.

Verificar flujos de trabajo/flujos de Hop

Después de convertir los flujos de Kettle/PDI en flujos de Apache Hop, es importante verificar o probar los flujos de trabajo y flujos convertidos para asegurarte de que funcionen correctamente. Esto implica probar la ejecución de los flujos de trabajo y flujos, verificar el flujo de datos y verificar la precisión de los datos de salida.

  1. Verificar errores: En primer lugar, verifica los registros y mensajes de error generados por el flujo de trabajo o el flujo para asegurarte de que no haya errores ni advertencias. Aborda cualquier problema que se identifique.
  2. Validar los datos: Valida los datos de salida para asegurarte de que coincidan con los resultados esperados. Utiliza herramientas como el perfilado de datos y la validación de datos para asegurarte de que los datos sean precisos y consistentes.
  3. Probar los flujos de trabajo y flujos end-to-end: Prueba los flujos de trabajo y flujos de manera completa para asegurarte de que funcionen según lo esperado. Esto puede implicar probar pasos y componentes individuales, así como probar el flujo de trabajo o el flujo en su conjunto.
  4. Verificar las conexiones y configuraciones: Verifica que las conexiones y otras configuraciones del sistema sean correctas y funcionen correctamente. Asegúrate de que el flujo de trabajo o el flujo estén configurados para usar las conexiones y configuraciones correctas.
  5. Realizar pruebas de carga: Realiza pruebas de carga para asegurarte de que pueda manejar grandes volúmenes de datos y cargas de trabajo.
  6. Implementar pruebas unitarias: El marco de pruebas de Apache Hop ofrece varios beneficios, incluida la capacidad de automatizar las pruebas, ejecutar pruebas como parte de un proceso de integración continua y detectar errores temprano en el ciclo de desarrollo. Además, las pruebas unitarias brindan una red de seguridad al realizar cambios en el código existente, ya que ayudan a asegurarte de que los cambios no rompan la funcionalidad existente. Para crear una prueba unitaria, comienzas definiendo los resultados esperados para un flujo en particular. Luego, creas un caso de prueba que ejecuta el flujo y compara los resultados reales con los resultados esperados. Si los resultados reales coinciden con los resultados esperados, el caso de prueba pasa; de lo contrario, falla.

Optimizar los flujos de Hop

Optimizar los flujos de Hop puede ayudar a mejorar su rendimiento y eficiencia, y garantizar que puedan manejar grandes volúmenes de datos y cargas de trabajo. Esto no forma parte de la migración, pero después de finalizarla, es útil dedicar tiempo a mejorar tu código ETL. Aquí hay algunas estrategias para optimizar los flujos de Hop:

Simplificar el código

Simplificar el código puede mejorar significativamente el rendimiento y reducir la complejidad general del flujo. Implica la eliminación de transformaciones y acciones innecesarias en flujos de trabajo o la sustitución de transformaciones o acciones para obtener un mejor rendimiento. Al hacerlo, puedes agilizar el flujo y hacerlo más eficiente. Esto también puede ayudar a mejorar la legibilidad y mantenibilidad del código. Por lo tanto, siempre es una buena práctica revisar tu flujo y eliminar cualquier transformación o acción redundante.

Optimizar las transformaciones

Optimiza las transformaciones individuales en el flujo ajustando sus configuraciones y ajustes. Por ejemplo, puedes ajustar los tamaños de lote, los tamaños de búfer y otros ajustes de rendimiento para mejorar la eficiencia del paso.

Utilizar variables

Las variables ofrecen una solución conveniente para evitar la codificación de varias configuraciones dentro de tu sistema, entorno o proyecto. Coloca las configuraciones específicas del entorno en un archivo de configuración de entorno dedicado.

Crea un entorno dentro de Apache Hop para este propósito y cuando te refieras a ubicaciones de archivos, utiliza ${PROJECT_HOME} en lugar de expresiones como ${Internal.Entry.Current.Directory} o ${Internal.Pipeline.Filename.Directory}.

Registros y monitoreo

Tómate el tiempo para capturar los registros de tus flujos de trabajo y flujos en Apache Hop. Es esencial tener un rastro de cada ejecución para que cuando las cosas salgan mal inesperadamente, puedas identificar fácilmente lo que sucedió. Puedes consultar los Fundamentos de Registro para obtener más información o optar por registrar en una base de datos de grafo Neo4j.

Monitorea el rendimiento del flujo y ajusta sus configuraciones según sea necesario. Utiliza herramientas como el monitoreo de rendimiento y el perfilado para identificar cuellos de botella y otros problemas, y ajustar las configuraciones en consecuencia.

Código modular

Considera utilizar la Inyección de Metadatos para crear plantillas de flujo reutilizables si necesitas crear flujos similares con frecuencia. Esta aproximación elimina la necesidad de una población manual de diálogos y admite la ETL y el flujo de datos dinámicos. También puedes usar ejecutores de flujos de trabajo y flujos.

Para repetir un conjunto de valores, filas o archivos, una de las formas más fáciles es usar un transformador Executor en Hop. El Executor de Flujo de Trabajo se puede usar para ejecutar un flujo de trabajo para cada fila de entrada, mientras que el Executor de Flujos de Trabajo se puede usar para ejecutar un flujo de trabajo para cada fila de entrada. Con este enfoque, es fácil asignar valores de campo a los parámetros del flujo de trabajo o flujo, lo que facilita la repetición de bucles.

Al optimizar tus flujos de Hop, puedes asegurarte de que puedan manejar las demandas de tus flujos de procesamiento de datos y ofrecer resultados rápidos y eficientes.

Conclusión

En conclusión, la migración de Kettle/PDI a Apache Hop requiere algo de planificación y ejecución para garantizar una transición fluida, pero es bastante simple. El primer paso es evaluar tu código actual de Kettle/PDI e identificar cualquier problema de compatibilidad que pueda surgir. Luego, puedes instalar Apache Hop y convertir tus flujos de Kettle/PDI en flujos de Hop. Es importante verificar y probar los nuevos flujos de trabajo y flujos para asegurarte de que funcionen correctamente. Finalmente, es posible que necesites migrar datos del sistema antiguo al nuevo sistema. Siguiendo estos pasos y aprovechando las capacidades y características de Apache Hop, puedes realizar una migración exitosa y beneficiarte de una plataforma de integración de datos más moderna y eficiente. Recuerda que siempre puedes consultar la documentación de Apache Hop y buscar en la comunidad en caso de tener preguntas o desafíos específicos durante el proceso de migración.