Pobrane za pomocą usługi WSDL dane z usługi słownikowej GUGiK z poprzedniego wpisu możemy spróbować przetworzyć do postaci pliku csv np przy pomocy programu typu ETL. Użyjemy w tym celu programu Talend Open Studio Data Integration w jego darmowej wersji który można go pobrać tutaj. Do działania programu musi być zainstalowana na komputerze java, którą można znaleźć tutaj.
Spróbujmy przetworzyć dane z ulicami, które pobraliśmy z serwera. Otwierając pobraną paczkę zip zobaczymy tam dużą ilość xml o takiej samej strukturze, które zawierają ulice dla poszczególnych gmin.W nazwie znajduje się data oraz kod TERYT gminy.
Ciąg działań jaki należałoby wykonać wygląda następująco:
– rozpakowujemy plik zip z ulicami do katalogu
– pobieramy listę plików xml w katalogu
– definiujemy strukturę pojedynczego pliku xml i zasady jego przetwarzania przez program.
– dla każdego pliku xml eksportujemy zawartość według struktury do pliku csv dopisując go do poprzednich danych.
Ponieważ obraz mówi więcej niż tysiąc słów poniżej film z przetwarzania danych:
Łączenie poszczególnych komponentów ze sobą odbywa się za pomocą użycia prawego przycisku myszy i przeciągnięcia na komponent docelowy.
Oczywiście pokazane powyżej przetworzenie jest zrobione w sposób bardzo uproszczony bez definicji zmiennych zamiast ścieżek przeklejanych do poszczególnych komponentów, obsługi błędów, i kilku innych rzeczy.
Ze względu na to że z danymi w pliku zip nie ma schematu, którym można by było je przeczytać powyżej użyłem typu string dla każdej wartości xml aby uniknąć błędów wynikających z różnych typów danych w poszczególnych plikach.
Jeśli chcecie zobaczyć inne opensourcowe narzędzia ETL w akcji zapraszam na stronę mapowy.pl gdzie pokazane jest użycie geokettle przy przetwarzaniu danych GIS. Oczywiście Talend Open Studio również posiada dodatek pozwalający przetwarzać dane GIS. Można go znaleźć tutaj.