Saltearse al contenido

Flatten By Key

Flatten By Key

En el sistema de automatización Nappai, es común recibir datos que vienen “agrupados” o anidados dentro de una sola celda o registro. Por ejemplo, una factura podría tener una sola fila, pero en una columna contendría una lista con todos los productos que se compraron.

El componente Flatten By Key (Aplanar por Clave) está diseñado para resolver esto. Su función principal es tomar una columna que contiene listas y “abrir” cada elemento de esa lista para crear una nueva fila individual por cada producto o ítem. Esto transforma datos complejos y anidados en una tabla plana y sencilla de leer o procesar para los siguientes pasos de tu automatización.

Piensa en este componente como un divisor que toma una lista de elementos en una sola fila y los convierte en múltiples filas, donde cada fila contiene un solo elemento de la lista original, pero conserva la información de contexto (como el número de factura o la fecha) de la fila original.

¿Cómo funciona?

El componente funciona siguiendo un proceso lógico y visualmente intuitivo:

  1. Identificación: Tú le indicas al componente qué columna específica (la “clave”) contiene las listas que deseas separar.
  2. Expansión: El componente lee cada registro de entrada. Si encuentra una lista en la columna seleccionada, “explode” o expande esa lista.
  3. Creación de Filas: Por cada elemento que estaba dentro de la lista, el componente crea una nueva fila.
  4. Conservación de Datos: Aunque se crean filas nuevas, el componente asegura que la información que no era una lista (como el ID del cliente o la fecha de compra) se repita y se mantenga intacta en cada una de las nuevas filas generadas.

El resultado final es una tabla con muchas más filas que la original, pero con una estructura mucho más limpia y normalizada, ideal para análisis, exportaciones a bases de datos o filtros posteriores.

Conexión y Credenciales

Este componente no requiere configurar credenciales ni conectarse a servicios externos (como APIs de correo o redes sociales). Funciona directamente con los datos que ya tienes en tu flujo de trabajo dentro de Nappai.

Entradas

Los siguientes campos están disponibles para configurar este componente. Todos están en inglés tal como aparecen en la interfaz de Nappai.

  • Data: Los registros de entrada que contienen la lista a expandir. Aquí debes conectar la salida de un componente anterior que te haya proporcionado la tabla original con las listas anidadas.

    • Visible en: No aplica (el componente no tiene operaciones múltiples).
  • Key to Flatten: El nombre exacto de la columna o campo que contiene la lista/array que deseas expandir en filas individuales.

    • Visible en: No aplica (el componente no tiene operaciones múltiples).

Salidas

  • Flattened Data: Esta es la salida principal del componente. Produce una tabla (DataFrame) transformada donde cada elemento de la lista original ahora es una fila independiente. Esta salida se conecta a continuación con otros componentes para procesar, filtrar o guardar cada uno de esos registros individualmente.

Ejemplo de Respuesta JSON

Imagina que recibes un registro donde el campo items es una lista de productos.

**Entrada Original (Tabla de Datos):**json [ { “order_id”: “101”, “customer”: “Ana”, “items”: [ {“name”: “Laptop”, “price”: 1000}, {“name”: “Mouse”, “price”: 25} ] } ]

Salida de “Flatten By Key” (Resultado): json [ { “order_id”: “101”, “customer”: “Ana”, “items”: {“name”: “Laptop”, “price”: 1000} }, { “order_id”: “101”, “customer”: “Ana”, “items”: {“name”: “Mouse”, “price”: 25} } ]

Como puedes ver, la fila única se ha convertido en dos filas, permitiendo que puedas procesar la “Laptop” y el “Mouse” de manera individual en pasos posteriores.

Conectividad

Este componente es fundamental en flujos de transformación de datos. Lógicamente, suele conectarse de la siguiente manera:

  • Entrada: Se conecta a componentes que obtienen datos brutos o APIs que devuelven estructuras JSON anidadas, como un componente de “HTTP Request” o un conector de base de datos que devuelve listas dentro de celdas.
  • Salida: Se conecta típicamente a componentes de Filtrado (para excluir ítems específicos), Transformación (para calcular valores por ítem), Guardar en Base de Datos (para insertar cada registro individualmente) o Iteración (si necesitas hacer una acción repetitiva por cada elemento).

Ejemplo de Uso

Supongamos que tienes un automatización para procesar pedidos de un e-commerce.

  1. Situación: Obtienes los pedidos de una API. Cada pedido tiene un campo productos que es una lista con todos los artículos comprados en esa orden.
  2. Acción: Usas Flatten By Key y seleccionas productos en el campo Key to Flatten.
  3. Resultado: Ahora, en lugar de tener una fila por pedido, tienes una fila por producto dentro del pedido.
  4. Siguiente Paso: Puedes conectar esto a un componente que revise el stock de cada producto individualmente o que envíe un correo de confirmación por cada artículo enviado.

Consejos y Mejores Prácticas

  • Verifica los Nombres de Campo: Asegúrate de que el nombre en Key to Flatten coincida exactamente con el nombre del campo en tu tabla de entrada, incluyendo mayúsculas y minúsculas.
  • Manejo de Listas Vacías: Ten en cuenta que si una fila de entrada tiene una lista vacía en la clave seleccionada, esa fila podría no generar una salida o generarse con valores nulos, dependiendo de la configuración exacta de la tabla. Revisa tus datos de entrada para asegurar que las listas no estén vacías si esperas resultados.
  • Impacto en el Volumen de Datos: El uso de este componente aumentará significativamente el número de filas en tu flujo de trabajo. Si procesas grandes volúmenes de datos con listas muy largas, asegúrate de que los siguientes componentes en el flujo sean eficientes para manejar múltiples registros.

Consideraciones de Seguridad

Este componente opera exclusivamente con los datos proporcionados en la entrada. No accede a información externa ni expone credenciales. Sin embargo, al expandir datos, asegúrate de que la información resultante no contenga datos sensibles que deban ser enmascarados antes de ser procesados por componentes de visualización o exportación.