No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Transformación de datos con Pentaho: parte 2

21/25
Recursos

¿Cómo transformar datos con Pentaho de manera eficiente?

Pentaho es una poderosa herramienta open source para el manejo de ETLs, ideal para transformar datasets. A continuación, exploraremos cómo manejar transformaciones con Pentaho de una manera efectiva, siguiendo un flujo de trabajo meticuloso que nos permitirá enriquecer nuestros datos e integrarlos en un modelo completo.

¿Cómo filtrar y secuenciar datos?

El primer paso esencial en la manipulación de datos es filtrar y establecer secuencias apropiadas para garantizar que solo trabajamos con información relevante.

  1. Filtro de filas: Se utiliza el filtro de rows para seleccionar únicamente registros donde el campo "alfa" no sea nulo.

    # Pseudo-código en base a la clase
    filtro = filtro_filas(main, condiciones={'alfa': 'nonull'})
    
  2. Secuencia de identificadores: Aplicar una secuencia para generar un ID único, "idCountry", para los países. Esto nos permitirá más adelante integrarlos con otros conjuntos de datos.

    # Configuración de la secuencia
    secuencia = aplicar_secuencia(filtro, nombre='addSequenceCountry', inicio=1, fin=9999)
    
  3. Selección de valores: Seleccionar solo las columnas necesarias como "idCountry", "alfa", "país", "región" y "subregión" para optimizar el dataset.

    # Selección de columnas
    select_values(secuencia, columnas_necesarias=['idCountry', 'alfa', 'país', 'región', 'subregión'])
    

¿Cómo ordenar y obtener valores únicos?

El ordenamiento y limpieza de duplicados es crucial para mantener la integridad de los datos.

  1. Ordenamiento de filas: Primero, ordenamos las filas por los campos "flow", "year" y "quantity" para prepararlos para procesos posteriores que requieran datos ordenados.

    # Ejemplo de ordenamiento por flow
    sort_rows(flow_data, campo_orden='flow', tipo_orden='ascendente')
    
  2. Extracción de valores únicos: Posteriormente, utilizamos unique_rows para obtener únicamente los valores únicos de "flow", "year" y "quantity".

    unique_values = obtener_filtrado_unico(datos_ordenados, campo='flow')
    

¿Cómo agregar secuencias a nuestros datos?

La incorporación de secuencias numéricas a los datos ayuda a establecer identificadores únicos necesarios para futuras integraciones.

  1. Secuencia de "flow": Creamos un identificador único para "flow", nombrándolo "id flow".

    secuencia_flow = agregar_secuencia(flow_unico, nombre='id flow')
    
  2. Identificadores para "year" y "quantity": Repetimos el proceso para "year" y "quantity", asegurándonos de renombrar los IDs de manera clara y comprensible.

    secuencia_year = agregar_secuencia(year_unico, nombre='id year')
    secuencia_quantity = agregar_secuencia(quantity_unico, nombre='id quantity')
    
  3. Selección final de valores: Seleccionamos los campos relevantes y los preparamos para análisis e integraciones futuras.

    select_values(final, columnas=['id flow', 'flow', 'id year', 'year', 'id quantity', 'quantity name'])
    

¿Qué hemos aprendido y cómo seguir adelante?

Manejar Pentaho permite realizar transformaciones complejas de manera visual y ordenada, ahorrando tiempo y reduciendo errores al trabajar con grandes volúmenes de datos. Los procesos aquí descritos son paralelos a los realizados en herramientas como pandas, pero con la ventaja de una interfaz gráfica que permite realizar dichas tareas de manera intuitiva. ¡Continúa explorando y mejorando tus habilidades con Pentaho y similares! Te invitamos a seguir avanzado en el proceso de transformación de datos, culminando nuestro dataset y realizando integraciones clave en clases futuras.

Aportes 3

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Al final del video se ve la importancia del ordenamiento de datos, ya que no modificó al sort a quantity_name, salen valores duplicados al final

21. Transformación de datos con Pentaho: parte 2

  • Se terminan de hacer los filtrados de los datos según la necesidad
En esta segunda parte sobre \*\*transformación de datos con Pentaho\*\*, vamos a profundizar en otros aspectos importantes que puedes aplicar en tus procesos de ETL (Extracción, Transformación y Carga): \### \*\*1. Enriquecimiento de Datos\*\*Pentaho permite enriquecer los datos provenientes de diferentes fuentes, añadiendo información adicional o calculando nuevos campos. Algunas herramientas y pasos útiles: \- \*\*Add Constants\*\*: Agrega columnas con valores constantes a los datos procesados.- \*\*Calculator\*\*: Permite realizar operaciones matemáticas sobre los campos existentes.- \*\*Lookup Fields\*\*: Busca y agrega valores desde otra tabla o flujo de datos. \#### Ejemplo:\*\*Agregar una columna "Región" con valores constantes:\*\*```plaintextID   | Nombre     ->    ID   | Nombre    | Región-----|-------------    ------|-----------|-------001  | Pedro            001  | Pedro     | América002  | María            002  | María     | América``` \### \*\*2. Filtrado y Limpieza de Datos\*\*Es importante filtrar los datos irrelevantes o corregir errores en los datos fuente antes de cargarlos. \- \*\*Filter Rows\*\*: Filtra las filas en base a condiciones lógicas.- \*\*Data Cleanser\*\*: Corrige errores comunes como capitalización, eliminar espacios en blanco, etc.- \*\*Replace Values\*\*: Reemplaza valores específicos en un campo. \#### Ejemplo:\*\*Filtrar registros con edad menor a 18 años:\*\*```plaintextEntrada:ID   | Nombre     | Edad-----|------------|-----001  | Pedro      | 17002  | María      | 21 Salida:ID   | Nombre     | Edad-----|------------|-----002  | María      | 21``` \### \*\*3. Unión y División de Flujos de Datos\*\*Cuando trabajas con múltiples fuentes, puedes necesitar unirlas o dividirlas según condiciones específicas. \- \*\*Merge Join\*\*: Une dos flujos de datos según claves comunes.- \*\*Switch/Case\*\*: Divide un flujo de datos en varios en función de una condición.- \*\*Union Rows\*\*: Combina dos o más flujos de datos. \#### Ejemplo:\*\*División por región usando Switch/Case:\*\*```plaintextEntrada:ID   | Nombre    | Región-----|-----------|-------001  | Pedro     | América002  | María     | Europa Salida:Flujo América:ID   | Nombre    | Región-----|-----------|-------001  | Pedro     | América Flujo Europa:ID   | Nombre    | Región-----|-----------|-------002  | María     | Europa``` \### \*\*4. Generación de Nuevos Datos\*\*Pentaho facilita la generación de nuevos datos, como claves únicas o registros simulados. \- \*\*Generate Row Number\*\*: Genera números consecutivos en los registros.- \*\*Row Generator\*\*: Crea datos simulados útiles para pruebas. \#### Ejemplo:\*\*Generar números únicos:\*\*```plaintextEntrada:Nombre------PedroMaría Salida:ID   | Nombre-----|-------1    | Pedro2    | María``` \### \*\*5. Carga de Datos Transformados\*\*Los datos procesados pueden cargarse en diversas plataformas, como bases de datos, archivos planos, o sistemas en la nube. \- \*\*Table Output\*\*: Carga los datos en una base de datos.- \*\*Text File Output\*\*: Escribe los datos en un archivo de texto (CSV, JSON, etc.).- \*\*S3 File Output\*\*: Guarda los datos transformados directamente en un bucket de Amazon S3. \#### Ejemplo:\*\*Escribir un archivo CSV:\*\*```plaintextEntrada:ID   | Nombre    | Edad-----|-----------|-----001  | Pedro     | 21002  | María     | 25 Salida (CSV):ID,Nombre,Edad001,Pedro,21002,María,25``` \### \*\*Mejoras Adicionales en las Transformaciones\*\*1. \*\*Monitoreo y Logs\*\*:   - Usa el paso \*\*Write to log\*\* para registrar información durante el proceso.2. \*\*Uso de Variables\*\*:   - Las variables pueden hacer que tus transformaciones sean dinámicas, adaptándose a diferentes escenarios.3. \*\*Manejo de Errores\*\*:   - Configura rutas de manejo de errores para procesar registros problemáticos sin interrumpir el flujo.