Skip to main content

Las actividades de ingeniería de datos son de vital importancia porque proporcionan datos limpios, fiables y accesibles que alimentan todos los procesos basados en datos, desde los modelos de aprendizaje automático hasta los paneles de control de inteligencia empresarial. Algunas actividades clave incluyen la creación y el mantenimiento de canalizaciones y arquitecturas de datos, la garantía de la calidad y la gobernanza de los datos, y la optimización de los sistemas en términos de rendimiento y escalabilidad para respaldar los objetivos empresariales.

Este segundo artículo de nuestra serie Databricks & KNIME profundiza en cómo las dos plataformas simplifican las actividades de ingeniería de datos, como la limpieza, la unión y la transformación de datos a gran escala, eliminando los silos y optimizando los flujos de trabajo con flujos de trabajo intuitivos y de bajo código.

De la BI a la GenAI: el camino recorrido hasta ahora

En una serie de cuatro blogs, estamos examinando las formas en que KNIME y Databricks se integran para dar soporte a cada fase del ciclo de vida de los datos y la IA. En las secciones anteriores hemos tratado los aspectos fundamentales de:

  • Business Intelligence. Hemos mostrado cómo KNIME se conecta de forma segura a Databricks, ofreciendo a los analistas la posibilidad de consultar las tablas de Databricks, navegar por Unity Catalog y realizar análisis directamente en la plataforma, garantizando una gobernanza adecuada de los datos.

Ahora, en esta segunda fase, partimos de los fundamentos de la BI para explorar cómo los ingenieros de datos, gracias a la integración de KNIME y Databricks, pueden combinar la gobernanza y la escalabilidad de los datos de Databricks con las capacidades sin código de KNIME para crear, automatizar y orquestar canalizaciones ETL y ELT.

Extracción de datos en KNIME

KNIME destaca en la extracción de datos sin procesar de diversas fuentes, entre las que se incluyen:

  • Sistemas de archivos y almacenamiento. KNIME admite archivos locales o remotos (por ejemplo, HDFS, Amazon S3, Azure Data Lake Storage Gen2, Google Cloud Storage) en formatos estructurados (CSV, Parquet), semiestructurados (JSON, XML) o no estructurados (texto, imágenes, audio). KNIME es especialmente útil para acceder a datos locales que no están directamente disponibles para los cuadernos de Databricks.
  • Bases de datos. Extrae datos transaccionales de bases de datos OLTP (relacionales o NoSQL) diseñadas para el procesamiento en tiempo real, que actúan como fuentes de datos sin procesar para los procesos ETL/ELT.
  • Fuentes de datos externas y servicios web. Accede a los datos a través de API REST o web scraping, con KNIME ofreciendo nodos para solicitudes REST, web scraping y envoltorios API para sistemas como Salesforce.

Transformación de datos en KNIME

La transformación es un paso fundamental y KNIME ofrece opciones sin código/con poco código tanto para flujos de trabajo ETL como ELT, dependiendo de dónde se produzcan las transformaciones:

  • ETL (transformaciones locales): utiliza nodos KNIME nativos para transformar los datos localmente.
  • ELT (transformaciones Databricks): aproveche la potencia de cálculo de Databricks (SQL Warehouse o clústeres Spark) para transformar los datos de forma remota, sin que tengan que salir del entorno Databricks.

Las técnicas de transformación comunes incluyen:

  • Combinación de datos: combinar datos procedentes de múltiples fuentes (en la nube o locales) utilizando nodos como Concatenate o Joiner.
  • Estandarización: garantiza la coherencia sustituyendo valores (por ejemplo, estandarizando los nombres de los países) o convirtiendo formatos (por ejemplo, de texto a fecha y hora).
  • Gestión de valores faltantes: detecta y resuelve problemas relacionados con valores faltantes sustituyendo valores, filtrando filas redundantes o generando alertas.
  • Deduplicación: elimina los registros duplicados para garantizar la precisión y la eficiencia.
  • Presentación de datos: remodela los datos en formatos anchos o largos según el caso de uso, optimizando el almacenamiento o la flexibilidad del esquema.
  • Adición de fechas de adquisición: incluye marcas de tiempo para realizar un seguimiento de la adquisición de datos.
  • Conversión JSON: transforma JSON semiestructurado en formato tabular para facilitar la consulta.

Carga de datos en Databricks

KNIME simplifica la carga de datos en Databricks, como archivos o tablas:

  • Archivos en volúmenes Unity:
    • Crea volúmenes a través de la interfaz de usuario de Databricks, el nodo SQL Statement Executor o la API REST (utilizando la extensión REST Client de KNIME).
    • Carga archivos utilizando los nodos Writer, entre los que se incluyen Parquet Writer u ORC Writer, recomendados para conjuntos de datos de gran tamaño.
  • Tablas en SQL Warehouse:
    • Crea tablas utilizando el nodo DB Table Creator.
    • Carga los datos de forma eficiente con el nodo DB Loader para la carga por lotes, o utiliza DB Writer, Spark to DB u otros nodos KNIME Database Extension.

1. Carga de datos en el volumen Databricks

Para cargar archivos en los volúmenes, el volumen debe existir previamente. Se puede crear un volumen a través de la interfaz de usuario de Databricks o directamente desde un flujo de trabajo de KNIME utilizando el nodo SQL Statement Executor o mediante una solicitud POST utilizando la API de Databricks.

En este flujo de trabajo, el primer paso es crear una conexión con el espacio de trabajo de Databricks. El siguiente paso depende del servicio elegido. Si se utiliza el almacén SQL para crear el volumen, es necesario especificar el nombre del catálogo, el nombre del esquema y el nombre del volumen mediante una instrucción SQL:

Si se utiliza el servicio API Databricks, se necesitará la herramienta de solicitud POST para realizar la autenticación y crear el volumen deseado en Databricks. Este proceso se puede realizar con una llamada API especificando el nombre del catálogo, el nombre del volumen, el nombre del esquema y el tipo de volumen:

El paso de la URL y la solicitud en la configuración de la herramienta Post Request facilita la creación del volumen deseado en Databricks:

Una vez creado el volumen, el proceso de carga se puede completar tras la extracción y transformación de los datos. 

En este ejemplo:

  1. Los datos se extraen de dos fuentes diferentes, una tabla SQLite y un CSV (archivo local).
  2. A continuación, se utilizan los nodos básicos de KNIME para preparar y transformar los datos.
  3. El proceso de carga se inicia conectándose al espacio de trabajo y al volumen existentes.
  4. El nodo Parquet Writer escribe la tabla de datos KNIME en un archivo Parquet. Dependiendo del modo seleccionado, el nodo escribe un único archivo o divide los datos en varios archivos que se almacenan en la carpeta especificada.

2. Carga de datos en la tabla en Databricks

Al igual que con los volúmenes, debe existir una tabla en Databricks antes de que los datos puedan cargarse mediante un flujo de trabajo KNIME. El nodo DB Table Creator simplifica este proceso al permitir definir el esquema, el nombre de la tabla, el modo de ejecución (añadir, sobrescribir o error si la tabla ya existe), los nombres y tipos de las columnas y las claves primarias. En el siguiente ejemplo, utilizamos este nodo para crear una tabla directamente en Databricks.

Una vez creada la tabla, se puede iniciar el proceso de carga de datos. En el siguiente ejemplo, los datos procedentes de dos fuentes diferentes (una base de datos SQLite y un archivo CSV) se extraen y preparan con los nodos estándar de KNIME. A continuación, el flujo de trabajo se conecta al espacio de trabajo de Databricks, a la tabla de destino y al almacén adecuado antes de cargar los datos.

El nodo DB Loader es una herramienta muy eficaz para la carga masiva de datos: recibe la conexión a la tabla y al almacén, así como los datos que se van a cargar en Databricks. Una vez establecidas las conexiones, los datos se pueden cargar ejecutando el flujo de trabajo.

Transformación de datos en Databricks (ELT)

Para las canalizaciones ELT, KNIME aprovecha los recursos informáticos de Databricks de una de las dos formas siguientes:

  • Almacén SQL: consulta y transformación de datos utilizando los nodos de la base de datos KNIME, manteniendo los datos en Databricks.
  • Procesamiento Spark: utiliza la extensión KNIME para Apache Spark para realizar transformaciones avanzadas o aprendizaje automático en grandes conjuntos de datos.

Procesamiento de datos de Databricks con Spark en KNIME

En el siguiente flujo de trabajo se realizan los pasos necesarios para crear un contexto Spark, importar los datos, transformarlos, exportar los resultados y, por último, eliminar el contexto Spark creado.

1. Crear un contexto Spark

En este ejemplo, el nodo Create Databricks Environment se utiliza para conectarse a un clúster, autenticado a través de Workspace Connector. La salida gris es el contexto Spark creado que luego se utiliza para importar los datos (archivos parquet) a un marco de datos Spark.

2. Importar los datos

Carga los datos de Unity Catalog (CSV, Parquet o tablas) en Spark DataFrames utilizando los nodos Spark.

3. Transformar y analizar

Aplica transformaciones o entrena modelos utilizando los nodos Spark, con configuraciones familiares y muy similares a las de los nodos estándar de KNIME, o, alternativamente, utiliza código Spark SQL / PySpark para tareas más avanzadas.

4. Exportar los resultados

Guarda los resultados en archivos, tablas u otros formatos, o exporta los modelos según sea necesario.

5. Destruye el contexto Spark

Utiliza el nodo Destroy Spark Context para liberar los recursos del clúster y minimizar los costes. Este nodo toma como entrada el contexto creado en este flujo de trabajo que, una vez ejecutado, eliminará el contexto.

Crear un entorno local de big data

Para reducir los costes durante el desarrollo y las pruebas, KNIME proporciona el nodo Create Local Big Data Environment, que permite crear prototipos de flujos de trabajo Spark de forma local sin iniciar uno o varios clústeres Databricks. Este nodo permite configurar un entorno Big Data completo (Hive, HDFS, Spark) en tu ordenador, utilizando puertos estándar para la base de datos, el sistema de archivos y las conexiones Spark.

Al pasar del prototipo a la producción, basta con sustituir este nodo por los conectores Databricks, manteniendo sin cambios la lógica del resto del flujo de trabajo.

Automatizar y orquestar las canalizaciones de datos

La automatización y la orquestación de los flujos de trabajo mejoran la eficiencia, minimizan los errores, favorecen la colaboración y permiten la escalabilidad. Además, al reducir las tareas manuales repetitivas y garantizar la coherencia entre los flujos de trabajo, los equipos pueden centrarse en actividades de mayor valor, al tiempo que mantienen una visibilidad y un control claros sobre las operaciones.

Automatiza los flujos de trabajo de datos en KNIME Hub

En KNIME Hub, los flujos de trabajo se pueden automatizar de dos maneras principales:

  • Las programaciones ejecutan los flujos de trabajo automáticamente a horas predefinidas, lo que reduce la intervención manual y el riesgo de errores.
  • Los desencadenantes ejecutan los flujos de trabajo en respuesta a eventos específicos, como la carga de un archivo o la actualización de una base de datos.

Para configurar la automatización, publica y crea una versión de su flujo de trabajo en un espacio Hub y configura un contexto de ejecución para su equipo. En la página del flujo de trabajo, haz clic en Deploy (Implementar) para acceder a las opciones «Create schedule» (Crear programación) y «Create trigger» (Crear activador). En el panel de configuración, puedes definir la hora de ejecución, la frecuencia o la ruta del evento en función del tipo de automatización elegido.

Orquestación de canalizaciones de datos

A menudo, los flujos de trabajo requieren una orquestación: algunos deben ejecutarse en secuencia debido a las dependencias, mientras que otros deben ejecutarse en paralelo para garantizar la eficiencia.

Los flujos de trabajo de KNIME funcionan de forma natural como grafos acíclicos dirigidos (DAG), lo que los hace adecuados para la orquestación. Es posible crear un flujo de trabajo de orquestación dedicado que gestione la ejecución de otros flujos de trabajo, en lugar de crear un único flujo muy complejo.

Los nodos del servicio de flujo de trabajo permiten la orquestación al permitir:

  • Activar la ejecución de otros flujos de trabajo.
  • Transferir datos entre flujos de trabajo.
  • Supervisar los resultados de la ejecución.
  • Configurar los ajustes de reintento y tiempo de espera.

Este enfoque modular mejora la reutilización y simplifica las pruebas y el mantenimiento de los flujos de trabajo.

Los flujos de trabajo de KNIME también pueden exponerse como servicios RESTful, lo que permite que aplicaciones externas (por ejemplo, un sitio web o un script de Python) los invoquen. En este caso, los datos se intercambian en formato JSON a través de los nodos Container Input y Container Output.

Presentación de datos a los usuarios finales

KNIME hace que los datos procesados por Databricks sean accesibles a diferentes tipos de usuarios:

  • Los usuarios más técnicos, familiarizados con Databricks, pueden consultar directamente las tablas de Databricks utilizando los nodos KNIME Database Extension, escribiendo mucho menos código que con los métodos tradicionales.
  • Los usuarios expertos en flujos de trabajo, pero no en Databricks, pueden acceder a componentes predefinidos y reutilizables (con conectores y consultas preconfigurados) compartidos a través de KNIME Hub.
  • Los usuarios empresariales pueden interactuar con los datos de Databricks a través de KNIME Data Apps, filtrando, explorando o descargando conjuntos de datos mediante interfaces intuitivas.

Consideraciones finales

La integración de KNIME y Databricks acelera y simplifica cada fase de la ingeniería de datos: desde la extracción de diferentes fuentes, pasando por las transformaciones (ETL y ELT), hasta la carga de los resultados en tablas o volúmenes de Databricks. Al diseñar canalizaciones en el entorno low-code de KNIME, los equipos pueden automatizar y organizar flujos de trabajo a gran escala, eliminando los silos y mejorando la colaboración entre los expertos en la materia y los consumidores de datos.

Con esto concluye nuestro análisis en profundidad de Databricks y KNIME para la ingeniería de datos.

¿Listo para empezar a experimentar? Explora el curso oficial KNIME Databricks for AI, descarga KNIME Analytics Platform y conéctate a tu espacio de trabajo Databricks hoy mismo.

 

¿Quieres profundizar más? Contacta con nosotros para un asesoramiento gratuito.

Leave a Reply