---
title: "Resistir à redundância na integração de dados"
date: "2012-04-30"
categories: 
  - "applications"
  - "data-integration"
tags: 
  - "data-integration"
  - "mapforce"
  - "missionkit"
  - "stylevision"
description: Explore como adaptar projetos de integração de dados utilizando o MapForce para APIs em constante evolução, minimizando a redundância e, ao mesmo tempo, aumentando o valor através de mapeamentos inovadores.
---
Status: #blog

Tags:  #data-integration #mapforce #missionkit #stylevision

Categories: [data-integration](/blog/pt/category/data-integration.md)
# Resistir à redundância na integração de dados

A Internet disponibiliza uma enorme quantidade de dados para diversas aplicações interessantes. No entanto, sempre que se cria uma análise e apresentação únicas de informações que não estão sob o seu controlo exclusivo, corre-se o risco de que o proprietário desses dados ofereça a mesma perspetiva no futuro, tornando a sua aplicação obsoleta num instante.

Exatamente o que aconteceu com o projeto de mineração de dados da API da Groupon, sobre o qual escrevemos originalmente em [agosto de 2011](https://www.altova.com/blog/2011/08/processing-groupon-api-with-altova.html). Felizmente, o núcleo do nosso projeto é um [mapa de dados gráfico MapForce](https://www.altova.com/pt/mapforce/mapping-interface.html). Podemos ajustar rapidamente e facilmente o mapeamento e reutilizá-lo para apresentar um conjunto de dados completamente diferente, que oferece um novo valor.

![Saída HTML gerada pelo MapForce e pelo StyleVision](https://lh4.ggpht.com/-Cljb05Xyph0/T5638l3TgOI/AAAAAAAAAzY/e2ZOHUuYI18/clip_image001%25255B1%25255D.png?imgmax=800 "HTML output from MapForce and StyleVision")

<!--more-->

O nosso projeto começou quando notámos que as ofertas da Groupon só estavam disponíveis em alguns locais específicos, mas podiam ser utilizadas online para adquirir produtos físicos que eram enviados para quase qualquer lugar.

Utilizámos o MapForce para consultar a API da Groupon e obter todas as ofertas de todas as localizações da Groupon. Filtramos as ofertas classificadas como promoções online e apresentámo-las numa página HTML, formatada de forma elegante pelo Altova [StyleVision](https://www.altova.com/pt/stylevision.html), para dispositivos de secretária e dispositivos móveis.

A nova aba "Produtos", recentemente adicionada ao topo da página web da Groupon, torna completamente desnecessário o nosso mapeamento de dados original, uma vez que oferece acesso imediato a produtos à venda online em diversas localizações.

![Barra de menu do Groupon](https://lh6.ggpht.com/-orkQDLNQCSY/T563-EVvRvI/AAAAAAAAAzc/yA-Y-iOqQIA/clip_image003%25255B1%25255D.png?imgmax=800 "Groupon Menu Bar") 

Para piorar a situação, como a maioria dos mesmos produtos são oferecidos em quase todos os locais da Groupon, o resultado do nosso mapeamento agora gera dezenas de duplicados.

**Reutilizar a aplicação**

Numa análise mais abrangente, a justificação para o nosso projeto original continua válida: o Groupon organiza e apresenta ofertas com base numa pesquisa geográfica, mas existem situações em que a oferta é mais atrativa do que a localização. Por exemplo, uma viagem a Allentown, na Pensilvânia, talvez não esteja na sua lista de desejos, mas e se soubesse de uma oferta do Groupon para conduzir um Ferrari, Lamborghini ou Aston Martin por cinco ou dez voltas no autódromo de Pocono, a metade do preço habitual?

A oferta da Ferrari não é uma oferta online, por isso não está listada na secção de "Produtos" e também não é selecionada pelo nosso mapeamento de dados MapForce. Como um novo alvo para o nosso design de mapeamento, vamos recolher todas as ofertas da Groupon de todas as localizações que NÃO sejam classificadas como ofertas online. Provavelmente existem muitas coisas interessantes para fazer em locais que talvez não nos venham imediatamente à mente. Aqui está a secção do nosso mapeamento de dados original que filtrava a resposta dos dados proveniente da API para selecionar as ofertas online:

![O MapForce permite selecionar ofertas online](https://lh5.ggpht.com/-Ptb0HXebrqc/T563-k1EN7I/AAAAAAAAAzg/CIcr6nH_yfk/clip_image004%25255B1%25255D.png?imgmax=800 "MapForce mapping selects Online deals")

A função "contains" no centro da captura de ecrã verifica se um elemento chamado "`redemptionLocation`" na descrição da oferta contém a palavra "Online", indicando que se trata de uma oferta online. A oferta só é encaminhada para processamento adicional se o resultado for "verdadeiro".

A função lógica "e" no canto superior direito combina as ofertas online com uma verificação do elemento chamado `isSoldOut` para selecionar apenas as ofertas que ainda estão disponíveis ( `isSoldOut` = falso).

Podemos facilmente inverter o conjunto de dados recolhidos ao inserir uma função "não" lógica após a função "contém". O novo mapeamento seleciona todas as ofertas que NÃO contêm a palavra "Online" no `redemptionLocation` elemento.

![O MapForce seleciona apenas ofertas que não são exclusivas para compras online](https://lh3.ggpht.com/-l13YN4e-Ato/T563_kIuLDI/AAAAAAAAAzk/XGsRLiOmeR4/clip_image005%25255B1%25255D.png?imgmax=800 "MapForce mapping selects NOT Online deals")

Como a estrutura dos dados não se altera, apenas o conteúdo, não é necessário realizar nenhuma outra ação antes de executar a nova versão da configuração. Segue um excerto do resultado XML que mostra a transação da Ferrari:

![Parte da saída XML do MapForce](https://lh5.ggpht.com/-dp5HsRJow_0/T564AKiKGLI/AAAAAAAAAzo/eHry_7Ow_vo/clip_image006%25255B1%25255D.png?imgmax=800 "Portion of MapForce XML Output") 

Podemos pegar este ficheiro de saída e processá-lo imediatamente através do StyleVision, utilizando a nossa folha de estilos original, para criar um documento HTML. No entanto, enquanto estamos no MapForce, vamos adicionar mais duas melhorias.

**Remover dados duplicados**

Ainda estamos a receber alguns resultados duplicados, pois as mesmas ofertas são frequentemente disponibilizadas em vários bairros de grandes cidades. Um dos exemplos instalados com o MapForce é um mapeamento chamado DistinctArticles.mfd, que demonstra como remover duplicados de um fluxo de dados de entrada onde os nós XML contêm dados repetidos.

Podemos facilmente copiar o design do exemplo para o nosso mapa do Groupon

![O MapForce remove os nós XML que contêm conteúdo duplicado](https://lh5.ggpht.com/-kNbDk_pMp9M/T564A1OHw9I/AAAAAAAAAzs/YuYcMlJFKpc/clip_image007%25255B1%25255D.png?imgmax=800 "MapForce removes XML nodes with duplicate content") 

O elemento "Título" funciona como uma chave única para identificar transações duplicadas, e a variável "calcular quando" envia apenas a primeira cópia para processamento posterior.

Claro que podemos também aplicar esta estratégia de eliminação de duplicados ao mapeamento original das ofertas online, para verificar se a secção de "Produtos" de uma determinada localização realmente oferece todas as ofertas online disponíveis. (Não é o caso.)

**Ordenação de dados**

Uma nova funcionalidade adicionada à versão 2 do MapForce 2012 permite-nos ordenar os dados antes de chegarem ao ficheiro de saída. Eis a secção do mapeamento que primeiro ordena por nomes de divisões, que correspondem às localizações da Groupon para as ofertas, e depois pelo título da oferta dentro de cada localização.

![Ordenação de dados no MapForce](https://lh4.ggpht.com/-aGsc77JuG5U/T564BtdPWcI/AAAAAAAAAzw/xYktjaMw2t0/clip_image008%25255B1%25255D.png?imgmax=800 "Data sorting in MapForce")

Agora podemos processar o mapeamento concluído e gerar um documento HTML, transformando o ficheiro de saída XML com a nossa folha de estilos StyleVision original

![Saída HTML transformada pelo StyleVision](https://lh6.ggpht.com/-TbYmj47yh6A/T564CQgaXHI/AAAAAAAAAz0/7EJajx0u_KQ/clip_image009%25255B1%25255D.png?imgmax=800 "HTML output transformed by StyleVision")

Talvez até consigamos um desconto numa deliciosa iguaria italiana depois de conduzir um carro italiano rápido! **O MapForce e o StyleVision estão disponíveis em conjunto no Altova MissionKit, com um preço especial. Veja por si mesmo como é fácil usar o MissionKit para integrar dados de uma API web --** [**descarregue uma versão de avaliação gratuita de 30 dias!**](https://www.altova.com/pt/download/missionkit/software_development_tools_enterprise.html)
