Kostki OLAP i język MDX 24 kwietnia 2015 r. Opis pliku z zadaniami Wszystkie zadania na zajęciach będą przekazywane w postaci plików PDF sformatowanych jak ten. Będą się na nie składały różne rodzaje zadań, ale za każdym razem będą 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. 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 do dwóch dni przed kolejnymi zajęciami). 1
1 Dyskusja dotycząca rozwiązania zadania domowego Treść Omówienie rozwiązania zadania domowego. 2
2 Stworzenie kostki OLAP dla danych MSD Treść Projekt kostki OLAP tworzymy za pomocą narzędzia Microsft SQL Server Data Tools, które jest częścią MS SQL Server i MS Visual Studio. Poniżej przedstawione są kroki tworzenia kostek OLAP na przykładzie bazy danych Million Song Dataset (MSD). Krok 1: Stworzenie nowego projektu Analysis Services Z okna New Project należy wybrać Analysis Services Multidimensional and Data Mining Project. Struktura nowego projektu jest następująca: Krok 2: Źródło danych Aby zdefiniować nowe źródło danych dla naszej kostki musimy wybrać polecenie New Data Source z menu kontekstowego pozycji Data Sources (w Solution Explorer): 3
Wybieramy połączenie z naszą bazą danych zawierającą dane MSD (jeżeli takie połączenie nie zostało zdefiniowane na wcześniejszych zajęciach, to należy to teraz uczynić klikając New): Następnie określamy sposób uwierzytelniania: 4
Ostatni krok kreatora definiowania źródła danych wyświetla podsumowanie informacji o połączeniu. Aby zakończyć klikamy Finish: Krok 3: Perspektywa źródła danych W kolejnym kroku definiujemy perspektywę źródła danych, czyli z jakich danych będziemy korzystać. W tym celu musimy wybrać polecenie New Data Source View z menu kontekstowego pozycji Data Source Views: 5
Wybieramy źródło danych: Wskazujemy tabele i perspektywy ze źródła danych: 6
Rezultatem powinien być następujący widok schematu naszej bazy danych: Krok 4: Kostka danych Aby zdefiniować nową kostkę danych należy wybrać polecenie New Cube z menu kontekstowego pozycji Cubes: 7
Wybieramy sposób tworzenia kostki tak, aby wykorzystano istniejące tabele w naszej bazie MSD: W kolejnym kroku wśród tabel ze źródła danych wskazujemy tabelę faktów: 8
Dalej definiujemy miary: Następnie musimy wybrać tabele wymiarów: 9
Po zakończeniu pracy kreatora kostki powinniśmy zobaczyć następujący widok: Krok 5: Definicja wymiarów i hierarchie W tym kroku musimy uzupełnić definicje wymiarów (Dates, Songs, Users) o wykorzystywane atrybuty oraz ich hierarchie. Aby edytować dany wymiar klikamy na niego dwukrotnie w widoku Solution Explorer lub wybieramy Open z jego menu kontekstowego: Strukturę wymiaru definiujemy w widoku Dimension Structure. Aby uzupełnić definicję wymiaru o atrybuty musimy je przeciągnąć z tabeli w obszarze Data Source View do drzewka w obszarze Attributes. Aby zdefiniować hierarchię musimy przeciągnąć pozycję ID wymiaru oraz poszczególne atrybuty z obszaru Attributes do obszaru Hierarchies. Należy 10
pamiętać o odpowiedniej kolejności atrybutów w tabelece w obszarze Hierarchies! Przykładowo dla wymiaru czasu najpierw ustawiamy rok, później miesiąc i dzień. Możemy też nadać nazwę naszej hierarchii, np. Date dla wymiaru Dates. Zależności pomiędzy atrybutami można edytować w widoku Attribute Relationships: W analogiczny sposób jak zaprezentowano powyżej dla wymiaru Dates definiujemy atrybuty i hierarchie dla pozostałych wymiarów. Dla piosenek nie będą nam potrzebne tzw. text id. 11
Krok 6: Tworzenie kostki i umieszczenie jej w bazie danych Aby uruchomić proces tworzenia kostki należy wybrać polecenie Process z menu kontekstowego naszej solucji: Po chwili ukaże sie okno Process Database. Klikamy w nim przycisk Run w celu uruchomienia procesu generowania kostki danych: 12
Jeżeli proces zakończy się sukcesem, otrzymamy komunikat podobny do poniższego: Nasza kostka OLAP powinna znaleźć się w bazie danych MS SQL Server. Krok 7: Zapytania MDX do zdefiniowanej kostki Na naszych zajęciach będziemy tworzyć zapytania w jęzku MDX do zdefiniowanej kostki w narzędziu SQL Server Management Studio. Stworzymy nowe, puste zapytanie MDX. W tym celu wybieramy menu File, dalej New i Analysis Services MDX Query. Ukaże nam się okno Connect to Server, z domyślnie wybranym typem serwera Analysis Services (pole Server type). Klikamy Connect: Aby operować na stworzonej kostce danych musimy ją wybrać z pola combo Available Databases znajdującym się na pasku narzędzi: 13
Po wybraniu kostki przy edytorze zapytań zobaczymy szczegółowe infomacje o hierarchii w widoku Metadata. W edytorze możemy już pisać swoje zapytania. Aby wykonać wszystkie lub tylko zaznaczone klikamy przycisk Execute lub klawisz F5. 14
3 Zapytania MDX 10 pkt. Treść Sformułuj poniższe zapytania w języku MDX: 0. Przykład: Wyświetl liczbę odsłuchań piosenek zespołu Queen w poszczególnych miesiącach lat 2001, 2002 i 2003. SELECT { [ Dates ]. [ Date ]. [ Year ]. & [ 2 0 0 1 ] : [ Dates ]. [ Date ]. [ Year ]. & [ 2 0 0 3 ] } ON COLUMNS, { [ Dates ]. [ Month ]. Members} ON ROWS FROM MSD WHERE [ Songs ]. [ A r t i s t ]. & [ Queen ] 1. Porównań ze sobą liczbę odsłuchanych utworów dwóch zespołów muzycznych, Queen i Aerosmith, w latach 2001-2003: 2. Wykonaj powyższe zapytanie dla lat 2001-2010 wykorzystując operator zakresu : : 15
3. Podobnie jak powyżej, ale wykorzystując funkcję Members: 4. Porównaj liczbę odsłuchań tych dwóch zespołów w miesiącach 2001 roku wykorzystując funkcję Children: 5. Wykonaj podobne zapytanie dla miesięcy bez uwzględnienia lat: 6. Wyświetl odsłuchania utworów obu zespołów w latach 2001-2010: 16
Niech nazwa zespołu i tytuł pojawią się we wierszach raportu. Wykorzystaj funkcję crossjoin lub operator *. 7. Wyświetl odsłuchania utworów zespołu Queen w latach 2001-2010 posortowane po roku 2001: Wykorzystaj funkcję ORDER. 8. Podobnie jak powyżej, ale odfiltruj utwory grane mniej niż 21 razy w roku 2001: Wykorzystaj funkcję FILTER. 17
Prześlij na adres pocztowy prowadzącego (tytuł listu powinien zawierać oznaczenie [PMDS]) treść zapytań w pliku tekstowym o rozszerzeniu.mdx. W komentarzach umieść informacje o czasie wykonania zapytań. 18