SAS ETL Studio Wprowadzenie Izabela Szczęch i Krzysztof Dembczyński Instytut Informatyki Zakład Inteligentnych Systemów Wspomagania Decyzji Politechnika Poznańska Technologie Wytwarzania Oprogramowania Semestr letni 2008/09 Studia uzupełniajace magisterskie
1 Wprowadzenie do SAS ETL Studio 2 Studium przypadku 3 SAS ETL Studio Metadane 4 SAS ETL Studio Diagram przepływu zadań 5 SAS ETL Studio Uruchamianie zadań
1 Wprowadzenie do SAS ETL Studio 2 Studium przypadku 3 SAS ETL Studio Metadane 4 SAS ETL Studio Diagram przepływu zadań 5 SAS ETL Studio Uruchamianie zadań
SAS ETL Studio jest aplikacja umożliwiajac a tworzenie i zarzadzanie przepływami procesów ETL (Extraction, Transformation, Loading of data). Dane w procesie ETL sa: pobierane (extraction) z różnych źródeł, transformowane (transformation) czyli okrajane, łaczone, czyszczone etc., ładowane (loading) do tabel docelowych wchodz acych w skład hurtowni danych.
W ramach zajęć nauczymy się: definiować metadane dla tabel źródłowych, definiować metadane dla tabel wynikowych (wchodzacych w skład hurtowni danych), tworzyć i wykonywać procesy (jobs) określaj ace sposób ekstrakcji, transformacji danych źródłowych i ładowania ich do tabel wynikowych.
Wykorzystywane narzędzia SAS: SAS Management Console (do administrowania całym oprogramow. SAS), SAS ETL Studio (do budowy i zarzadzania procesami ETL), SAS Metadata Server (do odczytywania/zapisywania danych w SAS Metadata Repository), SAS Workspace Server (do dostępu do danych i wykonywania kodów SASowych).
Repozytoria metadanych Obiekt metadanych to zbiór atrybutów opisujacych tabele, użytkowników, serwery, dostęp do nich, umiejscowienie etc. Definicje danych źródłowych, docelowych i transformacji jednych w drugie też sa metadanymi. Metadane przechowywane s a w repozytoriach (np. SAS Main to nazwa repozytorium typu Foundation).
Repozytoria metadanych
SAS ETL Studio
SAS ETL Studio
1 Wprowadzenie do SAS ETL Studio 2 Studium przypadku 3 SAS ETL Studio Metadane 4 SAS ETL Studio Diagram przepływu zadań 5 SAS ETL Studio Uruchamianie zadań
Studium przypadku Firma Orion Star prowadzi detaliczna sprzedaż artykułów sportowych (ubrania, buty, sprzęty). Sprzedaż prowadzona jest w wielu krajach świata, zarówno w sklepach jak i przez Internet i katalogi wysyłkowe. Dysponujemy danymi z lat 1998 2002. Hurtownia danych ma umożliwiać następujace analizy: jakie produkty sa sprzedawane jakim klientom, kiedy, jakie produkty sa sprzedawane, jaki jest średni czas realizacji zamówień złożonych przez Intenet lub z katalogu wysyłkowego.
Tabela z danymi źródłowymi: CUSTOMER zawiera dane o klientach, którzy złożyli zamówienie, m.in. imię, nazwisko, adres, datę urodzenia, etc. ORDER_ITEM zawiera szczegółowe informacje o towarze zamówionym w sklepie, przez Internet lub katalog, m.in. ilość zakupionego towaru w danym zamówieniu, cenę towaru etc. ORDERS zawiera informacje o poszczególnych transakcjach m.in. datę zakupu, ID sprzedawcy, ID klienta
Tabele z danymi wyjściowymi: ORDER_FACT połaczenie CUSTOMER, ORDER_ITEM, ORDERS + dodatkowe pola dla określenia kiedy jakie produkty sa sprzedawane : Order_Year, Order_Quarter, Order_Month) CATALOG_INTERNET (informacje z ORDER_FACT + dodatkowe pole Delivery_Time)
Maszyna/serwer: localhost użytkownik: sasadm hasło: sas repozytorium: Foundation Profil metadanych
Lokalizacja danych Należy utworzyć katalog z danymi źródłowymi: temp/sources (należy wgrać tam dane źródłowe) Należy utworzyć katalog z danymi docelowymi: temp/targets (tam będa składowane tabele utworzone w procesie ETL) Należy nadać pełne prawa do tych katalogów grupie użytkowników: Sas Server Users (danymi będziemy manipulować jako użytkownicy SASa, musimy więc zapewnić tym użytkownikom dostęp do danych)
1 Wprowadzenie do SAS ETL Studio 2 Studium przypadku 3 SAS ETL Studio Metadane 4 SAS ETL Studio Diagram przepływu zadań 5 SAS ETL Studio Uruchamianie zadań
Zakładka Inventory: drzewko Foundation Library New Library SAS Base Engine Library name: Source Tables i Target Tables Libref: Sources i Targets Engine: BASE path: temp/sources i temp/targets server: SASMain
Definiujemy metadane dla tabel źródłowych (CUSTOMER, ORDERS, ORDER_ITEM), by były one widoczne w ETL Studio: Source Designer: Sources SAS server: SASMain SAS Library: Source Tables Select All Tables Group Location: Foundation Sprawdzenie: CUSTOMER Properties, CUSTOMER View Data
Definiujemy metadane dla tabeli wyjściowej ORDER_FACT: Target Designer Targets Target Table name: Order_Fact Available Columns: Table to Select From CUSTOMER ORDER_ITEM ORDERS Columns to Select Customer_ID Street_ID Order_ID Product_ID Quantity Total_Retail_Price CostPrice_Per_Unit Employee_ID Order_Type Order_Date Delivery_Date
Dodanie nowych kolumn do tabeli ORDER_FACT Columns New Name Description Length Type Is Nullable Order_Year Year Order was Placed 4 Numeric Yes Order_Month Month Order was Placed 4 Numeric Yes Informacje końcowe: Library: Target Tables
Definiujemy metadane dla tabeli wyjściowej CATALOG_INTERNET: Target Designer Targets Target Table name: Catalog_Intenet Available Columns: ORDER_FACT (w całości) Dodanie nowych kolumn do tabeli: Columns New Name Description Length Type Is Nullable Deliver_Time DeliveryTime-OrderTime 4 Numeric Yes Informacje końcowe: Library: Target Tables
1 Wprowadzenie do SAS ETL Studio 2 Studium przypadku 3 SAS ETL Studio Metadane 4 SAS ETL Studio Diagram przepływu zadań 5 SAS ETL Studio Uruchamianie zadań
Zadanie to obiekt metadanych, który określa procesy tworzace dane wyjściowe Diagram przepływu zadań:
Tworzymy diagram przepływu zadań, określajace sposób powstania tabeli wyjściowej ORDER_FACT: Process Designer name: Load Orion Star Tables Select Tables: Order_Fact (tu podajemy nazwę tabeli wynikowej dla całego procesu)
Tworzymy diagram przepływu zadań, określajace sposób powstania tabeli wyjściowej ORDER_FACT (c.d): zakładka Process Library Data Transforms SQL Join zakładka Invertory drag&drop CUSTOMER, ORDERS, ORDER_ITEM (z Source Tables Library)
Tabela wyjściowa CATALOG_INTERNET ma powstać jak tabela ORDER_FACT (ale z odfiltrowaniem sprzedaży w sklepach): zakładka Process Library Data Transforms SQL Splitter
Tabela wyjściowa CATALOG_INTERNET ma powstać jak tabela ORDER_FACT (ale z odfiltrowaniem sprzedaży w sklepach) (c.d): zakładka Inventory drag&drop Catalog_Internet (z Target Tables Library) uwaga: Loader dla tabeli Catalog_Internet jest automatycznie dodawany File ->Save
Poł aczenie tabel (SQL Join): SQL Join Properties zakładka Tables prawy przycisk myszy Advanced Joins zakładka Mappings
Połaczenie tabel (SQL Join) (c.d): Importujemy metadane o nowo-utworzonych kolumnach: Order_Year, Order_Month, Delivery_Time Import Columns Ungrouped Available Columns Catalog_Internet select: Order_Year, Order_Month, Delivery_Time następnie wyspecyfikujemy jak maja zostać wypełnione powyższe pola
Połaczenie tabel (SQL Join) (c.d): Specyfikujemy, że pole Order_Year z tabeli ORDER_FACT ma być wyciagnięte na podstawie pola Order_Date z tabeli ORDERS: dwuklik na Expresions Category: Data and Time Functions: Year (Date) Insert Data Elements:Orders Order_Date Insert OK
Połaczenie tabel (SQL Join) (c.d): Specyfikujemy, że pole Order_Month z tabeli ORDER_FACT ma być wyciagnięte na podstawie pola Order_Date z tabeli ORDERS: dwuklik na Expresions Category: Data and Time Functions: MONTH(Date) Insert Data Elements: Orders Order_Date Insert OK
Połaczenie tabel (SQL Join) (c.d): Specyfikujemy, że pole Delivery_Time z tabeli ORDER_FACT ma być obliczone na podstawie pól Delivery_Date i Order_Date z tabeli ORDERS: dwuklik na Expresions Data Sources: Orders Deliver_Date- Order_Date Insert OK
Połaczenie tabel (SQL Join) (c.d): specyfikujemy, że tabele wyjściowe maja zawierać tylko sprzedaże po roku 2001: zakładka Where Available Columns Result Columns Order_Year 2001 OK File->Save
Podział tabel (SQL Splitter) (c.d): Specyfikujemy, że do tabeli wyjściowej Catalog_Internet maja wejść tylko sprzedaże z katalogu lub z Internetu SAS Splitter Properties zakładka Row Selection Target Table: Catalog_Internet Row Selection Type: Row Selection Conditions Selection Condition: OrderType = Catalog OrderType = Internet
Podział tabel (SQL Splitter) (c.d): propagowanie odwzorowań (nazw, typów pól, etc) między kolumna źródłowa a wyjściowa SAS Splitter Properties zakładka Mappings prawy przycisk myszy: Quick Propagate Select Target Table: All File Save
Ładowanie danych (SAS Loader): definiowanie technik wypełniania tabel wyjściowych danymi z tabel źródłowych SAS Loader Properties zakładka: Load Technique Load Technique: Refresh Before Loading: Drop Table odświeżenie mapowania między tabela źródłowa a wyjściowa SAS Loader Properties zakładka: Mapping prawy przycisk myszy: Quick Map powyższe operacje wykonać dla Loadera dla Order_Fact oraz Catalog_Internet File Save
1 Wprowadzenie do SAS ETL Studio 2 Studium przypadku 3 SAS ETL Studio Metadane 4 SAS ETL Studio Diagram przepływu zadań 5 SAS ETL Studio Uruchamianie zadań
Uruchamianie zadań: prawy przycisk myszy Submit
Dane w tabelach wyjściowych: tabela wyjściowa prawy przycisk myszy View Data
Literatura Getting Started with SAS ETL Studio, 2006