Unikaj nadmiarowości w integracji danych

Internet udostępnia ogromne ilości danych, które mogą być wykorzystywane w wielu interesujących zastosowaniach. Jednakże, zawsze, gdy tworzymy unikalną analizę i prezentację informacji, nad którymi nie mamy pełnej kontroli, istnieje ryzyko, że właściciel tych danych w przyszłości zaoferuje podobne rozwiązanie, co uczyni nasze zastosowanie zbędnym.

Dokładnie to się stało w przypadku projektu analizy danych API firmy Groupon, o którym pierwotnie pisaliśmy w sierpniu 2011 roku. Na szczęście, podstawą naszego projektu jest graficzny system mapowania danych MapForce. Dzięki temu możemy szybko i łatwo modyfikować mapowanie oraz wykorzystywać je do prezentacji zupełnie innego zestawu danych, który dostarcza nową wartość.

Nasze przedsięwzięcie rozpoczęło się, gdy zauważyliśmy, że oferty Groupona były dostępne tylko w kilku lokalizacjach, a jednocześnie można było je zrealizować online, otrzymując w zamian fizyczne produkty, które mogły być wysłane praktycznie do każdego miejsca.

Użyliśmy programu MapForce do pobrania danych z API firmy Groupon, aby uzyskać informacje o wszystkich ofertach ze wszystkich lokalizacji Groupon. Następnie odfiltrowaliśmy oferty, które były klasyfikowane jako oferty online, i wyświetliliśmy je na stronie HTML, elegancko sformatowanej za pomocą narzędzia Altova StyleVision dla urządzeń stacjonarnych i mobilnych.

Nowo dodana zakładka "Produkty" na górze strony internetowej Groupon sprawia, że nasze dotychczasowe metody mapowania danych stały się zbędne, ponieważ zapewnia natychmiastowy dostęp do produktów dostępnych do sprzedaży online z wielu lokalizacji.

Co gorsza, ponieważ większość tych samych produktów jest oferowana w niemal każdym punkcie Groupon, nasze mapy generują teraz dziesiątki duplikatów.

Ponownie wykorzystaj aplikację

Analizując sprawę z szerszej perspektywy, uzasadnienie naszego pierwotnego projektu wciąż pozostaje aktualne: Groupon organizuje i prezentuje oferty specjalne w oparciu o lokalizację, ale zdarza się, że sama oferta jest bardziej atrakcyjna niż miejsce, w którym jest dostępna. Na przykład, wycieczka do Allentown w Pensylwanii może nie znajdować się na Waszej liście marzeń, ale co, jeśli wiedzielibyście o ofercie Groupon, która pozwala przejechać pięć lub dziesięć okrągów po torze wyścigowym Pocono za połowę zwykłej ceny, korzystając z Ferrari, Lamborghini lub Aston Martina?

Oferta Ferrari nie jest ofertą dostępną online, dlatego nie jest ona wymieniona w sekcji "Produkty" i nie została wybrana przez nasz system mapowania danych MapForce. Jako nowy cel dla naszego projektu mapowania, zebrzemy wszystkie oferty Groupon z lokalizacji, które NIE są klasyfikowane jako oferty dostępne online. Prawdopodobnie w miejscach, które nie przychodzą od razu do głowy, można znaleźć wiele ciekawych rzeczy. Poniżej znajduje się fragment naszego oryginalnego systemu mapowania danych, który filtrował dane otrzymane z API, aby wybrać oferty dostępne online:

Funkcja "contains" znajdująca się w centrum zrzutu ekranu sprawdza, czy element o nazwie "redemptionLocation" w opisie oferty zawiera słowo "Online", co wskazuje na ofertę dostępną online. Oferta jest przekazywana do dalszego przetwarzania tylko wtedy, gdy wynik tego sprawdzenia jest pozytywny.

Funkcja logiczna "i" umieszczona w prawym górnym rogu łączy oferty dostępne online z weryfikacją elementu o nazwie "isSoldOut", aby wybrać tylko te oferty, które są nadal dostępne ( isSoldOut = fałsz).

Możemy bardzo łatwo odwrócić zbiór zebranych danych, wstawiając funkcję logiczną "nie" po funkcji "zawiera". Nowe filtrowanie wybiera wszystkie oferty, które NIE zawierają słowa "Online" w redemptionLocation element.

Ponieważ struktura danych się nie zmienia, a zmienia się jedynie zawartość, nie musimy wykonywać żadnych dodatkowych czynności przed uruchomieniem nowej wersji mapowania. Poniżej znajduje się fragment pliku XML, który ilustruje transakcję dotyczącą firmy Ferrari:

Możemy użyć tego pliku wyjściowego i natychmiast przetworzyć go za pomocą programu StyleVision, korzystając z naszego oryginalnego arkusza stylów, aby utworzyć dokument HTML. Jednak, skoro jesteśmy w programie MapForce, dodajmy jeszcze dwa ulepszenia.

Usuń zduplikowane dane

Wciąż pojawiają się pewne duplikaty w nowych wynikach, ponieważ te same oferty są często prezentowane w różnych dzielnicach dużych miast. Jednym z przykładów, który można zainstalować za pomocą MapForce, jest mapa o nazwie DistinctArticles.mfd, która demonstruje, jak usunąć duplikaty z strumienia danych wejściowych, w którym węzły XML zawierają powtarzające się dane.

Możemy łatwo skopiować projekt z przykładu do naszego układu strony Groupon

Element "Tytuł" pełni funkcję unikalnego klucza, który pozwala na identyfikację zduplikowanych transakcji, a zmienna "oblicz, gdy" przesyła tylko pierwszą kopię do dalszego przetwarzania.

Oczywiście, możemy również zastosować tę strategię eliminacji duplikatów do oryginalnej analizy ofert dostępnych online, aby sprawdzić, czy zakładka "Produkty" dla danego miejsca faktycznie zawiera wszystkie dostępne oferty online. (Nie zawiera.)

Sortowanie danych

Nowa funkcja dodana do wersji 2 programu MapForce 2012 umożliwia sortowanie danych przed zapisaniem ich do pliku wynikowego. Poniżej znajduje się fragment mapowania, który najpierw sortuje dane według nazw podziałów (które odpowiadają lokalizacjom Groupon, gdzie dostępne są oferty), a następnie według tytułów ofert w obrębie każdej lokalizacji.

Teraz możemy przetworzyć uzupełnione dane i wygenerować dokument HTML, przekształcając plik wyjściowy XML za pomocą naszego oryginalnego arkusza stylów StyleVision

Może nawet uda nam się zdobyć zniżkę na pyszną włoską przekąskę po przejeździe szybkim włoskim samochodem! MapForce i StyleVision są dostępne razem w specjalnie wycenionym pakiecie Altova MissionKit. Sprawdźcie sami, jak łatwo jest wykorzystać MissionKit do integracji danych z interfejsu API – pobierzcie bezpłatną 30-dniową wersję próbną!