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 .