DSPL Gen to narzędzie wiersza poleceń, które pomaga skonwertować z tabelą danych CSV w prostym zbiorze danych DSPL. Narzędzie analizuje dane wejściowe tworzy wszystkie niezbędne tabele danych i przygotowuje plik XML DSPL. W efekcie otrzymujemy prawie kompletny zbiór danych. „szablon” które wymaga tylko drobnego ulepszenia przed przesłaniem, i wizualizacji.
Podstawowym założeniem stojącym za generowaniem DSPL jest to, że każda kolumna w wejściowy plik CSV odpowiada pojedynczej koncepcji DSPL, a każdy wiersz to dla danej kombinacji wymiarów. Działanie narzędzia Przez powtarzanie kolumn i ustalenie odpowiednich metadanych kolumna / koncepcja (np. jej identyfikator, typ, wymiar czy dane, itp.), a następnie generuje wszystkie niezbędne definicje pojęć i wycinki tabeli.
Uruchomiona generacja DSPL
Składnia
Uwaga: w podanych niżej instrukcjach zakładamy, że: już obserwujesz instrukcje instalacji, dostępne na stronie Narzędzia DSPL.
Aby uruchomić generowanie DSPL, przejdź do terminala / do komunikatu w systemie i wpisz:
python dsplgen.py -o [output path] [path to CSV file]
gdzie wyrazy w nawiasach zostają zastąpione w następujący sposób:
[output path]
: ścieżka do katalogu, w którym chcesz go znaleźć. pliki wyjściowe do umieszczenia; ten katalog musi już istnieć w systemu plików.[path to CSV file]
: ścieżka do wejściowego pliku CSV. Zobacz sekcja poniżej, w której znajdziesz więcej informacji o tym, w tym pliku.
Komponent -o [output path]
jest opcjonalny. w przypadku jego pominięcia
pliki wyjściowe zostaną umieszczone w bieżącym katalogu.
Następnie narzędzie działa, iterująco w pliku CSV i wyodrębnia koncepcję. definicji i generowania tabel wycinków. Jeśli nie zostaną wykryte żadne błędy, plik XML i co najmniej 1 plik CSV są zapisywane w katalogu wyjściowym.
Na koniec otwórz plik XML w dowolnym edytorze tekstu i wprowadź
wszelkie pożądane zmiany. Podaj przynajmniej imiona i nazwiska,
opisy i inne wartości, które zostały oznaczone przez narzędzie za pomocą atrybutu
Zapis ** INSERT ... **
.
Prosty przykład
Załóżmy, że mamy plik CSV zawierający łączną liczbę przypadków z podziałem na miesiące, kraje i grupy wiekowe. Dla uproszczenia załóżmy, że każdy wymiar ma 2 wartości:
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 z powyższymi danymi wejściowymi powoduje utworzenie 4 plików:
dataset.xml
: szablon XML DSPLcountry_table.csv
: wartości parametrucountry
koncepcjaage_group_table.csv
: wartości argumentu Pojęcie „age_group
”slice_0_table.csv
: tabela wycinka zbioru danych (identyczna z tabeli wejściowej, oprócz sortowania)
W tym przypadku narzędzie jest w stanie poprawnie odgadnąć wszystkie typy i formaty kolumn. Teraz wystarczy otworzyć plik XML oraz edytować różne nazwy, opisy i adresy URL w metadanych zbioru danych.
Dodawanie adnotacji do wejściowego pliku CSV
Opcje podstawowe
W wielu przypadkach, jak w przykładzie powyżej, generacja DSPL może odgadnąć podstawowe metadanych dla każdej kolumny, np. typu, formatu i tego, czy wymiarem czy danymi. W innych przypadkach narzędzie może nie być w stanie odgadnąć je, odgadnąć, odgadnąć lub odgadnąć, ale mimo to ale nie postępuj zgodnie z oczekiwaniami.
Aby radzić sobie z takimi przypadkami, narzędzie obsługuje dodawanie generacji DSPL. opcje / „wskazówki” w wierszu nagłówka pliku CSV. Ich składnia wygląda tak: następujące:
column1[option1=value1;option2=value2;...],column2[option1=value1;option2=value2;...],column3[...],...
Zwróć szczególną uwagę na to, że lista opcji znajduje się wewnątrz nawiasy kwadratowe po prawej stronie nazwy kolumny i kolejna opcja ustawienia są rozdzielane średnikami. Każda opcja składa się z nazwę opcji, znak równości i wartość opcji.
Generacja DSPL obsługuje obecnie następujące opcje podstawowe:
Opcja | Opis | Domyślny |
---|---|---|
type |
typ danych DSPL dla tej kolumny; musi mieć wartość date ,
float , integer lub string . |
Odgadnięte na podstawie danych |
format |
format kolumny daty; jak w DSPL, ten format powinien zakodowane za pomocą funkcji Joda DateTime,. | Odgadnięte na podstawie danych |
slice_role |
rolę tej kolumny w wycinkach; musi być albo
dimension lub metric . |
dimension , jeśli kolumna jest typu date lub
string , w przeciwnym razie metric |
concept |
Koncepcja kanoniczna, którą reprezentuje ta kolumna, np.
geo:country ; jeśli jest podany, koncepcja jest importowana i nie ma
definicja powstaje w pliku XML. |
Brak |
extends |
Koncepcja kanoniczna, którą rozszerza ta kolumna, np.
entity:entity |
Brak |
parent |
Element nadrzędny tej kolumny. Ten element nadrzędny musi być wymiarem koncepcja zdefiniowana w zbiorze danych (tj. niezaimportowana); jeśli jest podany, posłuży do zdefiniowania hierarchii koncepcji w w gromadzeniu danych. Pamiętaj, że każda instancja podrzędna może mieć tylko 1 instancję nadrzędną. Jeśli kilka jeśli zostaną wykryte wartości nadrzędne, narzędzie zwróci błąd. |
Brak |
Podsumowania wartości
Oprócz podstawowej „podpowiedzi” opisane powyżej opcje
Generowanie DSPL obsługuje też pełny zakres danych wycinków: dla pojedynczej tabeli
narzędzie może automatycznie tworzyć dodatkowe tabele z ograniczonymi
podzbiory wymiarów. Jeśli więc na przykład tabela wejściowa odpowiada
wycinek z 3 wymiarami nieczasowymi (np. dimension1
,
dimension2
i dimensions3
) narzędzie może
utwórz też kilka dodatkowych wycinków: tylko dimension1
,
tylko dimension2
, tylko dimension1
,
dimension2
itp.
Dodanie tych dodatkowych wycinków może ułatwić przeglądanie zbioru danych bo zmniejsza liczbę filtrów wymiarów wymaganych do wygenerowania i wizualizacji. Proces ten może natomiast skutkować pojawieniem się „nowych” danych nie znaleziono w oryginalnym pliku. Jeśli plik nie zawiera tych danych, może to spowodować jest używany poprawnie; dokładnie sprawdź zbiorcze dane przed opublikowaniem w gromadzeniu danych.
Proces podłączania jest wyzwalany przez uwzględnienie pewnych dodatkowych opcji wejściowy nagłówek CSV:
Opcja | Opis | Domyślny |
---|---|---|
aggregation |
Metoda agregacji, która ma być stosowana w przypadku łączenia wielu wartości.
w tej kolumnie. musi mieć wartość AVG , COUNT ,
MAX , MIN lub SUM ; tylko
istotne dla danych. |
SUM |
rollup |
Jeśli wartość to true , funkcja
ta kolumna jest „pełna” (tj. zebrane w formie zbiorczej);
ma znaczenie tylko w przypadku elementów typu wymiar. |
Fałsz |
total_val |
Wartość w tej kolumnie wskazująca wiersze do zachowania, gdy ta wartość kolumna jest zgrupowana; ma znaczenie tylko w przypadku elementów typu wymiar. | None |
DSPL Gen następnie oblicza dane o pełnym zakresie za pomocą tego algorytmu:
- Korzystając z wartości tagów
rollup
, oblicz wszystkie możliwe wartości kombinacje kolumn - Dla każdej kombinacji:
- Jeśli któreś z kolumn z podsumowaniem mają parametr
total_val
ustaw, a następnie przefiltruj wiersze według tej wartości; w przeciwnym razie zaznacz wszystkie wiersze - Upuść zbiorcze kolumny
- Pogrupuj wiersze według wartości pozostałych kolumn wymiarów
- Agreguj poszczególne dane, korzystając z metody określonej w
aggregation
parametr - Utwórz wycinek i powiązaną tabelę dla wyniku
- Jeśli któreś z kolumn z podsumowaniem mają parametr
Pamiętaj, że jeśli w każdej grupie jest tylko jedna wartość, a parametr
jest ustawiona na SUM
(wartość domyślna), a następnie
wartości danych w tabelach źródłowych i wygenerowanych będą takie same, czyli nie będą mieć nowych wartości
generowanego czasu. Używając parametru total_val
i zapewniając,
że istnieje tylko jedna „łącznie” wiersz dla każdej kombinacji drugiej
pozwalają przechowywać wstępnie obliczone agregacje bezpośrednio w źródle.
Ostrzeżenie: liczba wygenerowanych wycinków wynosi równy 2kolumnom podniesionym do góry. Stosowanie tej opcji do dużego liczba kolumn może spowodować bardzo długi czas działania i/lub w wielu zbiorach danych.
Przykład zaawansowany
Załóżmy, że mamy te same dane wejściowe co w poprzednim przykładzie, ale uwzględniające teraz dane zbiorcze 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 wartości dla poszczególnych grup wiekowych może nie być zgodna z sumą wartości krajowych np. ze względu na różnice w metodologii lub istnieniu w przypadku innych krajów, które nie zostały wymienione na liście.
Teraz chcemy utworzyć zbiór danych DSPL zawierający następujące dodatkowe funkcje:
- „Poddaj się” w których krajach przypadków według samej grupy wiekowej
- Użyj kanonicznego tagu
geo:country
koncepcję w kolumniecountry
, dzięki czemu możemy automatycznie podaj pełne nazwy, lokalizacje itp. dla tych - Niech koncepcja
disease_cases
ma być rozwinięciemquantity:amount
, Dzięki temu będziemy 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]
Po ponownym uruchomieniu narzędzia uzyskamy dodatkową tabelę wycinków, eliminuje rozróżnienie według kraju:
date,age_group,disease_cases 01/2000,old,152012 02/2000,old,211310 01/2000,young,241011 02/2000,young,240131
Pamiętaj, że gdybyśmy nie uwzględnili łącznych wartości
total_val
w tabeli źródłowej, otrzymaliśmy
obliczona suma dla każdej grupy wiekowej.
Dodatkowo definicja elementu disease_cases
w pliku XML
obejmuje teraz zgodnie z potrzebami rozszerzenie z quantity:amount
.
Definicja obiektu country
jest usuwana z pliku XML, ponieważ
Używamy do tego zaimportowanego elementu.
Po wpisaniu różnych nazw, opisów i informacji o jednostkach skompresować pakiet zbiorów danych i przesłać go do Eksploratora danych publicznych, i wizualizacji.