---
title: "Evite la redundancia en la integración de datos"
date: "2012-04-30"
categories: 
  - "applications"
  - "data-integration"
tags: 
  - "data-integration"
  - "mapforce"
  - "missionkit"
  - "stylevision"
description: Descubra cómo adaptar proyectos de integración de datos utilizando MapForce para APIs en constante evolución, minimizando la redundancia y, al mismo tiempo, aumentando el valor a través de mapeos innovadores.
---
Status: #blog

Tags:  #data-integration #mapforce #missionkit #stylevision

Categories: [data-integration](/blog/es/category/data-integration.md)
# Evite la redundancia en la integración de datos

Internet pone a disposición una gran cantidad de datos para una amplia variedad de aplicaciones interesantes. Sin embargo, cada vez que diseñas un análisis y una presentación únicos de información que no controlas directamente, corres el riesgo de que el propietario ofrezca la misma información en el futuro, lo que haría que tu aplicación quedara obsoleta de inmediato.

Exactamente eso ocurrió con el proyecto de minería de datos de la API de Groupon del que hablamos originalmente el [1 de agosto de 2011](https://www.altova.com/blog/2011/08/processing-groupon-api-with-altova.html). Afortunadamente, el núcleo de nuestro proyecto es una [herramienta gráfica de mapeo de datos llamada MapForce](https://www.altova.com/es/mapforce/mapping-interface.html). Podemos ajustar rápidamente y fácilmente el mapeo, y reutilizarlo para presentar un conjunto de datos completamente diferente que ofrezca un nuevo valor.

![Salida HTML generada por MapForce y StyleVision](https://lh4.ggpht.com/-Cljb05Xyph0/T5638l3TgOI/AAAAAAAAAzY/e2ZOHUuYI18/clip_image001%25255B1%25255D.png?imgmax=800 "HTML output from MapForce and StyleVision")

<!--more-->

Nuestro proyecto comenzó inicialmente cuando notamos que las ofertas de Groupon solo estaban disponibles en unos pocos lugares específicos, pero que podían ser canjeadas a través de internet para adquirir productos físicos que podían ser enviados a casi cualquier lugar.

Utilizamos MapForce para consultar la API de Groupon y obtener todas las ofertas de cada ubicación de Groupon. Luego, filtramos las ofertas clasificadas como promociones en línea y las presentamos en una página HTML, con un formato elegante creado por Altova [StyleVision](https://www.altova.com/es/stylevision.html), para dispositivos de escritorio y móviles.

La nueva pestaña "Productos" que se ha añadido recientemente en la parte superior de la página web de Groupon hace que nuestro sistema de mapeo de datos original sea completamente innecesario, ya que ofrece acceso inmediato a los productos a la venta en línea desde múltiples ubicaciones.

![Barra de menú de Groupon](https://lh6.ggpht.com/-orkQDLNQCSY/T563-EVvRvI/AAAAAAAAAzc/yA-Y-iOqQIA/clip_image003%25255B1%25255D.png?imgmax=800 "Groupon Menu Bar") 

Peor aún, dado que la mayoría de los mismos productos se ofrecen en prácticamente todas las sucursales de Groupon, nuestro sistema de mapeo ahora genera decenas de duplicados.

**Reutilizar la aplicación**

Considerando el asunto desde una perspectiva más amplia, la justificación de nuestro proyecto original sigue siendo válida: Groupon organiza y muestra ofertas basadas en una consulta geográfica, pero existen casos en los que la oferta es más atractiva que la ubicación. Por ejemplo, un viaje a Allentown, Pensilvania, quizás no esté en su lista de deseos, pero ¿qué pasaría si supiera de una oferta de Groupon para conducir un Ferrari, un Lamborghini o un Aston Martin durante cinco o diez vueltas en el circuito de Pocono, a la mitad del precio habitual?

La oferta de Ferrari no es una oferta en línea, por lo que no aparece en la sección de "Productos" ni es seleccionada por nuestro sistema de mapeo de datos MapForce. Como un nuevo objetivo para nuestro diseño de mapeo, recopilemos todas las ofertas de Groupon de todas las ubicaciones que NO estén clasificadas como ofertas en línea. Probablemente haya muchas cosas interesantes que hacer en lugares que quizás no se nos ocurran de inmediato. Aquí está la sección de nuestro mapeo de datos original que filtraba la respuesta de la API para seleccionar las ofertas en línea:

![MapForce: Selección de ofertas en línea](https://lh5.ggpht.com/-Ptb0HXebrqc/T563-k1EN7I/AAAAAAAAAzg/CIcr6nH_yfk/clip_image004%25255B1%25255D.png?imgmax=800 "MapForce mapping selects Online deals")

La función "contains" que se muestra en el centro de la captura de pantalla verifica si un elemento llamado "`redemptionLocation`" en la descripción de la oferta contiene la palabra "Online", lo que indica que se trata de una oferta en línea. La oferta se pasa a la siguiente etapa de procesamiento solo si el resultado de la verificación es verdadero.

La función lógica "y" ubicada en la esquina superior derecha combina las ofertas disponibles con una verificación del elemento llamado `isSoldOut` para seleccionar únicamente las ofertas que aún están disponibles ( `isSoldOut` = falso).

Podemos invertir fácilmente el conjunto de datos recopilados insertando una función "no lógico" después de la función "contiene". El nuevo filtro seleccionará todas las ofertas que NO contengan la palabra "Online" en `redemptionLocation` elemento.

![MapForce: selección de ofertas que no están disponibles en línea](https://lh3.ggpht.com/-l13YN4e-Ato/T563_kIuLDI/AAAAAAAAAzk/XGsRLiOmeR4/clip_image005%25255B1%25255D.png?imgmax=800 "MapForce mapping selects NOT Online deals")

Dado que la estructura de los datos no cambia, solo el contenido, no es necesario realizar ninguna otra acción antes de ejecutar la nueva versión de la configuración. A continuación, se muestra una parte del resultado en formato XML que muestra la transacción relacionada con Ferrari:

![Fragmento de la salida XML de MapForce](https://lh5.ggpht.com/-dp5HsRJow_0/T564AKiKGLI/AAAAAAAAAzo/eHry_7Ow_vo/clip_image006%25255B1%25255D.png?imgmax=800 "Portion of MapForce XML Output") 

Podríamos tomar este archivo de salida y procesarlo inmediatamente con StyleVision, utilizando nuestra hoja de estilo original, para crear un documento HTML. Sin embargo, mientras estamos en MapForce, agreguemos dos mejoras más.

**Eliminar datos duplicados**

Todavía estamos encontrando algunos duplicados en los nuevos resultados, ya que las mismas ofertas se suelen presentar en varios barrios de las grandes ciudades. Uno de los ejemplos incluidos con MapForce es un mapeo llamado DistinctArticles.mfd, que muestra cómo eliminar duplicados de un flujo de entrada donde los nodos XML contienen datos repetidos.

Podemos copiar fácilmente el diseño del ejemplo y aplicarlo a nuestro mapa de Groupon

![MapForce elimina los nodos XML que contienen contenido duplicado](https://lh5.ggpht.com/-kNbDk_pMp9M/T564A1OHw9I/AAAAAAAAAzs/YuYcMlJFKpc/clip_image007%25255B1%25255D.png?imgmax=800 "MapForce removes XML nodes with duplicate content") 

El elemento "Título" funciona como una clave única para identificar transacciones duplicadas, y la variable "calcular cuando" solo envía la primera copia para su procesamiento posterior.

Por supuesto, también podemos aplicar esta estrategia de eliminación de duplicados al mapeo original de las ofertas en línea, para determinar si la sección de "Productos" de una ubicación específica realmente ofrece todas las ofertas en línea disponibles. (No es así)

**Ordenamiento de datos**

Una nueva función añadida a la versión 2 de MapForce 2012 nos permite ordenar los datos antes de que lleguen al archivo de salida. Aquí se muestra la sección de la transformación que primero ordena por los nombres de las divisiones, que corresponden a las ubicaciones de Groupon para las ofertas, y luego por el título de la oferta dentro de cada ubicación.

![Ordenamiento de datos en MapForce](https://lh4.ggpht.com/-aGsc77JuG5U/T564BtdPWcI/AAAAAAAAAzw/xYktjaMw2t0/clip_image008%25255B1%25255D.png?imgmax=800 "Data sorting in MapForce")

Ahora podemos procesar el mapeo completado y generar un documento HTML transformando el archivo de salida XML con nuestra hoja de estilo StyleVision original

![Salida HTML transformada por StyleVision](https://lh6.ggpht.com/-TbYmj47yh6A/T564CQgaXHI/AAAAAAAAAz0/7EJajx0u_KQ/clip_image009%25255B1%25255D.png?imgmax=800 "HTML output transformed by StyleVision")

Quizás incluso podamos conseguir una oferta para un delicioso aperitivo italiano después de conducir un coche italiano rápido. **MapForce y StyleVision están disponibles juntos en el Altova MissionKit, que tiene un precio especial. Descubre por ti mismo lo fácil que es utilizar el MissionKit para integrar datos de una API web** [**¡Descarga una versión de prueba gratuita de 30 días!**](https://www.altova.com/es/download/missionkit/software_development_tools_enterprise.html)
