DSPL Gen

DSPL Gen to narzędzie wiersza poleceń, które ułatwia przekształcanie tabeli danych CSV w prosty zbiór danych DSPL. Narzędzie analizuje plik wejściowy, tworzy wszystkie niezbędne tabele danych i układa plik XML DSPL. Wynikiem jest niemal kompletny „szablon”, który przed przesłaniem i wizualizacją wymaga tylko niewielkiego ulepszenia.

Podstawową założeniaą DSPL Gen jest to, że każda kolumna w wejściowym pliku CSV odpowiada pojedynczej koncepcji DSPL, a każdy wiersz to jedna obserwacja dla kombinacji wymiarów. Narzędzie korzysta z tego iteracji, określając odpowiednie kolumny dla każdej kolumny lub koncepcji (np. podając jej identyfikator, typ, wymiar lub dane), a potem generują wszystkie niezbędne definicje koncepcji i tabele wycinków.

Uruchamianie DSPL Gen

Składnia

Uwaga: te instrukcje zakładają, że zostały już wykonane instrukcje instalacji podane na stronie narzędzi DSPL.

Aby uruchomić DSPL Gen, przejdź do terminala / wiersza i wpisz:

python dsplgen.py -o [output path] [path to CSV file] 

gdzie hasła w nawiasach są zastępowane w następujący sposób:

  • [output path]: ścieżka do katalogu, w którym mają zostać umieszczone pliki wyjściowe. Musi on już istnieć w Twoim systemie plików.
  • [path to CSV file]: ścieżka do wejściowego pliku CSV. Więcej informacji o formatowaniu tego pliku znajdziesz w sekcji poniżej.

Komponent -o [output path] jest opcjonalny. Jeśli go nie znajdziesz, pliki wyjściowe zostaną umieszczone w bieżącym katalogu.

Następnie narzędzie działa, powielając plik CSV, wyodrębniając definicje pojęć i generują tabele wycinków. Jeśli nie zostaną wykryte żadne błędy, w katalogu wyjściowym zostanie zapisany plik XML i co najmniej 1 plik CSV.

Na koniec otwórz plik XML w dowolnym edytorze tekstu i wprowadź zmiany. Musisz podać przynajmniej nazwy, opisy i inne wartości oznaczone przez narzędzie wartością ** INSERT ... **.

Prosty przykład

Załóżmy, że mamy plik CSV, który zawiera łączną liczbę przypadków choroby z podziałem na miesiące, kraje i grupy wiekowe. Dla uproszczenia załóżmy, że są 2 wartości każdego wymiaru:

date,country,age_group,disease_cases
01/2000,US,old,102030
01/2000,MX,old,192939
01/2000,US,young,23131
01/2000,MX,young,12311
02/2000,US,old,143135
02/2000,MX,old,203131
02/2000,US,young,22990
02/2000,MX,young,12591

Uruchomienie narzędzia dla powyższych danych wejściowych daje 4 pliki:

  • dataset.xml: szablon XML DSPL
  • country_table.csv: wartości koncepcji country
  • age_group_table.csv: wartości koncepcji age_group
  • slice_0_table.csv: tabela wycinka zbioru danych (tak samo, jak w przypadku tabeli wejściowej, z wyjątkiem sortowania)

W takim przypadku narzędzie potrafi poprawnie odgadnąć wszystkie typy i formaty kolumn. Teraz wystarczy, że otworzysz plik XML i zmienisz nazwy, opisy i adresy URL w metadanych zbioru danych.

Dodaj adnotacje do CSV

Opcje podstawowe

W wielu przypadkach, tak jak w przykładzie powyżej, DSPL Gen może zgadywać podstawowe metadane każdej kolumny, np. typ, format i czy jest to wymiar czy dane. W innych przypadkach narzędzie może nie być w stanie odgadnąć poprawnie lub odgadnąć poprawnie, ale mimo to nie musi postępować zgodnie z oczekiwaniami.

Aby umożliwić Ci obsługę takich przypadków, narzędzie obsługuje dodawanie opcji generowania podpowiedzi/wskazówek w DSPL w wierszu nagłówka CSV. Składnia tych elementów wygląda tak:

column1[option1=value1;option2=value2;...],column2[option1=value1;option2=value2;...],column3[...],...

Zwróć szczególną uwagę na to, że lista opcji znajduje się w nawiasach po prawej stronie nazwy kolumny, a kolejne ustawienia opcji są rozdzielone półprzezroczystymi. Każda opcja składa się z nazwy opcji, znaku równości i wartości opcji.

DSPL Gen obsługuje obecnie te opcje podstawowe:

Option Opis Domyślna
type Typ danych DSPL dla tej kolumny; musi to być date, float, integer lub string. Na podstawie danych
format Format tej kolumny daty. Tak jak w DSPL, należy go zakodować według standardu Joda DateTime. Na podstawie danych
slice_role Rola tej kolumny we wszystkich wycinkach. Musi to być wartość dimension lub metric. dimension, jeśli kolumna jest typu date lub string. W przeciwnym razie metric
concept Kanoniczna koncepcja, którą reprezentuje ta kolumna, np.geo:country. Jeśli ją podasz, koncepcja zostanie zaimportowana, a w pliku XML nie zostanie utworzona żadna definicja. Brak
extends Kanoniczna koncepcja, którą rozszerza ta kolumna, np. entity:entity. Brak
parent

Pojęcie nadrzędne tej kolumny. Ten element nadrzędny musi być koncepcją wymiaru zdefiniowaną w zbiorze danych (tj.niezaimportowana). Jeśli zostanie podana, te informacje będą używane do definiowania hierarchii koncepcji w zbiorze danych.

Pamiętaj, że każda instancja podrzędna może mieć tylko 1 nadrzędną instancję. Jeśli wykryjemy wiele wartości nadrzędnych, narzędzie wyświetli błąd.

Brak

Pełny zakres wartości

Oprócz podstawowych opcji „wskazówek” opisanych powyżej DSPL obsługuje też wycinki zbiorczych: na podstawie danych wejściowych pojedynczej tabeli narzędzie może automatycznie tworzyć dodatkowe tabele z ograniczonymi podzbiorami wymiarów. Jeśli na przykład tabela wejściowa odpowiada wycinkowi z 3 wymiarami innymi niż czas (np. dimension1, dimension2 i dimensions3), narzędzie może też utworzyć dodatkowe wycinki: dimension1, tylko dimension2, tylko dimension1, dimension2 itd.

Dodanie tych dodatkowych wycinków może ułatwić przeglądanie zbioru danych, ponieważ ogranicza liczbę filtrów wymiarów wymaganych do tworzenia wizualizacji. Z drugiej strony ten proces może wprowadzić „nowe” dane, których nie ma w pierwotnym pliku, więc jeśli nie są prawidłowo używane, mogą też pojawiać się błędy. Przed opublikowaniem zbioru danych dokładnie sprawdź zsumowane dane.

Proces o pełnym zakresie jest wywoływany przez podanie dodatkowych opcji w wejściowym nagłówku CSV:

Option Opis Domyślna
aggregation Metoda agregacji, która ma być używana do łączenia różnych wartości w tej kolumnie. Musi to być wartość AVG, COUNT, MAX, MIN lub SUM. Ma znaczenie tylko w przypadku danych. SUM
rollup Jeśli wartość to true, koncepcja tej kolumny ma postać „z górą” (tj.agregowana z powrotem). Ma znaczenie tylko w przypadku pojęć wymiar. Fałsz
total_val Wartość w tej kolumnie oznacza, że wiersze mają być zachowywane, gdy jest ona zsumowana, co ma znaczenie tylko w przypadku pojęć związanych z wymiarami. None

Następnie DSPL oblicza dane zbiorcze za pomocą tego algorytmu:

  • Użyj wartości tagów rollup, aby obliczyć wszystkie możliwe kombinacje kolumn
  • Dla każdej kombinacji:
    • Jeśli jakieś kolumny o pełnym zakresie mają parametr total_val, przefiltruj wiersze według tej wartości. W przeciwnym razie wybierz wszystkie wiersze.
    • Upuść kolumny zwinięte
    • Pogrupuj wiersze według wartości pozostałych kolumn wymiarów
    • Zbieraj dane za pomocą metody określonej w parametrze aggregation
    • Utwórz wycinek i powiązaną tabelę dla wyniku

Pamiętaj, że jeśli w każdej grupie obowiązuje tylko jedna wartość, a funkcja agregacji ma wartość SUM (domyślną), wartości wskaźników w tabeli źródłowej i wygenerowanej są takie same (tzn. nie będą generowane żadne nowe wartości). Oznacza to, że za pomocą parametru total_val można mieć tylko jeden wiersz „łącznie” dla każdej kombinacji innych wymiarów, aby mieć możliwość przechowywania wstępnie obliczonych danych bezpośrednio w źródle.

Ostrzeżenie: liczba wygenerowanych wycinków jest równa 2 pełnym kolumnom. Zastosowanie tej opcji do dużej liczby kolumn może spowodować bardzo długi czas działania lub duże zbiory danych.

Przykład zaawansowany

Załóżmy, że mamy te same dane wejściowe co w poprzednim przykładzie, ale teraz zagregowane dane pochodzą z różnych krajów:

date,country,age_group,disease_cases
01/2000,US,old,102030
01/2000,MX,old,192939
01/2000,total,old,152012
01/2000,US,young,23131
01/2000,MX,young,12311
01/2000,total,young,241011
02/2000,US,old,143135
02/2000,MX,old,203131
02/2000,total,old,211310
02/2000,US,young,22990
02/2000,MX,young,12591
02/2000,total,young,240131

Suma w każdej grupie wiekowej może być niezgodna z sumą wartości krajów, np. z powodu różnic w metodologii lub istnienia innych krajów, których nie ma na liście.

Teraz chcemy utworzyć zbiór danych DSPL z tymi dodatkowymi funkcjami:

  1. Podsumuj kraje, abyśmy mogli obliczyć łączną liczbę przypadków choroby według grupy wiekowej.
  2. Używaj kanonicznego atrybutu geo:country w kolumnie country, abyśmy mogli automatycznie uzyskiwać pełne nazwy, lokalizacje itp.
  3. Rozszerz koncepcję disease_cases o quantity:amount, tak abyśmy mogli (ręcznie) dodać informacje o jednostce do pliku XML

Aby to zrobić, modyfikujemy wiersz nagłówka wejściowego pliku CSV w następujący sposób:

date,country[concept=geo:country;rollup=true;total_val=total],age_group,disease_cases[extends=quantity:amount]

Ponownie uruchamiając narzędzie, otrzymujemy dodatkową tabelę wycinków, która pozwala wyeliminować różnice w poszczególnych krajach:

date,age_group,disease_cases
01/2000,old,152012
02/2000,old,211310
01/2000,young,241011
02/2000,young,240131

Gdybyśmy nie uwzględniali łącznych wartości i tagu total_val w tabeli źródłowej, wysłalibyśmy obliczoną sumę dla każdej grupy wiekowej.

Oprócz tego definicja disease_cases w pliku XML zawiera teraz rozszerzenie z quantity:amount. Definicja pliku country jest usuwana z pliku XML, ponieważ używamy do tego celu zaimportowanej koncepcji.

Po wpisaniu różnych nazw, opisów i informacji o jednostce możemy skompresować pakiet danych i przesłać go do Eksploratora danych publicznych w celu wizualizacji.