Modelowanie wielowymiarowe i transformacja danych

Podobne dokumenty
Proces ETL MS SQL Server Integration Services (SSIS)

OnLine Analytical Processing (OLAP) Zapytania SQL

Kostki OLAP i język MDX

Przetwarzanie tekstu 2. Operacje na plikach tekstowych w systemie Linux

Modelowanie wielowymiarowe hurtowni danych

POPULARNE POLECENIA SKRYPTY. Pracownia Informatyczna 2

Map Reduce Proste zliczanie słów i zapytania SQL

OnLine Analytical Processing (OLAP) Kostki OLAP i zapytania MDX

Wykład XII. optymalizacja w relacyjnych bazach danych

Powłoka I. Popularne implementacje. W stylu sh (powłoki zdefiniowanej w POSIX) W stylu csh. bash (najpopularniejsza) zsh ksh mksh.

1. Znajdź za pomocą programu locate wszystkie pliki które zawierają w nazwie słowo netscape locate netscape

BASH - LINIA POLECEŃ. Bioinformatyka 2018/2019

Map Reduce Wprowadzenie do Apache Hadoop

PRACOWNIA INFORMATYCZNA BASH - PODSTAWOWE INFORMACJE

I. KARTA PRZEDMIOTU CEL PRZEDMIOTU

Zasada Bonferroniego

Bash - wprowadzenie. Bash - wprowadzenie 1/39

PRZEWODNIK PO PRZEDMIOCIE

BASH - WPROWADZENIE Bioinformatyka 4

SCENARIUSZ LEKCJI. Streszczenie. Czas realizacji. Podstawa programowa

Klasa 2 INFORMATYKA. dla szkół ponadgimnazjalnych zakres rozszerzony. Założone osiągnięcia ucznia wymagania edukacyjne na. poszczególne oceny

KARTA KURSU. Języki skryptowe

Tajemnice bconsole czyli pierwsze kroki z tekstową konsolą Bacula cz.1

Przekierowanie wejścia wyjścia:

Podstawy i języki programowania

SYSTEMY OPERACYJNE I laboratorium 3 (Informatyka stacjonarne 2 rok, semestr zimowy)

Temat zajęć: Filtry, strumienie standardowe oraz przetwarzanie potokowe. stderr

Zadanie 1. Suma silni (11 pkt)

System operacyjny Linux

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2013/2014

Zastosowanie filtrów w Linuksie

1 Przygotował: mgr inż. Maciej Lasota

skrypt powłoki to plik tekstowy, rozpoczynający się sekwencją: pierwsza linia określa powłokę, w której wykonywany jest skrypt; druga to komentarz

Podstawy Programowania

Wyrażenia regularne. Wyrażenia regularne 1/41

SIECI KOMPUTEROWE I TECHNOLOGIE INTERNETOWE

KARTA PRZEDMIOTU. WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCH KOMPETENCJI Ogólne umiejętności posługiwania się komputerem

APLIKACJE KLIENT-SERWER Client-Server Applications Forma studiów: Stacjonarne Poziom kwalifikacji: I stopnia. Liczba godzin/tydzień: 2W, 2L

BAZY DANYCH LABORATORIUM. Studia niestacjonarne I stopnia

K1A_W11, K1A_W18. Egzamin. wykonanie ćwiczenia lab., sprawdzian po zakończeniu ćwiczeń, egzamin, K1A_W11, K1A_W18 KARTA PRZEDMIOTU

Zagadnienia programowania liniowego dotyczą modelowania i optymalizacji wielu problemów decyzyjnych, na przykład:

PRACOWNIA INFORMATYCZNA CHARAKTERYSTYKA PRZEDMIOTU BASH - PODSTAWOWE INFORMACJE

Grupa kursów: Wykład Ćwiczenia Laboratorium Projekt Seminarium 15 30

PRZEWODNIK PO PRZEDMIOCIE

WYMAGANIA EDUKACYJNE Z INFORMATYKI dla klasy III gimnazjalnej, Szkoły Podstawowej w Rychtalu

Porównanie generatorów liczb losowych wykorzystywanych w arkuszach kalkulacyjnych

J ezyk AWK Kurs systemu UNIX

PRZEWODNIK PO PRZEDMIOCIE

3.1. Na dobry początek

KARTA PRZEDMIOTU. 1. Informacje ogólne. 2. Ogólna charakterystyka przedmiotu. Metody drążenia danych D1.3

KARTA PRZEDMIOTU. Programowanie aplikacji internetowych

Informatyka klasa III Gimnazjum wymagania na poszczególne oceny

Programowanie obiektowe

Wykładowcy Wykład Ćwiczenia Laboratorium Projekt Seminarium Egzamin Kolokwium

utworz tworzącą w pamięci dynamicznej tablicę dwuwymiarową liczb rzeczywistych, a następnie zerującą jej wszystkie elementy,

PRZEWODNIK PO PRZEDMIOCIE

Rok akademicki: 2013/2014 Kod: JFT s Punkty ECTS: 5. Poziom studiów: Studia I stopnia Forma i tryb studiów: Stacjonarne

WYMAGANIA EDUKACYJNE

Bash i algorytmy. Elwira Wachowicz. 20 lutego

PODSTAWY PROGRAMOWANIA STRUKTURALNEGO (C) SYLABUS A. Informacje ogólne

Część 1: OLAP. Raport z zajęć laboratoryjnych w ramach przedmiotu Hurtownie i eksploracja danych

Menu Narzędzia w Edytorze symboli i Edytorze Widoku aparatów

SPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD

Języki formalne i automaty Ćwiczenia 6

Diagramy ERD. Model struktury danych jest najczęściej tworzony z wykorzystaniem diagramów pojęciowych (konceptualnych). Najpopularniejszym

Programowanie i techniki algorytmiczne

SYLABUS DOTYCZY CYKLU KSZTAŁCENIA Realizacja w roku akademickim 2016/17

Pracownia Informatyczna I ORGANIZACJA ZAJĘĆ, ZASADY ZALICZENIA

Programowanie dynamiczne

UNIWERSYTET RZESZOWSKI KATEDRA INFORMATYKI

LOGOWANIE DO SUBKONTA

Wymagania edukacyjne na ocenę z informatyki KLASA III

Kolejki FIFO (łącza nazwane)

1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami

Przygotowanie do egzaminu. część I

Klasyczna Analiza Danych

Jerzy Nawrocki, Wprowadzenie do informatyki

W pierwszej kolumnie wyświetlany jest identyfikator procesu (pid)

Diagramy związków encji. Laboratorium. Akademia Morska w Gdyni

Power Query pobieranie i przetwarzanie danych w Excelu

8. Listy wartości, dodatkowe informacje dotyczące elementów i przycisków

Nazwa wariantu modułu (opcjonalnie): Laboratorium programowania w języku C++

Wprowadzenie do programu Mathcad 15 cz. 1

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2014/2015

Wprowadzenie do Doctrine ORM

Wstęp do systemów wielozadaniowych laboratorium 19 awk

SYLABUS DOTYCZY CYKLU KSZTAŁCENIA Bieżący sylabus w semestrze zimowym roku 2016/17

Z nowym bitem. Informatyka dla gimnazjum. Część II

Technologie Zasilania i Odświeżania Hurtowni Danych na przykładzie Pentaho DI część 6

poniżej przykład modyfikacji UTM34N (oczywiście bez tego co w nawiasach) (elipsoida zostaje taka sama, jak zresztą we wszystkich podobnych UTMach),

Systemy baz danych w zarządzaniu przedsiębiorstwem. W poszukiwaniu rozwiązania problemu, najbardziej pomocna jest znajomość odpowiedzi

Wprowadzenie do złożoności obliczeniowej

Robert Barański, AGH, KMIW MathScript and Formula Nodes v1.0

Zapisywanie algorytmów w języku programowania

7. Formularze master-detail

Informacje i materiały dotyczące wykładu będą publikowane na stronie internetowej wykładowcy, m.in. prezentacje z wykładów

Integralność danych Wersje języka SQL Klauzula SELECT i JOIN

4. Budowa prostych formularzy, stany sesji, tworzenie przycisków

Hurtownie danych. Przetwarzanie zapytań. ZAPYTANIA NA ZAPLECZU

PRZEWODNIK PO PRZEDMIOCIE

Transkrypt:

Modelowanie wielowymiarowe i transformacja danych 2 marca 2019 Opis pliku z zadaniami Wszystkie zadania na zajęciach będą przekazywane w postaci plików.pdf, sformatowanych podobnie do tego dokumentu. Zadania będą różnego rodzaju. Za każdym razem będą one odpowiednio oznaczone: Zadania do wykonania na zajęciach oznaczone są symbolem nie są one punktowane, ale należy je wykonać w czasie zajęć. Punktowane zadania do wykonania na zajęciach oznaczone są symbolem należy je wykonać na zajęciach i zaprezentować prowadzącemu, w wypadku nie wykonania zadania w czasie zajęć lub nieobecności, zadania staje się zadaniem do wykonania w domu ( ). Zadania do wykonania w domu oznaczone są symbolem są one punktowane, należy je dostarczyć w sposób podany przez prowadzącego i w wyznaczonym terminie (zwykle przed kolejnymi zajęciami). Zadania programistyczne można wykonywać w dowolnym języku programowania, używając jedynie biblioteki standardowej dostępnej dla tego języka. 1

1 Studium przypadku Podczas zajęć laboratoryjnych będziemy używać danych związanych z konkursem Million Song Dataset Challenge. Dotyczy on stworzenia systemu rekomendującego piosenki dla użytkowników pewnego serwisu. Dokładny opis danych można znaleźć na stronach: http://www.kaggle.com/c/msdchallenge http://labrosa.ee.columbia.edu/millionsong/ W naszych zadaniach zrobimy pierwsze kroki w kierunku stworzenia systemu rekomendacyjnego. Na zajęciach będziemy wykorzystywać okrojony i zmodyfikowany zbiór danych Million Song Dataset (MSD). Należy pobrać dwa pliki ze strony przedmiotu z następującymi informacjami: unique_tracks.txt zawiera informacje takie jak identyfikator ścieżki, identyfikator utworu, nazwę artysty oraz tytuł utworu, triplets_sample_20p.txt zawiera identyfikator użytkownika, identyfikator utworu oraz datę odsłuchania. W ostatnim ćwiczeniu celem będzie obliczenie odpowiedzi na następujące zapytania: Ranking popularności utworów, Ranking użytkowników ze względu na największą liczbę odsłuchanych unikalnych utworów, Artysta z największą liczbą odsłuchań, Sumaryczna liczba odsłuchań w podziale na poszczególne miesiące, Wszyscy użytkownicy, którzy odsłuchali wszystkie trzy najbardziej popularne piosenki zespołu Queen. Jednak wcześniej zadaniem będzie obliczenie podstawowych statystyk dla tych danych, identyfikacja głównych mankamentów tych danych oraz zaproponowanie sposobu na ich rozwiązanie. Następnie zadaniem będzie zaimplementowanie transformacji danych do postaci, która ułatwi przetwarzanie tych danych oraz będzie pozbawiona głównych problemów. Wszystkie obliczenia należy zrealizować wykorzystując narzędzia powłoki systemowej (np., bash), takie jak: head, cat, paste, sort, uniq, grep, sed, wc, cut, comm, echo, date, join, nl, tr, date, uniq, awk (wspierający również tabele mieszające i przetwarzanie wielu plików). Do pomiaru czasu trwania poszczególnych operacji można wykorzystać program time. 2

Użytkownicy systemu MacOS powinni zwrócić uwagę na różnice w implementacji narzędzi powłoki systemowej. W celu ich zniwelowanie można zainstalować wersję GNU narzędzi. 3

2 Obliczanie podstawowych statystyk 5p. Policz następujące statystyki dla obu wejściowych plików danych: 1. Liczba wierszy i unikalna liczba wierszy 2. Liczba unikalnych wartości w każdej kolumnie 3. Przedział dat, dla których zebrane są dane (uwaga: znacznik czasowych jest wartością wygenerowaną losowo) Przed obliczeniem wszelkich statystyk warto zajrzeć jak wyglądają przykładowe wiersze w obu plikach: 1 head unique_tracks. t x t 2 head triplets_sample_20p. t x t Jednym z problemów w liczeniu statystyk będzie podział obu plików na kolumny ze względu na wykorzystanie specyficznego separatora. Jak możemy rozwiązać ten problem? Spróbuj wykorzystać takie narzędzia jak fold, sort oraz tr. W celu zamiany separatora skorzystaj z narzędzia sed. W celu policzenia liczby wierszy i unikalnej liczby wierszy dla pierwszego zbioru danych wystarczy zapisać następujące komendy: 1 wc l unique_tracks. t x t 2 s o r t unique_tracks. t x t uniq wc l Policzenie unikalnej liczby wartości w pierwszej kolumnie dla pierwszego zbioru danych może zostać obliczony przynajmniej na dwa sposoby: 1 cat unique_tracks transformed. t x t cut d ", " f 1 s o r t uniq wc l 2 3 cat unique_tracks transformed. t x t awk FS ", " BEGIN{ c = 0} { i f (! t [ $1 ] ) c++} END{ p r i n t c } 4 5 s o r t unique_tracks. t x t uniq wc l 4

3 Poprawiony schemat bazy danych Przeanalizuj oryginalny schemat danych dla problemu Million Song Dataset (MSD). Zastanów się, jakie widzisz problemy. Na podstawie analizy oraz wyników z poprzedniego zadania zaproponuj nowy schemat. Zastanów się, jakie elementy można poprawić w oryginalnym schemacie, tak aby zapewnić jego elastyczność (np. nowe informacje na temat użytkowników), dokładniejszą obsługę informacji o dacie, mniejszą złożoność pamięciową oraz lepszą wydajność czasową przy rozrastających się informacjach o poszczególnych obiektach w tym problemie. Przy projektowaniu nowego schematu przypomnij sobie informacje dotyczące schematu gwiazdy przedstawione na wykładzie. 5

4 Transformacja danych z linii komend 10p. Zrealizuj zadanie transformacji danych do przygotowanego schematu przy użyciu komend unixowej powłoki systemowej (np., bash). Głównymi zadaniami jest generacja sztucznych kluczy głównych oraz odpowiednie rozdzielenie kolumn do wynikowych tabel. Do tego problemu można podejść na dwa sposoby. W pierwszym wykorzystywane są tabele mieszające. Dlatego warto wykorzystać program awk (program ten potrafi obsługiwać na wejściu więcej niż jeden plik). Drugi sposób polega na sortowaniu. W jego realizacji warto wykorzystać takie narzędzia jak sort, join oraz cut i nl. Poniżej przedstawiony jest kod, który tworzy wymiar utworu. 1 time j o i n t ", " 1 2 2 2 o 1. 1, 2. 1, 2. 2, 2. 3, 2. 4 \ 2 <( cat unique_tracks transformed. t x t cut d, f 2 s o r t u n l s ", " w1) \ 3 <( cat unique_tracks transformed. t x t s o r t t ", " u k2, 2 ) > songs s Zadanie to ma dwa cele. Pierwszym jest doskonalenie znajomości narzędzi powłoki systemowej. Drugim jest opracowanie i realizacja planu wykonania procedury transformacji danych wykorzystując elementarne operacje haszowania oraz sortowania. 6

5 Zapytania z linii komend 10p. Używając powłoki systemowej można także zadać zapytania bazodanowe. Rozpatrzmy pierwsze zapytanie wspomniane na początku tego dokumentu. Jego celem jest wyświetlenie rankingu popularności utworów. Poniżej przedstawione są dwa sposoby zapisania tego zapytania w powłoce systemowej. Pierwszy sposób wykorzystuje tablice mieszające w programie awk. 1 time gawk 2 BEGIN{FS=", " ; OFS=", "} 3 { count [ $3]++} 4 END{ f o r ( s i n count ) { p r i n t s, count [ s ] } ; } 5 f a c t s s o r t t, k2nr, 2 head gawk 6 BEGIN{FS=", " ; OFS=", "} 7 FILENAME==" "{ songid [ $1]=$2} 8 FILENAME==" songs "{ i f ( $1 in songid ) p r i n t $1, $5, songid [ $1 ] } 9 songs s o r t t, k3nr, 3 Drugi sposób bazuje na sortowaniu. 1 j o i n t, 1 2 2 1 o 1. 2, 2. 4, 2. 5, 1. 1 \ 2 <( cat f a c t s s cut d, f 3 s o r t uniq c sed s /^ / / ; s / /,/ s o r t t, k1rn, 1 head s o r t t, k2, 2 ) \ 3 <( cat songs s s o r t t, k1, 1 ) s o r t t, k4nr, 4 Korzystając z powyższych przykładów wykonaj pozostałe zapytania. Poniżej przedstawione są wyniki dla wszystkich pięciu zapytań (dla wszystkich zapytań wyświetl maksymalnie 10 wierszy, w ostatnim zapytaniu wyświetl dodatkowo liczbę wszystkich użytkowników). Zapytanie 1: 1 You r e The One Dwight Yoakam 145267 2 Undo Bjork 129778 3 Revelry Kings Of Leon 105162 4 Sehr kosmisch Harmonia 84981 5 Horn Concerto No. 4 i n E f l a t K495 : I I. Romance ( Andante c a n t a b i l e ) Barry Tuckwell /Academy o f St Martin in the F i e l d s / S i r N e v i l l e Marriner 77632 6 Dog Days Are Over ( Radio Edit ) F l o r e n c e + The Machine 71300 7 S e c r e t s OneRepublic 58472 8 Canada Five I r o n Frenzy 54655 9 I n v a l i d Tub Ring 53494 10 Ain t Misbehavin Sam Cooke 49073 Zapytanie 2: 7

1 ec6dfcf19485cb011e0b22637075037aae34cf26 1040 2 119 b7c88d58d0c6eb051365c103da5caf817bea6 641 3 b7c24f770be6b802805ac0e2106624a517643c17 637 4 4 e 7 3 d 9 e 0 5 8 d 2 b 1 f 2 d b a 9 c 1 f e 4 a 8 f 4 1 6 f 9 f 5 8 3 6 4 f 592 5 d7d2d888ae04d16e994d6964214a1de81392ee04 586 6 6 d625c6557df84b60d90426c0116138b617b9449 584 7 113255 a012b2affeab62607563d03fbdf31b08e7 561 8 c1255748c06ee3f6440c51c439446886c7807095 547 9 db6a78c78c9239aba33861dae7611a6893fb27d5 529 10 99 ac3d883681e21ea68071019dba828ce76fe94d 499 Zapytanie 3: 1 Coldplay 201081 Zapytanie 4: 1 01 2353423 2 02 2142793 3 03 2354696 4 04 2280733 5 05 2358146 6 06 2277770 7 07 2353362 8 08 2354811 9 09 2281371 10 10 2355043 11 11 2278369 12 12 2338840 Zapytanie 5: 1 $Number o f u s e r s : 34 2 00832 b f55ed890afeb2b163024fbcfaf58803098 3 01 cb7e60ba11f9b96e9899dd8da74c277145066e 4 0 ac20218b5168c10b8075f1f8d4aff2746a2da39 5 1084 d826f98b307256723cc5e9a3590600b87399 6 11 abd6aaa54a50ed5575e8af9a485db752b97b42 7 28 daf225834bae38f86555c8a03bca3bbf0e535d 8 429303 f0cacab81f0c03ddfd7c2d472c8373e130 9 476 a5902414891326ebcd8f6d9b5849f462704fa 10 4 c d 2 4 2 8 f 7 b f c f f 1 e 2 4 2 3 bbdfc1437a1572c23700 11 5283 f472d868bfac68805acb83f35fd7142e3afd 8