ZADANIE 2
Transkrypt
ZADANIE 2
Laboratorium 2 i 3. OPIS ZADANIA Nasza firma zajmuje się sprzedażą na dużą skalę (w kraju i za granicą). Chcemy mieć możliwość wyszukiwania trendów i zależności w sprzedaży, obserwacji przychodów w różnych okresach czasu, itp. W związku z powyższym zdecydowaliśmy, że zrobimy sobie hurtownię danych (nudzimy się, nie mamy nic do roboty bo zrobiliśmy porządną bazę danych i wszystko działa, to „co nam zależy”). Niestety nasza firma początkowo prowadziła rejestrację FVAT również w Excelu, zanim powstała nasza piękna baza w Access’ie. Ustaliliśmy, że dane będziemy pobierać z Access’a, dodatkowo (nie jest wymagane) z Excel’a. OPIS ŹRÓDEŁ DANYCH pliki źródłowe baz danych pochodzą z dwóch oddziałów firmy (Wrocław oraz Warszawa) - na razie nie korzystamy z danych w pliku excel’a, oddziały są prowadzone niezależnie, tzn. nie ma powiązania pomiędzy placówkami (np. nie jest koordynowana numeracja towarów, są inni pracownicy, mogą być inne ceny na ten sam produkt), nie wszystko da się wywnioskować z baz danych, jeśli coś będzie nie jasne, to należy się skontaktować z przedstawicielem firmy – wykładowcą ). Uwaga, wykładowca jest tylko pracownikiem firmy i zna się na tym, czy się zajmuje firma (np. jak numeruje towary, czy dany towar jest tym samym, co towar w drugiej bazie), niestety nie zna się na hurtowniach, więc w tym zakresie niewiele pomoże . OPIS ZADANIA HD (hurtownia danych) ma służyć do opracowywania wyników sprzedaży według zadanych okresów czasu, zadanych placówek (obecnie są dwie z osobnymi bazami danych sprzedaży), według asortymentu dla danych sprzedaży brutto oraz ilościowych, należy uwzględnić w przyszłości możliwość zestawień dla kontrahentów (choć obecnie nie będzie to wymagane), przyjmujemy, że dostaliśmy pozwolenie na modyfikacje baz źródłowych, ale tylko w zakresie, który nie wpłynie na działanie oprogramowania (np. można tworzyć widoki, ale nie można zmieniać nazw atrybutów, gdyż spowoduje to błędy w formularzach. UWAGI K1. Proszę dokładnie zapoznać się z bazami danych: Warszawy i Wrocławia. Podstawą właściwie skonstruowanych procesów zasilających hurtownię danych jest dobra znajomość źródeł, ich organizacji oraz znajomość procesów zachodzących w samej firmie. Należy zatem przyjrzeć się zarówno temu jak działa baza (przepraszam za niedopracowany interfejs, ale powstał na potrzeby zajęć jako „prowizorka” i na razie tak zostało) oraz z samym jej schematem. Należy również zrozumieć dane, np.: skoro jest potrzebna sprzedaż brutto, to trzeba sprawdzić, czy takie dane są w bazie źródłowej, a jeśli nie, to trzeba wiedzieć jak tą wartość policzyć na podstawie tego, co jest w bazie, nazwa jednego atrybutu jest pomylona (projektanci zrobili to specjalnie , żeby trudniej było zrozumieć jak działa ich oprogramowanie), pomylona tzn. jest sytuacja postaci: nazwa atrybutu: „nazwisko”, a atrybut zawiera imię matki; trzeba znaleźć ten atrybut, zrozumienie polega również np. na zapoznaniu się z atrybutami kluczowymi, sposobem kodowania danych itp. K2. Proszę zaplanować strukturę tzw. bazy operacyjne dla hurtowni danych. Przygotowanie może polegać na ustaleniu, jakie atrybuty mają znaleźć się w hurtowni danych. Minimalnie – takie, które wystarczą do realizacji założonych analiz . Można oczywiście więcej, ale to skomplikuje zasilanie hurtowni. Pomocna może być tabela: Ilość Cena jednostkowa …. .... Proszę pamiętać, że dane przechowywane w hurtowni często są optymalizowane pod kątem analitycznym. Oznacza to np. że nie musi być zachowana normalizacja takiej bazy. Jednakże każde rozwiązanie ma zalety i wady, np.: dane przechowywane w hurtowni w postaci jednej tabeli (według np. sprzedaży) – łatwiejsze zasilanie (jeśli mamy np. odpowiedni widok po stronie źródła), łatwiejsza analiza, ale problemy np. w przypadku aktualizacji danych źródłowych oraz konieczność tworzenia widoków dla potrzeb budowy kostki danych (analizy), dane przechowywane w kilku tabelach (np. osobno kontrahenci, towary, sprzedaż) – trudniejsze zasilanie, łatwiejsze to co powyżej, możliwe rozwiązania pośrednie, połączenie części tabel (np. sprzedaż i sprzedaż szczegóły) w jedną, a innych pozostawienie osobno. Istotne jest, żeby rozważyć „za” i „przeciw” i podjąć świadomą decyzję. K3. Proszę zaplanować proces załadowania danych do hurtowni z baz źródłowych. Ogólnie istnieją trzy możliwości: wszystkie procesy budujemy po stronie hurtowni (nie ingerujemy w bazy źródłowe), wszystkie dane opracowujemy w bazach źródłowych, a proces ładowania polega tylko na „kopiowaniu” danych, pośrednie. Nie sposób wyjaśnić tutaj zalet i wad każdego rozwiązania. Pierwsze czasem jest konieczne (np. jeśli nie mamy możliwości ingerencji w bazy źródłowe – licencja, brak oprogramowania itp.). Drugie może powodować problemy z działaniem aplikacji – zazwyczaj serwer dla hurtowni danych jest wydajny, ale komputery w firmie już takie nie są. Jeśli chodzi o same procesy, to dobrze byłoby przed ich realizacją sporządzić w poszczególnych zespołach tabelkę dotyczącą problemów z danymi i przykładowych sposobów radzenia sobie z nimi. Pod koniec zajęć można zbudować wspólnie taką tabelę (na tablicy) uwzględniając opracowania grup. Tabela może być postaci: Rozpoznany problem wymagająca sprawdzenia. lub Brak kwoty brutto. „sprawa” Sposób postępowania 1. Policzyć budując widok (kwerendę) w bazach źródłowych, kwerenda będzie importowana do hurtowni. 2. Policzyć w procesie importu. 3. Będzie liczony podczas przygotowania danych do analizy. Obliczamy ze wzoru: ……………… Czy identyfikator kontrahentów jest jednakowy w obu bazach, czy różny? Jak ……… w związku z tym będzie przebiegał import? W tabeli podałem przykład postępowania dla przypadku 1. Oczywiście każda grupa może przyjąć inne rozwiązanie, jak zawsze w życiu, każde ma swoje zalety i wady . Ważne, żeby wiedzieć, że są różne możliwości. W drugim przypadku np. istotne będzie postępowanie z powtarzającymi się kontrahentami, jedną z możliwości jest np. „ignorowanie błędów” (Uwaga: wymaga zmiany sposobu zapisu do hurtowni przy budowie procesu ETL w Visual Studio). K4. Budowa procesu. Budowane będzie ładowanie danych do hurtowni. Zazwyczaj buduje się osobny proces dla pierwszego załadowania danych, a na jego bazie proces do okresowego „uzupełniania” danych w hurtowni – co będzie realizowane na zajęciach. Zatem będzie tworzony obecnie proces załadowania wszystkich danych do hurtowni. K1: Utworzyć HD z wykorzystaniem SQL Management Studio (nie jest to konieczne, może być zrobione podczas korzystania z kreatora w kolejnym kroku) oraz utworzyć katalog zawierający nasz projekt i sam projekt (analogicznie, jak w lekcji z tutoriala, tylko z inną nazwą ). K2: Tworzymy pakiet dla jednej z baz źródłowych, np. korzystając z SQL Sever Import and Export Wizard (ma również opcję utworzenia HD i opcję tworzenia tabel). Jeśli będziecie Państwo testować działanie ładowania po raz drugi, należy pamiętać, żeby wyłączyć opcje tworzenia tabel (i/lub bazy). Wystarczy z menu podręcznego myszy (po kliknięciu na odpowiednim bloczku) wybrać opcję disable. W razie potrzeby konsultacji: [email protected] ACCESS Widok (tzw. kwerendę) w Access’ie tworzymy w sposób pokazany na poniższym rysunku. Przykład pokazuje definiowanie pola Brutto:, celowo nie została pokazana cała formuła. Jeśli chcemy zbudować nowe pole w oparciu o istniejące atrybuty, używamy składni: nowa_nazwa:wzor_z_uzyciem_atrybutów Przy czym, jeśli nazwa nie zostanie podana, to będzie wygenerowana automatycznie. Atrybuty podajemy w nawiasach kwadratowych (nie jest to wprawdzie konieczne, jeśli nie zawierają np. spacji, ale dla porządku lepiej tak zrobić). ZAŁĄCZNIK do laboratorium 3. Proste ćwiczenie polegające na pobraniu tabeli z bazy z Wrocławia (z kreatora), następnie wykonanie kopii procesu i modyfikacja źródła na Warszawę. Projekt wykonano w Visual Studio 2008 (może nieznacznie się różnić od opcji w laboratorium). K1: Wykonanie procesu (kreator) dla danych Wrocławia. 1. Tworzymy nowy projekt (Integration Services Project): File > New > Project 2. Dodajemy (będzie nam kiedyś potrzebny) projekt analityczny (Analysis Services Project): File > Add > New Project Efekt jak na rys. 1 (nazwy projektów będą oczywiście inne ). Rys.1. Projekt zawierający część dla procesów ETL oraz część analityczną. 3. Tworzymy pakiet dla Wrocławia: a. uruchamiamy kreatora , b. ustalamy źródło danych , c. ustalamy bazę docelową (można utworzyć korzystając z przycisku New) d. wybieramy opcję kopiowania danych e. zaznaczamy tabelę kontrahentów (tylko tą) f. w następnym kroku „Finish”. g. Teraz zostanie przeprowadzona budowa procesu i powinna zakończyć się sukcesem (jeśli nie, to niestety szukamy błędów na podstawie opisu). Jeśli wszystko się uda, to zamykamy raport „Close”. h. Zmieniamy nazwę procesu na „wrocław_start_load” K2: Uruchomienie i sprawdzenie poprawności zaimportowanych danych z Wrocławia. 1. Włączamy przycisk (tylko proszę sprawdzić wzrokiem, czy zaznaczony jest właściwy pakiet). Można obserwować w trakcie zmianę kolorów bloków (żółty – proces w trakcie, zielony – zakończony poprawnie, czerwony – zakończony z błędem). 2. Proszę przejść do zakładki „Data flow” i sprawdzić, czy zaimportowano 5 rekordów. 3. Proszę uruchomić proces jeszcze raz, powinien być efekt postaci: Ze względu na to, iż nie mogło zostać wykonane zapytanie SQL. Proszę zatrzymać proces (przycisk: ) i obejrzeć to zapytanie (np. klikając na brzegu bloku „Preparation SQL Task 1”), powinno otworzyć się okno: Klikając przycisk z trzema kropkami po prawej stronie wiersza „SQLStatement” otrzymamy: UWAGA: Umiejętność dotarcia do tego miejsca jest przydatna, jeśli np. tworzymy tabelę korzystając z kreatora, a następnie potrzebujemy zmodyfikować zapytania (np. dodać dodatkową kolumnę, której nie ma w źródle danych, ale zamierzamy ją wypełniać w procesie ETL). 4. Proszę uruchomić oprogramowanie do zarządzania serwerem (nazwa w tytule okna poniżej), a następnie wyświetlić zawartość tabeli (np. opcja „Select Top 1000 Rows”). 5. Po obejrzeniu zawartości proszę zamknąć okno (to z zawartością tabeli), a następnie usunąć tabelę i spróbować ponownie uruchomić proces. UWAGA: Nie wszystkie zmiany są widoczne od razu (np. po usunięciu tabeli i ponownym wykonaniu proces tabela może nadal nie być widoczna – trzeba odświeżyć widok). K3: Wykonanie kopii procesu i zmiana nazwy. 1. Kopiujemy proces (np. Ctrl+c, Ctrl+v), powstanie o takiej samej nazwie z numerem 1 2. Zmieniamy nazwę K4: Modyfikacja źródła danych. 3. Zmieniamy źródło danych, w tym celu: a. Otwieramy menedżera połączeń ze źródłem (klikamy dwa razy na „SourceConnectionOLEDB” b. modyfikujemy ścieżkę do źródła UWAGA: Można sprawdzić połączenie (przycisk „Test Connection”). K5: Uruchomienie i sprawdzenie poprawności zaimportowanych danych z Warszawy. c. Wyłączamy blok „Preparation SQL Task 1” klikając na nim prawym przyciskiem myszy i ustawiając „Disable” Po wyłączeniu będzie „szary”. d. Uruchamiamy proces. Efekt: W tabeli docelowej mamy zdublowane firmy: e. Proszę usunąć teraz dane z tabeli kontrahenci (uruchomić „New Query”, wpisać polecenie, wcisnąć „Execute”). Proszę teraz spróbować wymyśleć sposób, żeby nie dublowały się dane kontrahentów .