Technologie Zasilania i Odświeżania Hurtowni Danych na przykładzie Pentaho DI część 6
|
|
- Kacper Urbaniak
- 5 lat temu
- Przeglądów:
Transkrypt
1 na przykładzie Pentaho DI część 6 I. Czyszczenie danych. Jednym z podstawowych zarzutów dotyczących skrótu ETL jest to, że wyjątkowo złożone transformacje występujące w procesach ETL obejmujące także, a może przede wszystkim, czyszczenie danych i ich ujednolicanie, objęte zostały tylko jedną z liter - T. W ramach bieżącego ćwiczenia zajmiemy się właśnie czyszczeniem danych. Generalnie procedury czyszczenia danych niekoniecznie muszą odbywać na drodze pomiędzy systemami źródłowymi a hurtownią danych. Bardzo często wynikają one z analizy jakościowej źródeł i dotyczą właśnie danych występujących w źródłach. Na początku, w ramach naszych ćwiczeń, zajmiemy się adresami pocztowymi. Przypomnijmy sobie zadanie polegające na uzupełnianiu wymiaru klienci w oparciu o stany i okręgi. Już wtedy pojawiły się sygnały, że coś z tymi danymi (a dokładnie z kodami pocztowymi i nazwami miast) jest nie tak. Do uzupełnienia informacji na temat stanów i okręgów wykorzystaliśmy zewnętrzne dane referencyjne pochodzące z Do weryfikacji danych adresowych i ewentualnej ich naprawy możemy skorzystać z tych samych danych. 1. Aby uzmysłowić sobie z jakimi problemami mamy do czynienia zbudujemy prostą transformację porównującą dane adresowe naszego pierwszego źródła danych shop1 z danymi referencyjnymi. a. Utwórzmy nową transformację, a następnie wstawmy do niej pierwszy krok Table input, którym będzie zapytanie wydobywające dane z tabeli adresy. Nazwę kroku ustawmy na Adresy - shop1. Dane posortujmy w celu ich późniejszego połączenia z danymi referencyjnymi. b. Dodajmy do naszej transformacji kolejny krok Table input, który będzie pobierał dane z naszej tabeli referencyjnej. Pamiętajmy o analogicznym sortowaniu. Nazwą tego kroku niech będzie geonames.org
2 c. W kolejnym kroku połączmy oba źródła danych za pomocą komponentu Merge Join i za pomocą własności tego komponentu zdefiniujmy następujący sposób tego połączenia. d. W celu dokonania krótkiej analizy problemu dołóżmy do naszej transformacji jeszcze trzy komponenty: 1 x Filter rows oraz 2 x Dummy (do nothing). Połączmy je analogicznie do rysunku poniżej: e. Warunek zdefiniowany w ramach komponentu Filter rows powinien mieć następującą postać: f. Jesteśmy przygotowani do analizy źródła shop1. Na komponencie Dummy (do nothing), do którego trafiają wiersze spełniające warunek selekcji wywołaj menu kontekstowe, a następnie wybierz opcję Preview. Wynik powinien być analogiczny do poniższego. g. Okazuje się, że problem nie jest duży (kilkanaście wierszy błędnych na ponad 550), nie chcemy go jednak bagatelizować. Dlatego postaramy się teraz oczyścić nasze dane przy pomocy danych referencyjnych.
3 2. To, że w danych referencyjnych nie jesteśmy w stanie znaleźć wiersza posiadającego ten sam kod pocztowy oraz tę samą nazwę miejscowości, może wynikać z kilku przyczyn. Mógł się pojawić błąd w kodzie pocztowym, mogła także zostać błędnie wprowadzona nazwa miejscowości. W najgorszym przypadku błędy mogły się pojawić w obu składowych. Najczęściej błędy tego typu mogą występować ze względu na pomyłkę podczas wprowadzania danych np. w wyniku tradycyjnej literówki. W takich przypadkach różnica pomiędzy wartością wprowadzoną a wartością poprawną nie powinna być duża. W naszej transformacji spróbujemy wychwycić takie drobne błędy i w takich przypadkach będziemy chcieli automatycznie poprawić zawartość źródła. a. Zanim rozpoczniemy dalsze działania zmienimy nazwę komponentu Dummy (do nothing), który przechwytuje błędne adresy na Adresy z problemami. b. Zaczniemy od znalezienia drobnych błędów w nazwach miast. W tym celu umieśćmy na naszej transformacji komponent Database lookup z katalogu Lookup. Połączmy go z krokiem Adresy z problemami. c. Wejdźmy do własności tego komponentu i określmy, że będzie on wyszukiwał w tabeli geonames_org wszystkie wiersze posiadające taki sam kod pocztowy jak ten, którego nie udało się nam znaleźć (porównując kod i nazwę miasta) d. We własnościach tego samego komponentu określmy, że do strumienia będziemy dokładali pole miasto_lookup, w którym umieszczone zostaną znalezione w ten sposób nazwy miast (może być ich wiele w przypadku, gdy kody nie będą unikalne). Określmy także wartość domyślną ***brak***. Taka wartość ma dwie zalety, po pierwsze łatwo ją zauważymy, po drugie będzie znacząco się różniła od innych.
4 e. Na zakończenie edycji własności zmieńmy jego nazwę na Szukaj miast. f. Aby wybrać ze znalezionych nazw miast to, które różni się w najmniejszym stopniu od oryginalnej (być może błędnej) nazwy miasta wykorzystamy świetnie nadający się do tego celu komponent Fuzzy match również z katalogu Lookup. Wejściem do tego komponent będzie wyjście z Szukaj miast oraz wyjście z na Adresy z problemami. Dodając wyjście z Szukaj miast określmy, że do elementu Fuzzy match będzie kierowany główny wynik. Natomiast dodając wyjście z Adresy z problemami zdefiniujmy że dane z Adresy z problemami mają być kopiowane i przesyłane do obu wynikowych komponentów. g. Przejdźmy do edycji własności komponentu Fuzzy match. Na zakładce General określmy krok, który jest krokiem lookup, oraz pole, które jest wynikiem jego działania. Podajemy także pole z głównego strumienia, do którego znalezione w kroku lookup wartości będą porównywane. h. Następnie zastanówmy się nad algorytmem znajdowania najlepszego dopasowania. Nazwy miast mogą mieć różne długości. Dlatego wykorzystanie odległości Livenshteina nie byłoby najlepsze. Dwie zmienione litery w 10 literowym słowie, nie znaczą to samo co w słowie składającym się z 3 liter, dlatego w tym kroku wykorzystamy Jaro Winkler. Daje on wyniki od 0 do 1, gdzie 1 oznacza największe podobieństwo a 0 najmniejsze. My będziemy zgadzali się na przekazywanie do dalszego działania przypadków, w których podobieństwo nie będzie mniejsze od 0.5.
5 i. Na zakładce Fields zmieńmy nazwy pól tworzonych przez ten krok na najblizsze_miasto oraz wynik_porownania_miasta. Na zakończenie edycji własności zmieńmy nazwę kroku na Znajdz miasto. Wywołajmy za pomocą menu kontekstowego podgląd wyniku transformacji. j. Przeanalizujmy uzyskane wyniki. W kilku przypadkach literówki są ewidentne i algorytm Jaro Winkler jednoznacznie to wykazał (wynik porównania równy 1). W przypadku wyniku porównania równego 0.9 również możemy zaryzykować automatyczną naprawę takich wartości. W pozostałych przypadkach będziemy starali się nasze problematyczne adresy przetwarzać w inny sposób. k. Aby odpowiednio pokierować dalszym przetwarzaniem naszego strumienia wierszy dodajmy jako kolejny krok komponent Filter rows. Przekierujmy do niego główny wynik ze Znajdz miasto. l. Przejdźmy do własności tego kroku i określmy warunek będący wynikiem wykonanej chwilę temu analizy. m. Jako nazwę kroku wprowadźmy blad w miasto, a następnie zamknijmy własności tego komponentu.
6 n. Wiersze, które będą spełniały przed chwilą zdefiniowany warunek będą wykorzystane do automatycznej naprawy naszego źródła danych poprzez modyfikację nazwy miasta. Dlatego dodajmy do naszej transformacji nowy komponent Update a na jego wejście niech będzie wyjście z filtra krotek obejmujące te krotki, które spełniają warunek filtra. o. Definiując własności nowego kroku naszej transformacji wskażmy tabelę, która będzie aktualizowana, warunek aktualizacji oraz pola, które będą aktualizowane. p. Nazwę komponentu zmieńmy na Popraw miasto. 3. W kolejnych krokach naszej transformacji powtórzymy naszą próbę naprawy automatycznej adresów poszukując drobnych usterek w kodach pocztowych. a. Dodajmy do naszej transformacji kolejny krok Dummy (do nothing). Pozwoli on nam rozwidlić strumień (tak jak to dokonywaliśmy już wcześniej w tej transformacji. Skierujmy na niego wyjście z kroku blad w miasto w zakresie krotek, których nazwy miasta nie powinniśmy automatycznie poprawiać. b. Podobnie jak w przypadku poszukiwaniu błędów w nazwach miast, tak i teraz dodajmy dwa komponenty z katalogu Lookup: Database lookup oraz Fuzzy match. Przekierujmy do obu kroków dane z dane z dodanego przed chwilą komponentu Dummy (do nothing) przy wykorzystaniu metody kopiowania danych.
7 c. Wejdźmy do edycji właściwości komponentu Database lookup. Ponownie wprowadźmy tabelę geonames_org jako źródło danych lookup, przy czym tym razem będziemy poszukiwali wierszy, które mają identyczną nazwę miasta. Wynikiem będzie znaleziony w ten sposób kod pocztowy. d. Zmieńmy nazwę komponentu Database lookup na Szukaj kodu. Zakończmy edycję jego własności, a następnie połączmy jego główne wyjście z wejściem komponentu Fuzzy match. e. Wejdźmy do własności komponentu Fuzzy match. Zmieńmy jego nazwę na Znajdz kod. Określmy wartości własności analogicznie jak to zrobiliśmy poprzednio pamiętając, że ty razem szukamy najbardziej dopasowanego kodu. W związku z tym, że kody pocztowe mają bardzo podobną długość możemy zaryzykować i wykorzystać odległość Levenshteina do wyznaczenia miary podobieństwa pomiędzy oryginalnym kodem a znalezionym na podstawie nazwy miasta. Maksymalna odległość jaką będziemy rozważali tym razem to 4 (co dla 5 literowego kodu jest bardzo dużą odległością). f. Na zakładce Fields określmy nazwy pól wynikowych porównania jako najblizszy_kod oraz wynik_porownania_kodu. Zamknij własności tego kroku.
8 g. Czas na filtr, który odróżni krotki, których aktualizację możemy wykonać automatycznie, od tych, które ostatecznie należy zgłosić do osób odpowiedzialnych za źródło celem ich ręcznej naprawy. Na wejście filtra skierujemy główny wynik kroku Znajdz kod. h. Warunek filtra będzie kwalifikował wiersze do automatycznej naprawy jeżeli odległość Levenshteina pomiędzy znalezionym kodem a istniejącym w źródle nie jest większa niż 2. i. Zmieńmy nazwę kroku filtra na Blad w kod. Następnie dołóżmy do naszej transformacji krok Update i skierujmy do niego krotki, które spełniają warunek filtra. j. Nazwę kroku Update zmieńmy na Popraw kod, a we własnościach zdefiniujmy właściwą poprawę źródłowego kodu pocztowego. k. Ostatnim krokiem będzie zapisanie w pliku tych adresów, które muszą być poprawione ręcznie, gdyż automatyczna poprawa nie jest możliwa nie można określić właściwego sposobu poprawy. Wstawmy do naszej transformacji krok Text file output, a następnie połączmy go z wynikiem kroku Blad w kod dotyczącym tych krotek, które nie spełniają warunku.
9 l. Wejdźmy do własności tego kroku. Na zakładce File wprowadźmy nazwę pliku /home/etl/results/adresy_do_poprawy oraz jego rozszerzenie txt. Na zakładce Fields przy wykorzystaniu przycisku Get Fields wprowadźmy wszystkie pola jakie znajdują się w przetwarzanym strumieniu. Powinny one być pomocne podczas aktualizacji źródłowej bazy danych. m. Na zakładce Content zaznaczmy dwie opcje n. Zmieńmy jeszcze nazwę tego kroku na Rejestracja blednych adresow i zamknijmy edycję własności teko kroku. o. Ostatecznie nasza transformacja powinna być podobna do poniższej: p. W związku z tym, że nasza transformacja ma odmienny typ od poprzednich utworzymy nowy katalog. Otwórzmy narzędzie Repository explorer i utwórzmy katalog /wypozyczalnie/data_cleaner.
10 q. Zapiszmy naszą transformację jako OczyszczanieAdresow-shop1 w nowoutworzonym katalogu /wypozyczalnie/data_cleaner. Czas na jej uruchomienie. r. Jak widać 7 adresów udało się poprawić ze względu na znalezione w nich problemy z nazwą miasta (kod był prawidłowy, a nazwa miasta pasowała do danych referencyjnych), 3 adresy zostały poprawione ze względu na błędny kod pocztowy. Jednego adres nie udało się naprawić automatycznie i trafił on ostatecznie do pliku z błędnymi adresami. s. Korzystając z przeglądarki plików otwórzmy wygenerowany plik. t. Jego zawartość podpowie nam jakie adresy powinniśmy poprawić w źródle danych. u. Z oczywistych powodów analogiczna naprawa kodów i nazw miejscowości powinna być dokonana również dla drugiego źródła. Możemy to zrobić na dwa sposoby: Możemy zapisać naszą transformację pod nazwą OczyszczanieAdresow-shop2 w tym samym katalogu co poprzednio, a następnie zmienić własność Connection (połączenie) komponentów takich jak Adresy shop, Popraw miasto oraz Popraw kod na shop2, ponadto należy błędne adresy, których nie uda się naprawić automatycznie umieścić w oddzielnym pliku np. /home/etl/results/adresy_do_poprawy2.txt albo Możemy poprawić tę transformację tak aby czytała adresy z obu źródeł odpowiednio oznaczając ich pochodzenie, a następnie dokonywała modyfikacji zależnych od pochodzenia Zaletą pierwszego wariantu jest jego mniejsza złożoność w stosunku do wariantu drugiego. Natomiast zaletą drugiego rozwiązania jest bardzo istotna łatwość pielęgnacji zmiany dla wariantu pierwszego musiałyby być wprowadzane w dwóch miejscach, podczas gdy w wariancie drugim mamy zawsze tylko jedno zadanie. Ponieważ nie planujemy zmian przetwarzania, wykorzystajmy pierwszy wariant.
11 Zapiszmy zatem naszą transformację jako OczyszczanieAdresow-shop2 w katalogu /wypozyczalnie/data_cleaner, dokonajmy stosownych poprawek (wspomnianych wyżej) a następnie, gdy transformacja będzie już gotowa zapiszmy ją jeszcze raz i uruchommy. Wynik powinien być jak poniżej. Jego podobieństwo do poprzedniego wyniku nie powinno nas dziwić wszak, w założeniach naszych ćwiczeń, dane pomiędzy źródłami były replikowane. 4. Wykorzystanie danych referencyjnych to jedna z metod wykorzystywanych do poprawy jakości danych źródłowych, czy też oczyszczania (lub uzupełniania) danych transformowanych w ramach procesów ETL. Takich metod jest oczywiście bardzo wiele. Jedną z prostszych jest weryfikacja poprawności formatu danych. Taka weryfikacja dobrze sprawdza się w przypadku adresów , numerów telefonów, numerów kart kredytowych itp. W tym krótkim poniższym ćwiczeniu sprawdzimy poprawność adresów klientów z pierwszego źródła danych. a. Utwórzmy nową transformację. Pierwszym jej krokiem będzie zapytanie wydobywające adresy klientów, którzy je posiadają. b. Do analizy formatów, świetnie się nadają funkcje operujące na wyrażeniach regularnych. Jednak w przypadku Pentaho DI i analizy adresów istnieje specjalizowany komponent. Jako drugi krok naszej transformacji wstawimy komponent Mail Validator z katalogu Validation. Połączmy go z krokiem poprzednim c. Wejdźmy do własności komponentu Mail Validator. Wskażmy pole zawierające adres podlegający weryfikacji. d. Analizując pozostałe własności tego komponentu możemy stwierdzić, że analiza poprawności adresu wykracza poza prostą analizę formatu. My jednak nie będziemy z tego korzystali. Zamknijmy własności.
12 e. Dołóżmy jeszcze trzy komponenty pozwalające zignorować poprawne adresy oraz zarejestrować błędne ich wystąpienia. f. We własnościach filtru określmy warunek g. We własnościach komponentu Text file output. określmy nazwę pliku wynikowego jako: /home/etl/results/ _do_poprawy oraz rozszerzenie txt. Na zakładce Content ponownie zaznaczmy dwie opcje h. Na zakładce Fields wprowadźmy pola strumienia przy pomocy przycisku Get Fields. i. Zapiszmy w katalogu /wypozyczalnie/data_cleaner naszą transformację jako AnalizaAdresow , a następnie ją uruchommy. Wynik jako poniżej świadczy to tym, że wszystkie adresy spełniają reguły walidacji. j. Aby to sprawdzić otwórzmy przeglądarkę i zalogujmy się do phpmyadmin jako użytkownik shop1 z hasłem shop1, a następnie wyświetlmy naszych klientów.
13 k. A następnie dokonajmy małych modyfikacji. W jednym z adresów nazwę domeny skróćmy do jednego członu. W drugim adresie skasujmy l. Ponownie uruchommy naszą transformację. Tym razem wynik świadczy o tym, że nie wszystko jest w porządku. m. Otwórzmy plik z wykrytymi problemami. Jak widać oba adresy zostały wyłapane jako niewłaściwie zbudowane. n. Wróćmy do źródła danych i przywróćmy oryginalne wartości adresów .
14 5. Skoro nasze źródła uległy zmianie poprawiliśmy jakość naszych źródeł, dokonamy odświeżenia naszej hurtowni danych. Zanim to jednak zrobimy zintegrujemy wykonane ostatnio zadania z głównym zadaniem odpowiedzialnym za odświeżanie hurtowni. a. Na początku przypomnijmy sobie co udało się nam wykonać ostatnio. W tym celu uruchommy narzędzie Repository explorer. Na zakładce Browse wybierzmy katalog /wypozyczalnie/ext->dwh. b. A zatem, utworzyliśmy ostatnio LadowanieStanowKrajow oraz LadowanieFilmow. Oba zadania powinny być uruchamiane po załadowaniu nowej porcji danych pochodzących ze źródeł shop1 i shop2. Otwórzmy zatem zadanie OdswiezDWH z katalogu /wypozyczalnie/shop->dwh. c. W związku z tym, że po wszystkich znajdujących się tam transformacjach chcielibyśmy wywołać wspomniane wcześniej dwa zadania dołóżmy z katalogu General dwa komponenty Job, a następnie przesuńmy komponent Success jak na rysunku poniżej.
15 d. Wejdźmy do własności pierwszego z komponentów Job i wskażmy, że będzie się on odnosił do zadania LadowanieStanowOkregow z katalogu /wypozyczalnie/ext->dwh. e. Wejdźmy do własności drugiego z komponentów Job i wskażmy, że będzie się on odnosił do zadania LadowanieFilmow z katalogu /wypozyczalnie/ext->dwh. f. Zamknijmy własności a następnie przeciągnijmy LadowanieStanowOkregow na połączenie pomiędzy ZaladujFakty a Success. g. Gdy pojawi się pytanie, czy wybrane połączenie ma być rozdzielone przesuniętym na nie komponentem odpowiedzmy Yes.
16 h. W sposób analogiczny umieśćmy LadowanieFilmow pomiędzy LadowanieStanowOkregow a Success. Ostatecznie ustawmy względem siebie nasze komponenty i zapiszmy nasz OdswiezODH. i. Możemy teraz uruchomić procedurę odświeżenia całej hurtowni danych. II. Slowly Changing Dimension. Powróćmy teraz pamięcią do procedur ETL, które zasilają wymiary naszej hurtowni danych. W chwili obecnej zasilanie wymiarów, a w szczególności wymiaru klienci (bo nim się w tym ćwiczeniu zajmiemy) w bardzo prosty sposób rozwiązuje problem zmieniających się wartości atrybutów wymiarów. Każda zmiana w danych źródłowych propagowana jest do hurtowni danych nadpisując poprzednie wartości, a tym samym zmieniając historię. Przykładowo, to co kiedyś było uwzględniane w kontekście miasta Nowy York (bo tam było miejsce zamieszkania jednego z naszych klientów) teraz może być uwzględniane w kontekście miasta Los Angeles (bo tam ostatnio przeprowadził się nasz klient). Wg Ralpha Kimballa ten sposób postępowania ze zmianami w wymiarach to SCD typu 1. Takie postępowanie nie zawsze jest do zaakceptowania zmiany danych historycznych w niektórych przypadkach mogą prowadzić do błędnych wniosków. Dlatego teraz zajmiemy się tym problemem w naszej transformacji dotyczącej wymiaru klienci zmieniając SCD typu 1 na SCD typu 2, który zachowuje historię wartości wymiaru. 6. Na początku zaobserwujmy rzeczywiste zmiany w danych dotyczących wymiarów. a. Uruchommy kolejną procedurę symulującą upływ czasu w naszych źródłach. Otwórzmy w tym celu terminal b. Przejdźmy do katalogu labs za pomocą polecenia cd labs.
17 c. Następnie uruchommy następujące polecenie./zasilanie3.sh. Dane z kolejnego okresu trafią do naszych źródeł. d. Procedura upływu czasu może trochę potrwać, dlatego my nie czekając na jej zaskoczenie zaimportujemy do Pentaho DI transformację, która pokaże nam fakt zmienionych danych. W tym celu w Pentaho DI za pomocą menu File->Import from an XML file zaimportujmy plik /home/etl/labs/zmienioneadresy.ktr. e. Zaimportowana transformacja pobiera dane dotyczące klientów z hurtowni danych oraz ze źródła shop1 łączy je na podstawie identyfikatora klienta, a następnie odfiltrowuje tych klientów, u których adres (ulica) uległ zmianie. f. Zanim przejdziemy dalej upewnijmy się, że upływ czasu się zakończył. g. Aby zobaczyć zmienione dane zaznaczmy komponent Adres zmieniony, a następnie wywołajmy prawym klawiszem jego menu kontekstowe, wybierzmy pozycję Preview. Przycisk Quick Lauch pozwoli nam uruchomić potrzebne działania. Jak widać, zmian nie ma dużo, jednak mimo wszystko nie chcemy ich zignorować. h. Zamknijmy tę pomocniczą transformację nie zapisując jej.
18 7. Przejdźmy do zmiany naszej transformacji związanej z wymiarem klienci. a. Otwórzmy transformację ZaladujKlientow z katalogu /wypozyczalnie/shop->dwh w naszym repozytorium. Przypomnijmy sobie jaki komponent dokonuje ostatecznej aktualizacji tabeli reprezentującej wymiar klienci. Jest nim Insert/Update, który dodaje nowych klientów i ewentualnie aktualizuje już istniejących o ile pojawią się jakieś zmiany. b. Zanim zaczniemy modyfikację naszej transformacji przypomnijmy sobie najważniejsze informacje dotyczące SCD typu 2. Pozwala on na przechowywanie historii poprzednich wartości instancji elementu wymiaru w kolejnych wierszach. W efekcie tego tzw. klucz biznesowy odpowiadający za identyfikację instancji elementu wymiaru przestaje być unikalny (instancja elementu posiada wiele wierszy odnoszących się do różnych wersji) i konieczne jest wprowadzenie nowego klucza sztucznego (surrogate key). Ponadto tabela wymiaru uzupełniana jest zazwyczaj o dodatkową kolumnę, która przechowuje dla każdego elementu wymiaru numer jego wersji oraz dwie kolumny przechowujące datę rozpoczęcia i zakończenia obowiązywania wersji. c. Ta zmiana sposobu obsługi wymiaru będzie wymagała stosownych modyfikacji w schemacie hurtowni danych. Jest to o tyle trudniejsze, że w naszej hurtowni znajdują się już dane. Wykonamy stosowne zmiany wykorzystując narzędzie SQL Plus. Uruchommy je wykorzystując menu startowe. d. Połączmy się jako właściciel schematu hurtowni danych: connect dwh@xe/dwh
19 e. Na początku utwórzmy w tabeli KLIENCI nową kolumnę, która będzie ostatecznie pełniła rolę sztucznego klucza głównego (surrogate key) alter table KLIENCI add KL_KLIENT_SID NUMBER(10); f. Klucz ten będziemy aktualizowali w oparciu o naturalną w przypadku bazy danych Oracle sekwencję. Dlatego w kolejnym poleceniu ją utworzymy create sequence SEQ_KLIENT_SID; g. Dokonamy aktualizacji wartości nowej kolumny w oparciu o stworzoną sekwencję update KLIENCI set KL_KLIENT_SID = SEQ_KLIENT_SID.nextval; h. W kolejnym kroku uzupełnimy naszą tabelę o kolumnę przechowującą numery kolejnych wersji naszych klientów alter table KLIENCI add KL_KLIENT_VER NUMBER(5) DEFAULT 1; i. Pozostały nam jeszcze do utworzenia dwie kolumny wyznaczające okres obowiązywania wersji elementu wymiaru. alter table KLIENCI add KL_START_VER TIMESTAMP(6); alter table KLIENCI add KL_STOP_VER TIMESTAMP(6); j. Ustawmy wartość rozpoczynającą obowiązywanie obecnej wersji danych. update KLIENCI set KL_START_VER = timestamp ' :00:00';
20 k. Ustawmy wartość kończącą obowiązywanie obecnej wersji danych. update KLIENCI set KL_STOP_VER = timestamp ' :59:59'; l. Czas na zmianę klucza głównego. Na początku skasujemy istniejący klucz główny włącznie z kluczem obcym w tabeli faktów. alter table KLIENCI drop primary key cascade; m. Utwórzmy klucz główny na nowododanym sztucznym identyfikatorze. alter table KLIENCI add primary key(kl_klient_sid); n. Dokonajmy stosownej aktualizacji wartości atrybutu WY_KLIENT_ID w tabeli faktów WYPOZYCZENIA. update WYPOZYCZENIA set WY_KLIENT_ID = (select KL_KLIENT_SID from KLIENCI where KL_KLIENT_ID = WY_KLIENT_ID); o. A następnie zmieńmy wartość atrybutu WY_KLIENT_ID na WY_KLIENT_SID i utwórzmy nowy klucz obcy odpowiadający rzeczywistej zależności pomiędzy tabelą faktów i wymiarów. alter table WYPOZYCZENIA rename column WY_KLIENT_ID to WY_KLIENT_SID; alter table WYPOZYCZENIA add foreign key(wy_klient_sid) references KLIENCI(KL_KLIENT_SID);
21 p. Na zakończenie działań w SQL*Plus dołóżmy jeszcze techniczny wiersz do tabeli wymiaru jest on wymagany przez komponent, z którego za chwilę skorzystamy (w przypadku gdyby go nie było byłby on wstawiany automatycznie przez komponent, a to prowadziłoby do wystąpienia błędu podczas transformacji ze względu na obowiązkowość pól wymiaru klienci. insert into KLIENCI(KL_KLIENT_ID, KL_KOD_POCZTOWY, KL_MIASTO, KL_IMIE, KL_NAZWISKO, KL_ , KL_ULICA, KL_OSTATNIA_MODYFIKACJA, KL_KLIENT_SID, KL_KLIENT_VER, KL_START_VER, KL_STOP_VER ) values (0,'****','****', '****','****','****', '****', TIMESTAMP ' :00:00', 0, 1, TIMESTAMP ' :00:00', TIMESTAMP ' :00:00'); q. Nie zapomnijmy zatwierdzić naszej ostatniej zmiany. commit; r. Po powyższych zmianach przygotowujących schemat hurtowni na SCD typu 2 możemy przystąpić do aktualizacji naszych transformacji. Wróćmy do transformacji ZaladujKlientow. Usuńmy ostatni z komponentów transformacji Aktualizuj klientów komponent typu Insert/Update. W jego miejsce wstawmy komponent idealnie nadający się do SCD typu 2 komponent Dimension lookup/update z katalogu Data Warehouse. s. Niestety komponent ten wymaga (w wykorzystywanej przez nas wersji) aby pola w strumieniu, które do niego trafiają miały dokładnie takie same nazwy jak te, które będą w kolumnach docelowej tabeli. Dlatego wstawmy pomiędzy komponent Wyszukaj adres a Dimension lookup/update komponent Select values z katalogu Transform.
22 t. Otwórzmy własności komponentu Select values. Na początku zmieńmy jego nazwę na Dostosowanie nazw pol. Następnie na zakładce Select & Alter za pomocą przycisku Get fields to select wprowadź do sekcji Fields pola ze strumienia wejściowego. Usuń z niego pole ktory_sklep, a dla pozostałych pól zdefiniuj nowe nazwy jak poniżej. Zwróć uwagę na nazwę pola KL_ULICA, która różni się znacząco od nazwy oryginalnego pola. u. Zakończmy edycję własności dla Dostosowanie nazw pol i otwórzmy własności komponentu Dimension lookup/update. Na początku sprawdźmy czy pole wyboru Update the dimension jest zaznaczone dzięki temu komponent ten będzie spełniał swoje zadanie będzie aktualizował wymiar. Następnie wybierzmy połączenie i tabelę, która będzie podlegała aktualizacji. v. Na zakładce Keys wskażmy klucz biznesowy pozwalający na identyfikację tych samych instancji elementu wymiaru. w. Następnie wskażmy atrybut tabeli pełniący rolę sztucznego klucza głównego (Technical key field). Jeśli nie jest on dostępny na liście wyboru, zamknij własności tego komponentu, następnie z menu Tools narzędzia wybierz opcję Database->Clear cache, po czym powróć do własności dodanego komponentu.
23 x. Jako źródło dla sztucznego klucza głównego wskażmy utworzoną specjalnie do tego celu sekwencję SEQ_KLIENT_SID. y. Ustawmy także własności dotyczące kolumny zawierającej numery wersji, pole strumienia informujące o dacie modyfikacji, a także kolumny przechowujące informacje o okresie obowiązywania wersji danych. z. Przejdźmy na zakładkę Fields i korzystając z przycisku Get Fields, który znajduje się na dole okna własności, wstawmy pary odpowiadających sobie kolumn i pól strumienia. aa. Zamknijmy edycję własności komponentu. I zapiszmy naszą transformację. bb. W celu jej przetestowania dokonajmy jej uruchomienia.
24 8. Z oczywistych względów rewolucja w sposobie utrzymania wymiaru klienci powinna mieć swoje odzwierciedlenie podczas ładowania tabeli faktów. a. Otwórzmy transformację ZaladujFakty z katalogu /wypozyczalnie/shop->dwh w naszym repozytorium. b. W chwili obecnej transformacja ta zupełnie nie zajmuje się identyfikatorem klienta. Wynika to z faktu, iż oryginalny klucz biznesowy pochodzący ze źródeł trafiał do hurtowni danych w niezmienionej postaci. Teraz to się zmieniło. Dlatego dokonamy małej modyfikacji. c. Komponent, który wykorzystaliśmy przy transformacji ZaladujKlientow - Dimension lookup/update posiada w rzeczywistości dwie funkcjonalność. Pierwszą z nich update już wykorzystaliśmy, teraz wykorzystamy drugą lookup. Dołóżmy zatem do transformacji ZaladujFakty komponent Dimension lookup/update z katalogu Data Warehouse. Umieśćmy go w ramach naszej transformacji tuż przed ostatnim jej krokiem. d. Wejdźmy do jego własności. Na samym początku zdefiniujmy połączenie oraz nazwę tabeli, z której nasz nowy identyfikator klienta będziemy pobierali. e. Następnie ustawmy właściwą wartość dla pola Version field. f. Odznaczmy Update the dimension ze względu na sposób użycia naszego komponentu w ramach tej transformacji.
25 g. Na zakładce Keys określmy warunek identyfikujący instancję elementu wymiaru klienci h. Podobnie jak to było poprzednio, wskażmy atrybuty dotyczące sztucznego klucza głównego tego wymiaru (w tym, w szczególności, nazwę pola w strumieniu, który zostanie przez ten komponent utworzone klient_sid), pochodzenia jego wartości, a także atrybutów związanych z zakresem obowiązywania wersji instancji elementu wymiaru. i. Przejdźmy na zakładkę Fields. Tym razem zakładka ta pozwoliłaby nam zdefiniować jakie to dodatkowe atrybuty ze źródłowej tabeli wymiaru odpowiadające przetwarzanemu składnikowi faktów chcemy wydobyć. W naszym przypadku wystarczającym dodatkowym składnikiem strumienia będzie, wcześniej wspomniane, pole klient_sid, dlatego niczego dodatkowego na tej zakładce nie dodajemy. j. Na zakończenie edycji właściwości tego komponentu zmieńmy jego nazwę na Okresl id klienta.
26 k. Pozostaje nam uwzględnić uzyskany w ten sposób sztuczny identyfikator klienta podczas ostatecznego ładowania danych do tabeli faktów. Otwórzmy własności komponentu Zapisz fakty. Przejdźmy na zakładkę Database fields. I zamieńmy wpis dotyczący kolumny WY_KLIENT_ID na właściwy dotyczący nowej kolumny WY_KLIENT_SID. => l. Zamknijmy edycję własności komponentu Zapisz fakty i zapiszmy zmienioną transformację. m. Pozostaje nam już tylko ją uruchomić.
Technologie Zasilania i Odświeżania Hurtowni Danych na przykładzie Pentaho DI część 5
Technologie Zasilania i Odświeżania Hurtowni Danych na przykładzie Pentaho DI część 5 I. Wykorzystanie zadań jako zestawu transformacji. W ramach poprzednich zestawów ćwiczeń stworzyliśmy zestaw transformacji
Bardziej szczegółowoTechnologie Zasilania i Odświeżania Hurtowni Danych na przykładzie Pentaho DI część 6
Technologie Zasilania i Odświeżania Hurtowni Danych na przykładzie Pentaho DI część 6 I. Data Marts. W wielu przypadkach centralna hurtownia danych tworzona na potrzeby całego przedsiębiorstwa staje się
Bardziej szczegółowoDokumentacja programu. Zoz. Uzupełnianie kodów terytorialnych w danych osobowych związanych z deklaracjami POZ. Wersja
Dokumentacja programu Zoz Uzupełnianie kodów terytorialnych w danych osobowych związanych z deklaracjami POZ Wersja 1.40.0.0 Zielona Góra 2012-02-29 Wstęp Nowelizacja Rozporządzenia Ministra Zdrowia z
Bardziej szczegółowoTechnologie Zasilania i Odświeżania Hurtowni Danych na przykładzie Pentaho DI część 6
Technologie Zasilania i Odświeżania Hurtowni Danych na przykładzie Pentaho DI część 6 I. Dokument XML jako źródło danych. W ramach poprzednich ćwiczeń wykorzystaliśmy plik CSV w celu uzupełnienia wymiaru
Bardziej szczegółowo7. Formularze master-detail
7. Formularze master-detail 1. Utworzymy teraz jeden z bardziej złożonych formularzy dostępnych z kreatora formularz master-detail. Będzie on swoją strukturą przypominał utworzony wcześniej formularz dotyczący
Bardziej szczegółowoTechnologie Zasilania i Odświeżania Hurtowni Danych
Technologie Zasilania i Odświeżania Hurtowni Danych laboratorium część III ver 20161015 I. Dodanie drugiego źródła danych W poprzednim zestawie ćwiczeń wykonaliśmy transformację pracowników z jednego źródła
Bardziej szczegółowoTechnologie Zasilania i Odświeżania Hurtowni Danych
Technologie Zasilania i Odświeżania Hurtowni Danych laboratorium część IV ver 20161015 I. Zasilanie wymiaru z wykorzystaniem zastępczego klucza. Metoda Trigger Based Change Detection. W poprzednio zdefiniowanych
Bardziej szczegółowoCurrenda EPO Instrukcja Konfiguracji. Wersja dokumentu: 1.3
Currenda EPO Instrukcja Konfiguracji Wersja dokumentu: 1.3 Currenda EPO Instrukcja Konfiguracji - wersja dokumentu 1.3-19.08.2014 Spis treści 1 Wstęp... 4 1.1 Cel dokumentu... 4 1.2 Powiązane dokumenty...
Bardziej szczegółowo5. Integracja stron aplikacji, tworzenie zintegrowanych formularzy i raportów
5. Integracja stron aplikacji, tworzenie zintegrowanych formularzy i raportów 1. W chwili obecnej formularz Edycja prowadzących utworzony w poprzednim zestawie ćwiczeń służy tylko i wyłącznie do edycji
Bardziej szczegółowo8. Listy wartości, dodatkowe informacje dotyczące elementów i przycisków
8. Listy wartości, dodatkowe informacje dotyczące elementów i przycisków 1. Jak wspomnieliśmy wcześniej, nie można wymagać od użytkowników, znajomości wszystkich identyfikatorów prowadzących, wykonawców
Bardziej szczegółowoSystem imed24 Instrukcja Moduł Analizy i raporty
System imed24 Instrukcja Moduł Analizy i raporty Instrukcja obowiązująca do wersji 1.8.0 Spis treści 1. Moduł Analizy i Raporty... 3 1.1. Okno główne modułu Analizy i raporty... 3 1.1.1. Lista szablonów
Bardziej szczegółowoInstrukcja do programu Przypominacz 1.6
Instrukcja do programu Przypominacz 1.6 Program Przypominacz 1.6 pozwala w prosty sposób wykorzystać dane z systemu sprzedaży Subiekt GT do prowadzenia tzw. miękkiej windykacji poprzez wysyłanie kontrahentom
Bardziej szczegółowoSystemy baz danych Prowadzący: Adam Czyszczoń. Systemy baz danych. 1. Import bazy z MS Access do MS SQL Server 2012:
Systemy baz danych 16.04.2013 1. Plan: 10. Implementacja Bazy Danych - diagram fizyczny 11. Implementacja Bazy Danych - implementacja 2. Zadania: 1. Przygotować model fizyczny dla wybranego projektu bazy
Bardziej szczegółowoPraca z systemem POL-on. Zaznaczanie toków do eksportu.
Praca z systemem POL-on. Zaznaczanie toków do eksportu. Niniejszy dokument będzie przedstawiał instrukcję użytkownika części systemu SID związaną z systemem POL-on, a dokładniej przygotowaniem danych do
Bardziej szczegółowoInstrukcja do programu DoUPS 1.0
Instrukcja do programu DoUPS 1.0 Program DoUPS 1.0 pozwala w prosty sposób wykorzystać dane z systemu sprzedaży Subiekt GT do generowania listów przewozowych dla firmy kurierskiej UPS w połączeniu z bezpłatnym
Bardziej szczegółowoInstrukcja do programu Przypominacz 1.5
Instrukcja do programu Przypominacz 1.5 Program Przypominacz 1.5 pozwala w prosty sposób wykorzystać dane z systemu sprzedaży Subiekt GT do prowadzenia tzw. miękkiej windykacji poprzez wysyłanie kontrahentom
Bardziej szczegółowoJęzyk SQL, zajęcia nr 1
Język SQL, zajęcia nr 1 SQL - Structured Query Language Strukturalny język zapytań Login: student Hasło: stmeil14 Baza danych: st https://194.29.155.15/phpmyadmin/index.php Andrzej Grzebielec Najpopularniejsze
Bardziej szczegółowoZawartość. Wstęp. Moduł Rozbiórki. Wstęp Instalacja Konfiguracja Uruchomienie i praca z raportem... 6
Zawartość Wstęp... 1 Instalacja... 2 Konfiguracja... 2 Uruchomienie i praca z raportem... 6 Wstęp Rozwiązanie przygotowane z myślą o użytkownikach którzy potrzebują narzędzie do podziału, rozkładu, rozbiórki
Bardziej szczegółowoInstytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny technologiczny Politechnika Śląska
Instytut Mechaniki i Inżynierii Obliczeniowej www.imio.polsl.pl fb.com/imiopolsl @imiopolsl Wydział Mechaniczny technologiczny Politechnika Śląska Laboratorium 3 (Tworzenie bazy danych z użyciem UML, proste
Bardziej szczegółowo4. Budowa prostych formularzy, stany sesji, tworzenie przycisków
4. Budowa prostych formularzy, stany sesji, tworzenie przycisków 1. Utwórz formularz tabelaryczny umożliwiający modyfikację prowadzących listę przebojów. a. Zaloguj się do systemu APEX podając znaną Ci
Bardziej szczegółowoProgramy LeftHand - Obsługa plików JPK. Luty 2017
Programy LeftHand - Obsługa plików JPK Luty 2017 Spis treści 1. Wstęp... 2 2. Pierwsze uruchomienie funkcji JPK... 2 3. Generowanie plików JPK... 9 4. Wysyłanie plików JPK... 10 5. Pobieranie i drukowanie
Bardziej szczegółowoWykład 8. SQL praca z tabelami 5
Wykład 8 SQL praca z tabelami 5 Podzapytania to mechanizm pozwalający wykorzystywać wyniki jednego zapytania w innym zapytaniu. Nazywane często zapytaniami zagnieżdżonymi. Są stosowane z zapytaniami typu
Bardziej szczegółowoWOJEWÓDZTWO PODKARPACKIE
WOJEWÓDZTWO PODKARPACKIE UNIA EUROPEJSKA EUROPEJSKI FUNDUSZ ROZWOJU REGIONALNEGO Instrukcja instalacji generatora wniosku o dofinansowanie projektu ze środków EFRR w ramach I osi priorytetowej Regionalnego
Bardziej szczegółowoInstytut Mechaniki i Inżynierii Obliczeniowej fb.com/groups/bazydanychmt/
Instytut Mechaniki i Inżynierii Obliczeniowej www.imio.polsl.pl fb.com/imiopolsl @imiopolsl fb.com/groups/bazydanychmt/ Wydział Mechaniczny technologiczny Politechnika Śląska Laboratorium 3 (Tworzenie
Bardziej szczegółowoPODRĘCZNIK OBSŁUGI BUSINESSNET
PODRĘCZNIK OBSŁUGI BUSINESSNET. LOGOWANIE. AUTORYZACJA ZLECENIA. NOWY KLUCZ. PRZELEWY 5. ZLECENIA STAŁE 6. MODUŁ PRAWNY 7. DOSTĘP DO DEALINGNET 8. CERTYFIKAT KWALIFIKOWANY JAK ZALOGOWAĆ SIĘ DO BUSINESSNET
Bardziej szczegółowoUruchamianie bazy PostgreSQL
Uruchamianie bazy PostgreSQL PostgreSQL i PostGIS Ten przewodnik może zostać pobrany jako PostgreSQL_pl.odt lub PostgreSQL_pl.pdf Przejrzano 10.09.2016 W tym rozdziale zobaczymy, jak uruchomić PostgreSQL
Bardziej szczegółowoOpis modułu pl.id w programie Komornik SQL-VAT
Opis modułu pl.id w programie Komornik SQL-VAT Nazwa: KSQLVAT.INS.PL.ID.002 Data: 02.01.2017 Wersja: 1.2.0 Cel: Opis działania funkcjonalności pl.id 2016 Currenda Sp. z o.o. Spis treści 1. Opis... 3 2.
Bardziej szczegółowoInstrukcja instalacji nos niko w USB w bankowos ci Alior Banku
Instrukcja instalacji nos niko w USB w bankowos ci Alior Banku Nośnik USB służy do przechowywania klucza elektronicznego, używanego do logowania i autoryzacji transakcji. Opcja dostępna jest wyłącznie
Bardziej szczegółowoInstytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska
Instytut Mechaniki i Inżynierii Obliczeniowej www.imio.polsl.pl fb.com/imiopolsl @imiopolsl Wydział Mechaniczny Technologiczny Politechnika Śląska Laboratorium 1 Wprowadzenie, podstawowe informacje o obsłudze
Bardziej szczegółowoKOMPUTEROWY SYSTEM WSPOMAGANIA OBSŁUGI JEDNOSTEK SŁUŻBY ZDROWIA KS-SOMED
KOMPUTEROWY SYSTEM WSPOMAGANIA OBSŁUGI JEDNOSTEK SŁUŻBY ZDROWIA KS-SOMED Podręcznik użytkownika Katowice 2010 Producent programu: KAMSOFT S.A. ul. 1 Maja 133 40-235 Katowice Telefon: (0-32) 209-07-05 Fax:
Bardziej szczegółowoTechnologie Zasilania i Odświeżania Hurtowni Danych
Technologie Zasilania i Odświeżania Hurtowni Danych laboratorium część II v20170324 Paweł Boiński, Krzysztof Jankiewicz I. Przygotowanie repozytorium i zdefiniowanie połączeń do źródłowych baz danych W
Bardziej szczegółowoMicrosoft.NET: ASP.NET MVC + Entity Framework (Code First)
Microsoft.NET: ASP.NET MVC + Entity Framework (Code First) Do realizacji projektu potrzebne jest zintegrowane środowisko programistyczne Microsoft Visual Studio 2012. W ramach projektu budowana jest prosta
Bardziej szczegółowoPraca z systemem POL-on. Zaznaczanie toków do eksportu.
Praca z systemem POL-on. Zaznaczanie toków do eksportu. Niniejszy dokument będzie przedstawiał instrukcję użytkownika części systemu SID związaną z systemem POL-on, a dokładniej przygotowaniem danych do
Bardziej szczegółowoTechnologie Zasilania i Odświeżania Hurtowni Danych
Technologie Zasilania i Odświeżania Hurtowni Danych laboratorium część II ver 20161015 Przygotowanie repozytorium i zdefiniowanie połączeń do źródłowych baz danych W poprzednim zestawie ćwiczeń utworzyliśmy
Bardziej szczegółowoSystem magazynowy małego sklepu.
System magazynowy małego sklepu. dokumentacja użytkownika. Mariusz Grabowski e-mail: mariosh@interia.pl Jabber ID: mariosh@jabber.autocom.pl Spis treści 1 Wstęp. 2 2 Przed uruchomieniem. 3 3 Korzystanie
Bardziej szczegółowoLaboratorium nr 4. Temat: SQL część II. Polecenia DML
Laboratorium nr 4 Temat: SQL część II Polecenia DML DML DML (Data Manipulation Language) słuŝy do wykonywania operacji na danych do ich umieszczania w bazie, kasowania, przeglądania, zmiany. NajwaŜniejsze
Bardziej szczegółowoAplikacje WWW - laboratorium
Aplikacje WWW - laboratorium JavaServer Faces Celem ćwiczenia jest przygotowanie aplikacji internetowej z wykorzystaniem technologii JSF. Prezentowane ćwiczenia zostały wykonane w środowisku Oracle JDeveloper
Bardziej szczegółowoInstytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny technologiczny Politechnika Śląska
Instytut Mechaniki i Inżynierii Obliczeniowej www.imio.polsl.pl fb.com/imiopolsl @imiopolsl Wydział Mechaniczny technologiczny Politechnika Śląska Laboratorium 3 (Tworzenie bazy danych z użyciem UML, proste
Bardziej szczegółowoModuł Handlowo-Magazynowy Przeprowadzanie inwentaryzacji z użyciem kolektorów danych
Moduł Handlowo-Magazynowy Przeprowadzanie inwentaryzacji z użyciem kolektorów danych Wersja 3.77.320 29.10.2014 r. Poniższa instrukcja ma zastosowanie, w przypadku gdy w menu System Konfiguracja Ustawienia
Bardziej szczegółowoTworzenie pliku źródłowego w aplikacji POLTAX2B.
Tworzenie pliku źródłowego w aplikacji POLTAX2B. Po utworzeniu spis przekazów pocztowych klikamy na ikonę na dole okna, przypominającą teczkę. Następnie w oknie Export wybieramy format dokumentu o nazwie
Bardziej szczegółowoInstrukcja instalacji nośników USB w systemie internetowym Alior Banku
Instrukcja instalacji nośników USB w systemie internetowym Alior Banku Nośnik USB służy do przechowywania klucza elektronicznego, używanego do logowania i autoryzacji transakcji. Opcja dostępna jest wyłącznie
Bardziej szczegółowoJakie nowości i udogodnienia niesie za sobą przejście do Sidoma 8, część z tych różnic znajdziecie Państwo w tabeli poniżej.
Instrukcja generowania klucza dostępowego do SidomaOnLine 8 Szanowni Państwo! Przekazujemy nową wersję systemu SidomaOnLine 8. W celu zalogowania się do systemu niezbędny jest nowy klucz dostępu, a niniejsza
Bardziej szczegółowo6. Formularze tabelaryczne, obiekty nawigacji - rozgałęzienia
6. Formularze tabelaryczne, obiekty nawigacji - rozgałęzienia 1. Kolejne zadanie będzie polegało na utworzeniu formularza tabelarycznego prezentującego utwory określonego wykonawcy. Formularz utworzymy
Bardziej szczegółowoLABORATORIUM 8,9: BAZA DANYCH MS-ACCESS
UNIWERSYTET ZIELONOGÓRSKI INSTYTUT INFORMATYKI I ELEKTROTECHNIKI ZAKŁAD INŻYNIERII KOMPUTEROWEJ Przygotowali: mgr inż. Arkadiusz Bukowiec mgr inż. Remigiusz Wiśniewski LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS
Bardziej szczegółowoApSIC Xbench: Szybki start wydanie 1 2008-2015 Mariusz Stępień http://mariuszstepien.net/ http://www.facebook.com/mariuszstepien.
ApSIC Xbench jest darmowym i niezwykle przydatnym programem w pracy tłumacza pisemnego korzystającego z narzędzi CAT. Otóż pozwala on przeszukiwać posiadane pamięci tłumaczeniowe (TM) można szukać pojedynczych
Bardziej szczegółowoCo nowego w systemie Kancelaris 3.31 STD/3.41 PLUS
Ten dokument zawiera informacje o zmianach w wersjach: 3.31 STD w stosunku do wersji 3.30 STD 3.41 PLUS w stosunku do wersji 3.40 PLUS 1. Kancelaria 1.1. Opcje kancelarii Co nowego w systemie Kancelaris
Bardziej szczegółowoPodstawy technologii WWW
Podstawy technologii WWW Ćwiczenie 11 PHP, MySQL: więcej, więcej!, więcej!!. tabel i funkcjonalności. Na dzisiejszych zajęciach zdefiniujemy w naszej bazie kilka tabel powiązanych kluczem obcym i zobaczymy,
Bardziej szczegółowo2. Podstawy narzędzia Application Builder, budowa strony, kreatory aplikacji
2. Podstawy narzędzia Application Builder, budowa strony, kreatory aplikacji 1. Utwórz aplikację ze skoroszytu emp_prac.csv. W tym celu wykonaj poniższe czynności: a. Zaloguj się do systemu APEX jako użytkownik
Bardziej szczegółowoProces ETL MS SQL Server Integration Services (SSIS)
Proces ETL MS SQL Server Integration Services (SSIS) 3 kwietnia 2014 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
Bardziej szczegółowoInstrukcja do programu DoGLS 1.0
Instrukcja do programu DoGLS 1.0 Program DoGLS 1.0 pozwala w prosty sposób wykorzystać dane z systemu sprzedaży Subiekt GT do generowania listów przewozowych dla firmy kurierskiej GLS w połączeniu z bezpłatnym
Bardziej szczegółowoPWI Instrukcja użytkownika
PWI Instrukcja użytkownika Spis treści 1. Wprowadzenie... 1 2. Przebieg przykładowego procesu... 1 3. Obsługa systemu... 5 a. Panel logowania... 5 b. Filtrowanie danych... 5 c. Pola obligatoryjne... 6
Bardziej szczegółowoI. Interfejs użytkownika.
Ćwiczenia z użytkowania systemu MFG/PRO 1 I. Interfejs użytkownika. MFG/PRO w wersji eb2 umożliwia wybór użytkownikowi jednego z trzech dostępnych interfejsów graficznych: a) tekstowego (wybór z menu:
Bardziej szczegółowoInstytut Mechaniki i Inżynierii Obliczeniowej fb.com/groups/bazydanychmt/
Instytut Mechaniki i Inżynierii Obliczeniowej www.imio.polsl.pl fb.com/imiopolsl @imiopolsl fb.com/groups/bazydanychmt/ Wydział Mechaniczny technologiczny Politechnika Śląska Laboratorium 4 (Asocjacje,
Bardziej szczegółowoArkusz Optivum. Jak eksportować do SIO dane z Arkusza Optivum?
Arkusz Optivum Jak eksportować do SIO dane z Arkusza Optivum? W celu eksportowania danych z Arkusza Optivum do SIO należy wykonać następujące czynności: 1. W programie Arkusz Optivum zaktualizować arkusz
Bardziej szczegółowoAutor: Joanna Karwowska
Autor: Joanna Karwowska Klucz podstawowy PRIMARY KEY Klucz kandydujący UNIQUE Klucz alternatywny - klucze kandydujące, które nie zostały wybrane na klucz podstawowy Klucz obcy - REFERENCES Tworząc tabelę,
Bardziej szczegółowoPodstawy Pentaho Data Integration
Podstawy Pentaho Data Integration 1. Instalacja Pentaho Data Integration Program Pentaho Data Integration można pobrać ze strony - http://www.pentaho.com/download, wybierając wersję na prawo czyli data
Bardziej szczegółowo2. Podstawy narzędzia Application Builder, budowa strony, kreatory aplikacji
2. Podstawy narzędzia Application Builder, budowa strony, kreatory aplikacji 1. Utwórz aplikację ze skoroszytu emp_prac.csv. W tym celu wykonaj poniższe czynności: a. Zaloguj się do systemu APEX jako użytkownik
Bardziej szczegółowoKalipso wywiady środowiskowe
Kalipso wywiady środowiskowe Instrukcja obsługi INFO-R Spółka Jawna - 2017 43-430 Pogórze, ul. Baziowa 29, tel. (33) 479 93 29, (33) 479 93 89 fax: (33) 853 04 06 e-mail: admin@ops.strefa.pl Spis treści:
Bardziej szczegółowoFinanse. Jak wykonać import listy płac z programu Płace Optivum do aplikacji Finanse?
Finanse Jak wykonać import listy płac z programu Płace Optivum do aplikacji Finanse? Operacja importu list płac z programu Płace Optivum do aplikacji Finanse przebiega w następujących krokach: 1. wybór
Bardziej szczegółowoInżynieria Programowania Laboratorium 3 Projektowanie i implementacja bazy danych. Paweł Paduch paduch@tu.kielce.pl
Inżynieria Programowania Laboratorium 3 Projektowanie i implementacja bazy danych Paweł Paduch paduch@tu.kielce.pl 06-04-2013 Rozdział 1 Wstęp Na dzisiejszych zajęciach zajmiemy się projektem bazy danych.
Bardziej szczegółowoOpis modułu pl.id w programie Komornik SQL-VAT
Opis modułu pl.id w programie Komornik SQL-VAT 2016 Currenda Sp. z o.o. Spis treści 1. Opis... 3 2. Konfiguracja programu... 3 3. Tworzenie zapytań o dane dłużników do pl.id... 4 3.1. Eksport danych dłużników
Bardziej szczegółowoPrzewodnik użytkownika (instrukcja) AutoMagicTest
Przewodnik użytkownika (instrukcja) AutoMagicTest 0.1.21.137 1. Wprowadzenie Aplikacja AutoMagicTest to aplikacja wspierająca testerów w testowaniu i kontrolowaniu jakości stron poprzez ich analizę. Aplikacja
Bardziej szczegółowoPawel@Kasprowski.pl Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski. pawel@kasprowski.pl
Bazy danych Podstawy języka SQL Dr inż. Paweł Kasprowski pawel@kasprowski.pl Plan wykładu Relacyjne bazy danych Język SQL Zapytania SQL (polecenie select) Bezpieczeństwo danych Integralność danych Współbieżność
Bardziej szczegółowoBazy danych Karta pracy 1
Bazy danych Karta pracy 1 Bazy danych Karta pracy 1 1. Utwórz katalog Bazy danych służący do przechowywania wszelkich danych dotyczących kursu. 2. W katalogu Bazy danych stwórz podkatalog BD1 służący jako
Bardziej szczegółowoInstrukcja do programu DoDPD 1.0
Instrukcja do programu DoDPD 1.0 Program DoDPD 1.0 pozwala w prosty sposób wykorzystać dane z systemu sprzedaży Subiekt GT do generowania listów przewozowych dla firmy kurierskiej DPD z wykorzystaniem
Bardziej szczegółowoUONET+ - moduł Sekretariat. Jak wykorzystać wydruki list w formacie XLS do analizy danych uczniów?
UONET+ - moduł Sekretariat Jak wykorzystać wydruki list w formacie XLS do analizy danych uczniów? W module Sekretariat wydruki dostępne w widoku Wydruki/ Wydruki list można przygotować w formacie PDF oraz
Bardziej szczegółowoemszmal 3: Automatyczne księgowanie płatności do zamówień w programie Subiekt Nexo (plugin dostępny w wersji ecommerce)
emszmal 3: Automatyczne księgowanie płatności do zamówień w programie Subiekt Nexo (plugin dostępny w wersji ecommerce) Zastosowanie Rozszerzenie to przeznaczone jest dla użytkowników programu Subiekt
Bardziej szczegółowoZałożenia do ćwiczeń: SQL Server UWM Express Edition: 213.184.8.192\SQLEXPRESS. Zapoznaj się ze sposobami użycia narzędzia T SQL z wiersza poleceń.
Cel: polecenia T-SQL Założenia do ćwiczeń: SQL Server UWM Express Edition: 213.184.8.192\SQLEXPRESS Authentication: SQL Server Authentication Username: student01,, student21 Password: student01,., student21
Bardziej szczegółowoemszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym PrestaShop (plugin dostępny w wersji ecommerce)
emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym PrestaShop (plugin dostępny w wersji ecommerce) Zastosowanie Rozszerzenie to dedykowane jest sklepom internetowych zbudowanym w oparciu
Bardziej szczegółowoPodręcznik Użytkownika LSI WRPO
Podręcznik użytkownika Lokalnego Systemu Informatycznego do obsługi Wielkopolskiego Regionalnego Programu Operacyjnego na lata 2007 2013 w zakresie wypełniania wniosków o dofinansowanie Wersja 1 Podręcznik
Bardziej szczegółowoInstrukcja użytkownika. Aplikacja Smart Paczka DPD
Instrukcja użytkownika Aplikacja Smart Paczka DPD Instrukcja użytkownika Aplikacja Smart Paczka DPD Wersja 2.0 Warszawa, Wrzesień 2015 Strona 2 z 9 Instrukcja użytkownika Aplikacja Smart Paczka DPD Spis
Bardziej szczegółowoMemeo Instant Backup Podręcznik Szybkiego Startu
Wprowadzenie Memeo Instant Backup pozwala w łatwy sposób chronić dane przed zagrożeniami cyfrowego świata. Aplikacja regularnie i automatycznie tworzy kopie zapasowe ważnych plików znajdujących się na
Bardziej szczegółowoOracle Application Express
Oracle Application Express Dla Oracle Application Express 4.2.2 Część 5. Walidacja operacji W niniejszej części ćwiczenia uzupełnimy wcześniej zbudowane strony o możliwość weryfikacji poprawności wykonywanych
Bardziej szczegółowoWord. Korespondencja seryjna
1 (Pobrane z slow7.pl) Korespondencja seryjnajestto taki sposób utworzenia jednolitego dokumentu, który będzie różnił się jedynie zawartością wybranych pól. Pola te będą automatycznie wypełniane przez
Bardziej szczegółowoInstrukcja wczytywania i przekazywania zbiorów centralnych w Centralnej Aplikacji Statystycznej (CAS) przez użytkowników podobszaru PS
Instrukcja wczytywania i przekazywania zbiorów centralnych w Centralnej Aplikacji Statystycznej (CAS) przez użytkowników podobszaru PS Uwaga! Opisane w niniejszej instrukcji funkcje Centralnej Aplikacji
Bardziej szczegółowoAby uruchomić Multibooka, należy podłączyć nośnik USB do gniazda USB w komputerze, na którym program ma być używany.
Uruchamianie Multibooka. Aby uruchomić Multibooka, należy podłączyć nośnik USB do gniazda USB w komputerze, na którym program ma być używany. 1. Uruchomienie Multibooka Po podłączeniu nośnika i wykryciu
Bardziej szczegółowoemszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym PrestaShop (plugin dostępny w wersji ecommerce)
emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym PrestaShop (plugin dostępny w wersji ecommerce) Zastosowanie Rozszerzenie to dedykowane jest sklepom internetowych zbudowanym w oparciu
Bardziej szczegółowoPodręcznik użytkownika
Podręcznik użytkownika Sklep internetowy ROCKWOOL Spis treści Uruchomienie sklepu... 2 Okno główne... 2 Katalog produktów... 3 Wyszukiwanie produktów... 3 Opis szczegółowy produktu... 4 Dodanie produktu
Bardziej szczegółowoSystem Obsługi Zleceń
System Obsługi Zleceń Podręcznik Administratora Atinea Sp. z o.o., ul. Chmielna 5/7, 00-021 Warszawa NIP 521-35-01-160, REGON 141568323, KRS 0000315398 Kapitał zakładowy: 51.000,00zł www.atinea.pl wersja
Bardziej szczegółowoCREATE DATABASE ksiegarnia_internetowa DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
Zestaw ćwiczeń1 Dzięki DDL (Data Definition Language) można operować na strukturach, w których dane są przechowywane czyli np. dodawać, zmieniać i kasować tabele lub bazy. Najważniejsze polecenia tej grupy
Bardziej szczegółowoMicrosoft.NET: LINQ to SQL, ASP.NET AJAX
Microsoft.NET: LINQ to SQL, ASP.NET AJAX Do realizacji projektu potrzebne jest zintegrowane środowisko programistyczne Microsoft Visual Studio 2008 oraz serwer bazy danych SQL Server Express 2005 (lub
Bardziej szczegółowoSUBIEKT GT IMPORT XLS Dokumenty
Instrukcja użytkownika programu SUBIEKT GT IMPORT XLS Dokumenty Wersja 1.0.0 OPIS PROGRAMU Program Subiekt GT Import XLS - Dokumenty służy do importowania różnych dokumentów handlowych i magazynowych (faktury
Bardziej szczegółowoPrzetwarzanie subskrypcji jest ustawione jako usługa systemowa i uruchamia się automatycznie w określonych odstępach czasowych.
Subskrypcje PESEL Przetwarzanie subskrypcji jest ustawione jako usługa systemowa i uruchamia się automatycznie w określonych odstępach czasowych. Główne funkcje Subskrypcji PESEL Wyróżniono następujące
Bardziej szczegółowoKonfiguracja podglądu obrazu z kamery IP / rejestratora BCS przez sieć LAN.
Konfiguracja podglądu obrazu z kamery IP / rejestratora BCS przez sieć LAN. Aby oglądać obraz z kamery na komputerze za pośrednictwem sieci komputerowej (sieci lokalnej LAN lub Internetu), mamy do dyspozycji
Bardziej szczegółowoemszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym Magento 2 (plugin dostępny w wersji ecommerce)
emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym Magento 2 (plugin dostępny w wersji ecommerce) Zastosowanie Rozszerzenie to dedykowane jest sklepom internetowym zbudowanym w oparciu
Bardziej szczegółowoPODRĘCZNIK OBSŁUGI BUSINESSNET
PODRĘCZNIK OBSŁUGI BUSINESSNET. LOGOWANIE. AUTORYZACJA ZLECENIA. NOWY KLUCZ. PRZELEWY 5. ZLECENIA STAŁE 6. MODUŁ PRAWNY 7. DOSTĘP DO DEALINGNET 8. ANKIETA MIFID 9. CERTYFIKAT KWALIFIKOWANY JAK ZALOGOWAĆ
Bardziej szczegółowo5. Kliknij teraz na ten prostokąt. Powinieneś w jego miejsce otrzymać napis. Jednocześnie została wywołana kolejna pozycja menu.
Dziś zastosujemy w naszym projekcie komponent MainMenu (menu główne). Ten element należy do grupy komponentów niewidocznych i daje możliwość skonstruowania rozwijanego menu i dostosowania go do potrzeb
Bardziej szczegółowoemszmal 3: Automatyczne księgowanie płatności do zamówień w programie WF-Mag (plugin dostępny w wersji ecommerce)
emszmal 3: Automatyczne księgowanie płatności do zamówień w programie WF-Mag (plugin dostępny w wersji ecommerce) Zastosowanie Rozszerzenie to przeznaczone jest dla użytkowników programu WAPRO WF-Mag stworzonego
Bardziej szczegółowoProgramy LeftHand - Obsługa plików JPK. Wrzesień 2016
Programy LeftHand - Obsługa plików JPK Wrzesień 2016 Spis treści 1. Wstęp...2 2. Pierwsze uruchomienie funkcji JPK...2 3. Generowanie plików JPK...9 4. Wysyłanie plików JPK...10 5. Pobieranie i drukowanie
Bardziej szczegółowoINSTRUKCJA UŻYTKOWNIKA GENERATORA WNIOSKÓW O DOFINANSOWANIE DLA WNIOSKODAWCÓW
INSTRUKCJA UŻYTKOWNIKA GENERATORA WNIOSKÓW O DOFINANSOWANIE DLA WNIOSKODAWCÓW Historia zmian dokumentu Nr wersji Data wersji Komentarz/Uwagi/Zakres zmian 1.0 2015-11-19 Utworzenie dokumentu 1 Spis treści
Bardziej szczegółowoD:\DYDAKTYKA\ZAI_BIS\_Ćwiczenia_wzorce\04\04_poprawiony.doc 2009-lis-23, 17:44
Zaawansowane aplikacje internetowe EJB 1 Rozróżniamy dwa rodzaje beanów sesyjnych: Stateless Statefull Celem tego laboratorium jest zbadanie różnic funkcjonalnych tych dwóch rodzajów beanów. Poszczególne
Bardziej szczegółowoInstrukcja wczytywania i przekazywania zbiorów centralnych w Centralnej Aplikacji Statystycznej przez użytkowników podobszaru SR
Instrukcja wczytywania i przekazywania zbiorów centralnych w Centralnej Aplikacji Statystycznej przez użytkowników podobszaru SR 1. Logowanie do aplikacji CAS Aby przejść do obsługi zbiorów centralnych
Bardziej szczegółowo1. Generowanie rachunku elektronicznego
Dokumentacja programu Generowanie e-faktur Drukowanie rachunków, faktur lub ich specyfikacji Wersja 1.94.0.1 Zielona Góra 2018-06-28 W niniejszym dokumencie opisano procedurę generowania Rachunków w postaci
Bardziej szczegółowoBazy danych. Polecenia SQL
Bazy danych Baza danych, to miejsce przechowywania danych. Dane w bazie danych są podzielone na tabele. Tabele składają się ze ściśle określonych pól i rekordów. Każde pole w rekordzie ma ściśle ustalony
Bardziej szczegółowoInstrukcja dotycząca generowania klucza dostępowego do Sidoma v8
Szanowni Państwo! Instrukcja dotycząca generowania klucza dostępowego do Sidoma v8 Przekazujemy nową wersję systemu SidomaOnLine v8. W celu zalogowania się do systemu niezbędny jest nowy klucz dostępu
Bardziej szczegółowoSystemy baz danych 2 laboratorium Projekt zaliczeniowy
Dany jest następujący logiczny schemat bazy danych Systemy baz danych 2 laboratorium Projekt zaliczeniowy FAKTURY POZYCJE PK f_id_faktury PK p_id_pozycji f_data_wystawienia f_data_płatnosci f_czy_zaplacona
Bardziej szczegółowoemszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym Shoper (plugin dostępny w wersji ecommerce)
emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym Shoper (plugin dostępny w wersji ecommerce) Zastosowanie Rozszerzenie to dedykowane jest sklepom internetowym działającym na platformie
Bardziej szczegółowoPortal Personelu Medycznego. 2010 Global Services Sp. z o.o.
Portal Personelu Medycznego 2 Portal Personelu Medycznego Spis treści Rozdział I Wprowadzenie 3 Rozdział II Konfiguracja 4 Rozdział III Aktywacja 5 Rozdział IV Opis aplikacji 7 Rozdział V Obsługa okien
Bardziej szczegółowoINSTRUKCJA UŻYTKOWNIKA
INSTRUKCJA UŻYTKOWNIKA DLA PRCODAWCÓW JAK KORZYSTAĆ Z MODUŁU PRCODAWCY narzędzia informatycznego opracowanego w ramach projektu Czas zawodowców wielkopolskie kształcenie zawodowe Wielkopolski system doradztwa
Bardziej szczegółowo