DSPL Gen

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 DSPL
  • country_table.csv: wartości parametru country koncepcja
  • age_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

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:

  1. „Poddaj się” w których krajach przypadków według samej grupy wiekowej
  2. Użyj kanonicznego tagu geo:country koncepcję w kolumnie country, dzięki czemu możemy automatycznie podaj pełne nazwy, lokalizacje itp. dla tych
  3. Niech koncepcja disease_cases ma być rozwinięciem quantity: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.