Saltar al contenido

Apache Hop VS Kettle: Una Breve Comparación

Kettle y Apache Hop son dos nombres destacados en el ámbito de la integración de datos.

Kettle, también conocido como Pentaho Data Integration (PDI), ha sido reconocido durante mucho tiempo como una herramienta de ETL (Extracción, Transformación y Carga) versátil y rica en funciones, conocida por su flexibilidad, escalabilidad y amplio apoyo de la comunidad.

Por otro lado, Hop representa una nueva entrada en el panorama de la integración de datos, desarrollado como un fork moderno, una alternativa liviana con un enfoque en simplicidad, rendimiento y extensibilidad.

Screenshot 2024-03-15 at 09.41.08

:notebook_with_decorative_cover: Nota: Si estás familiarizado con Kettle pero aún no has explorado Apache Hop, el curso Fundamentos de Apache Hop es perfecto para ti.

¿Qué encontrarás aquí?

  1. Una Comparación Breve
    1. Conceptos
    2. Herramientas
    3. Configuración y Entorno
    4. Motores y Ejecución
    5. Features and Functionalities
    6. No en Apache Hop
    7. Nuevos Tipos de Metadatos en Apache Hop
  1. Compatibilidad
    1. Debería transferir mis proyectos a Apache Hop?
  2. Conclusión
    1. Recursos

Una Comparación Breve

Si bien comparten algunas similitudes en términos de funcionalidades básicas de integración de datos, también existen diferencias significativas en términos de características, soporte y perspectivas futuras.

En esta sección, exploraremos en detalle cómo se comparan Apache Hop y Kettle en áreas como escalabilidad, flexibilidad, facilidad de uso y compatibilidad con tecnologías emergentes.

Conceptos

Primero, es crucial entender la terminología utilizada en ambos entornos. Mientras que algunos términos pueden superponerse, otros pueden tener diferentes significados o implementaciones. Aquí hay algunos términos clave comúnmente utilizados:

 

Terminología

Kettle

Hop

Canalización de datos.

Transformation

Pipeline

Una operación en una canalización.

Step

Transform

Serie secuencial de acciones.

Job

Workflow

Una acción en un flujo de trabajo.

Job Entry

Action

Contenedor de metadatos compartidos.

Metastore

Metadata

 

Herramientas

Desde interfaces gráficas de usuario hasta scripts para ejecutar canalizaciones y flujos de trabajo, examinaremos cómo cada herramienta sirve a un propósito único en ambas plataformas.

Al entender las diferencias y similitudes, puedes decidir qué plataforma se adapta mejor a las necesidades de tus proyectos de datos.

 

Herramientas

Kettle

Hop

La interfaz gráfica de usuario.

Spoon

Hop GUI

Script para ejecutar canalizaciones de datos.

Pan

Hop Run

Script para ejecutar flujos de trabajo.

Kitchen

Hop Run

Servidor para ejecución remota.

Carte

Hop Server

Script para configuración.

-

Hop Conf

Script para encriptación.

Encr

Hop Encrypt

Script para búsqueda de metadatos.

-

Hop Search

Script para importación. Import Hop Import
Script para traducción.

-

Hop Translate

Para explorar las especificaciones y funcionalidades de todas las herramientas de Apache Hop, por favor consulta el siguiente post: Herramientas de Hop.
 

Configuración and Entorno

Una de las principales distinciones radica en cómo Apache Hop gestiona proyectos y entornos.

Los proyectos sirven como contenedor para flujos de trabajo y canalizaciones de integración de datos relacionados, ofreciendo una separación lógica entre diferentes alcances de proyecto. Los entornos, por otro lado, definen el contexto de ejecución para un proyecto, abarcando conexiones de base de datos, ubicaciones de archivos y otras configuraciones.

Diseño sin título (2)-4XXPUBfLUi

Sin embargo, los archivos de proyecto por sí solos pueden no incluir la configuración de metadatos necesaria y los valores de variables para un rendimiento óptimo del proyecto en un entorno específico. Para abordar esto, se utilizan entornos para almacenar configuraciones adaptadas a diferentes fases del ciclo de vida del proyecto, como Desarrollo, Pruebas o Producción. 

 

Configuración

Kettle

Hop

Variables del sistema.

${KETTLE_HOME}/.kettle/kettle.properties

${HOP_CONFIG_FOLDER}/hop-config.json or ./config/hop-config.json

Preferencias de la GUI.

${KETTLE_HOME}/.kettle/kettle.properties

${HOP_CONFIG_FOLDER}/hop-config.json or ./config/hop-config.json

Elección de idioma.

${KETTLE_HOME}/.kettle/.languageChoice

${HOP_CONFIG_FOLDER}/hop-config.json or ./config/hop-config.json

Objetos compartidos.

${KETTLE_HOME}/.kettle/shared.xml

All stored in Hop shared metadata

Información sobre el uso de la GUI.

${KETTLE_HOME}/.kettle/kettle.properties

${HOP_AUDIT_FOLDER}/<project>/

Metadatos compartidos.

${PENTAHO_METASTORE_FOLDER} or ${HOME}/.pentaho/metastore

${HOP_METADATA_FOLDER} or ${HOP_CONFIG_FOLDER}/metadata

Configuraciones del entorno/proyecto.

${KETTLE_HOME}/.kettle/environment/metastore

${HOP_CONFIG_FOLDER}/hop-config.json or ./config/hop-config.json

 

Motores y Ejecución

La arquitectura modular de Apache Hop permite a los usuarios aprovechar una gama más amplia de motores de ejecución, incluidos Apache Spark, Apache Flink y Google Cloud DataFlow, para un procesamiento de datos optimizado.

 

Motor

Kettle

Hop

Unit Testing

Plugin

Si

Soporte para Apache Spark

No (Solo PDI EE)

Si (Beam)

Soporte para Apache Flink

No

Si (Beam)

Soporte para Google Cloud DataFlow

No

Si (Beam)

 

Características y Funcionalidades

Desde la gestión de proyectos hasta el manejo de metadatos y las capacidades de la interfaz gráfica de usuario, exploraremos cómo cada herramienta aborda diversos aspectos del proceso de integración de datos. Exploraremos las características y funcionalidades clave de Kettle y Hop lado a lado.

 
Funcionalidad

Kettle

Hop

Proyectos y configuración del ciclo de vida.

No

Si

Búsqueda de información en proyectos y configuraciones.

No

Si

Gestión de configuración a través de la GUI y la línea de comandos.

No

Si

Metadatos compartidos estandarizados

No

Si

Motores de ejecución conectables.

No

Si

Características avanzadas de la GUI: memoria, zoom nativo, etc.

No

Si
Inyección de metadatos.

Si

Si (Mayoría de transformaciones)

Mapeo (sub-transformación/pipeline)

Si

Si (simplificado)

Interfaz web.

WebSpoon

HopWeb

Cumplimiento de la licencia APL 2.0.

Dudas sobre licencia LGPL (pentaho-metastore library)

Si

Objetos de metadatos conectables.

No

Si

Arquitectura de Plugins de la GUI.

XUL based (XML)

Java annotations

No en Apache Hop

Ahora, exploremos las funcionalidades presentes en Kettle que no están disponibles en Apache Hop.

Screenshot 2024-03-13 at 12.54.38

La Interface de Nombres y Directorios de Java (JNDI): En Kettle/PDI, JNDI se basa en un proyecto de código abierto que no ha recibido actualizaciones en aproximadamente una década. Dada su falta de relevancia para Hop, esta funcionalidad fue descontinuada.

Repositorios: En el panorama actual, los repositorios de código son más adecuados para los sistemas de control de versiones (VCS). Por lo tanto, hemos dejado de utilizar repositorios de archivos, bases de datos y PDI EE.

Paso de fórmula: Se ha reemplazado con un transformador más eficiente con el mismo nombre.

Nuevos Tipos de Metadatos en Apache Hop

Screenshot 2024-03-12 at 21.52.46

Apache Hop introduce una variedad de nuevos tipos de metadatos que expanden las capacidades de los proyectos de integración de datos. Veamos algunos de los nuevos tipos de metadatos disponibles en Apache Hop:

  1. Registro de Canalización: Almacena información sobre la ejecución de una canalización, incluyendo la hora de inicio, hora de finalización y duración de la ejecución de la canalización. También registra el número de filas procesadas y el estado de cada transformación dentro de la canalización.
  2. Registro de Flujo de Trabajo: Es similar al Registro de canalización. Es un registro de las actividades y operaciones realizadas durante la ejecución de un flujo de trabajo. Almacena información sobre cada acción ejecutada dentro del flujo de trabajo, como la hora de inicio y finalización de cada acción, el estado de la acción y cualquier mensaje de error o advertencia que ocurra durante la ejecución.
  3. Sonda de Canalización: Es un mecanismo para recuperar metadatos de una canalización sin ejecutarla realmente. Te permite ver y validar metadatos antes de que se ejecute la canalización, lo que ayuda a identificar problemas y errores potenciales. Los metadatos recuperados de la Sonda de canalización se pueden utilizar en pasos posteriores o con fines de depuración.
  4. Prueba Unitaria: Permite a los usuarios definir pruebas para sus canalización. Proporciona una manera fácil y eficiente de probar la funcionalidad y el comportamiento de una canalización al especificar los resultados esperados para ciertas entradas.

Compatibilidad

Pregunta importante: ¿Es compatible el código ETL entre Kettle y Apache Hop?

No, el código ETL no es directamente compatible entre Kettle y Apache Hop. Sin embargo, Apache Hop proporciona una herramienta de importación que te permite migrar tu código ETL existente de Kettle a Apache Hop.

Screenshot 2024-03-13 at 13.13.18

La herramienta de importación de Apache Hop ejecuta las siguientes conversiones:

Kettle Apache Hop
Transformations Pipelines
Jobs Workflows
Steps Transforms
Job Entries Actions
Kettle.properties Project Variables
Shared.xml RDBMS Connections
Jdbc.properties RDBMS Connections
Repository References File References

Estas conversiones garantizan la transición de Kettle a Apache Hop manteniendo la integridad y funcionalidad de los flujos de trabajo ETL.

¿Debería transferir mis proyectos a Apache Hop?

Cuando se trata de elegir entre Apache Hop y Kettle, es esencial considerar los requisitos específicos de su proyecto y casos de uso. Aquí hay algunas preguntas que puede usar para decidir cuál es la mejor opción para su proyecto:

¿Cuáles son los factores principales que influyen en su decisión entre seguir con Kettle o migrar a Apache Hop? ¿Ha encontrado alguna limitación o desafío con Kettle que potencialmente podría ser abordado al cambiar a Apache Hop? ¿Qué tan importante es el soporte a largo plazo y el desarrollo continuo para su solución de integración de datos? ¿Existen características o funcionalidades específicas en Apache Hop que encuentre convincentes o ventajosas en comparación con Kettle o viceversa? ¿Qué nivel de flexibilidad y personalización requiere en sus flujos de trabajo de integración de datos? ¿Ha evaluado el impacto potencial de migrar de Kettle a Apache Hop en sus proyectos y flujos de trabajo existentes? ¿Qué papel juega la compatibilidad con sistemas heredados en su proceso de toma de decisiones?

Para obtener información adicional sobre los pasos y consideraciones para migrar a Apache Hop, puede revisar nuestro artículo: Dejando Kettle/PDI: Cómo Hacer una Transición Exitosa a Apache Hop.

Conclusión

Después de examinar los diversos aspectos de Hop y Kettle, es evidente que aunque ambas herramientas comparten similitudes en sus funcionalidades básicas como canalizaciones (transformaciones) y gestión de flujo de trabajo (trabajos), también muestran diferencias notables en términos de organización de proyectos, flexibilidad del motor en tiempo de ejecución y soporte.

  • Gestión de proyectos: Si su proyecto requiere un enfoque estructurado con un claro control de ciclo de vida y configuración, Hop es la opción a seguir. Su configuración de proyecto y entorno proporciona una mejor organización y control sobre la configuración.
  • Soporte y actualizaciones: Un factor crucial a considerar al elegir entre Hop y Kettle es el nivel de soporte y actualizaciones proporcionadas para cada herramienta. Así es como se comparan en términos de soporte y desarrollo continuo:
    • Apache Hop: Como proyecto impulsado por la comunidad con una comunidad de código abierto activa, Hop se beneficia de actualizaciones continuas, correcciones de errores y mejoras de funciones contribuidas por desarrolladores de todo el mundo. La naturaleza colaborativa del desarrollo de Hop garantiza que los problemas se aborden rápidamente y se introduzcan regularmente nuevas funciones para satisfacer las necesidades cambiantes de los usuarios. Además, ser parte de la Fundación de Software Apache asegura un modelo de gobernanza sólido y soporte a largo plazo para el proyecto.
    • Kettle: Aunque Kettle ha sido una herramienta de integración de datos ampliamente utilizada durante muchos años, ya no se mantiene ni se admite activamente. Aunque es posible que aún se disponga de soporte heredado, los usuarios pueden encontrar limitaciones en términos de actualizaciones, correcciones de errores y compatibilidad con tecnologías más nuevas. Las organizaciones que dependen de Kettle para flujos de trabajo críticos pueden enfrentar desafíos para acceder a un soporte oportuno y asegurar la longevidad de sus soluciones de integración de datos.
  • Flexibilidad del motor en tiempo de ejecución: Hop se destaca con sus motores en tiempo de ejecución plugables, lo que permite a los usuarios elegir el motor más adecuado para sus requisitos específicos, una característica ausente en Kettle.

Te invitamos a compartir sus experiencias y conocimientos en la sección de comentarios a continuación o a través de nuestros canales de redes sociales.

Recursos

  1. Curso Fundamentos de Apache Hop: Descubra los fundamentos de Apache Hop con nuestro curso en línea, que cubre conceptos esenciales, características y aplicaciones prácticas.
  2. Datavin3 en LinkedIn: Siga nuestra página de LinkedIn para obtener publicaciones nuevas, tutoriales y anuncios sobre próximos eventos o cursos.
  3. Documentación de Apache Hop: Explore la documentación oficial de Apache Hop para conocer su arquitectura, componentes y pautas de uso.
  4. Servidor de Chat Mattermost: Involúcrese con la comunidad de Apache Hop en tiempo real en el servidor de chat Mattermost, donde puede conversar con desarrolladores, compartir ideas y obtener soporte.
  5. Listas de correo de Apache Hop: A través de estas listas de correo, recibirá actualizaciones sobre desarrollos del proyecto, anuncios de funciones y discusiones sobre varios temas relacionados con Apache Hop.