background image

ClothesEveryday

Etap 1.

Oracle Data Integrator 

– Proces Transportu Danych

Oracle 11g2 (12c)

Baza OLAP w układzie 

gwiazdy

Oracle DI

Część 1: Przygotowanie architektury danych

2014-10-24

Clothes Everywhere (Rafał Kowalski)

1

User:

clothes_everyday
clothes_everyday_test

Password: krzaczek123

Projekt: ETL_Clothes_Everyday_IMPORT

Dane źródłowe

OLAP Datamart

background image

ClothesEveryday -

ROLAP 

(relacyjny model danych)

Zadanie polega na wygenerowaniu relacyjnej bazy danych analitycznych  
ClothesEveryday” w układzie gwiazdy, którego model relacyjny jest przedstawiony na 
diagramie poniżej:

?

2014-10-24

Clothes Everywhere  (Rafał Kowalski)

2

background image

ClothesEveryday -

ROLAP 

(logiczny model danych)

FAKTY, MIARY, WYMIARY, HIERARCHIE

Fakt(SALES)

Wymiar(CHANNEL)

Wymiar(PRODUCT)

wymiar(CUSTOMER)

wymiar(CUSTOMER)

MIARY

2014-10-24

Clothes Everywhere  (Rafał Kowalski)

3

wymiar(DATE)

background image

ClothesEveryday - Hierarchia Wymiaru Logicznego: 

CHANNEL

nazwa poziomu

identyfikator i atrybuty dodatkowe

przykładowe wartości

TOTAL

(brak)

CLASS

channel_class

Direct

CHANNEL

channel_id

channel_desc

T’,

’Tele Sales’

2014-10-24

Clothes Everywhere  (Rafał Kowalski)

4

background image

ClothesEveryday - Hierarchia Wymiaru Logicznego: 

PRODUCT

nazwa poziomu

identyfikator i atrybuty dodatkowe przykładowe wartości

TOTAL

(brak)

CATEGORY

prod_category

Boys

SUBCATEGORY

prod_subcategory

Shirts - Boys’,

PRODUCT Name

prod_name

‘Yuma 7cm Tee Kids’

PRODUCT Detal

Prod_id

prod_desc

4690

‘this is the famous Yuma 7cm Tee 

Kids in color black of size XXL’

2014-10-24

Clothes Everywhere  (Rafał Kowalski)

5

background image

ClothesEveryday - Hierarchia Wymiaru Logicznego: 

DATE

nazwa poziomu

identyfikator i atrybuty dodatkowe

przykładowe wartości

TOTAL

(brak)

YEAR

calendar_year_num_long

2000

QUARTER

calendar_quarter_yq_num

calendar_quarter_num,
calendar_quarter_yq_long

20003

3
2000 K3

MONTH

calendar_month_ym_num

calendar_month_nam_short, 
calendar_month_nam_long,
calendar_month_num, 
calendar_month_ym_short, 
calendar_month_ym_long, 

200009

Sep
September
9
2000 Sep
2000 September

2014-10-24

Clothes Everywhere  (Rafał Kowalski)

6

calendar_month_ym_long, 
calendar_month_ym_mshort, 
calendar_month_ym_mlong

2000 September
2000/09 Sep
2000/09 September

DAY

date_id

07.09.2000 00:00:00

background image

ClothesEveryday - Hierarchia Wymiaru Logicznego: 

CUSTOMER

nazwa poziomu

identyfikator i atrybuty dodatkowe

przykładowe wartości

TOTAL

(brak)

CONTINENT

country_region

Europe

COUNTRY

country_id

country_name

PL’,

’Poland’

REGION

cust_state_province

Dolnoslaskie

CITY

cust_city

Wroclaw

CUSTOMER

cust_id

78769

2014-10-24

Clothes Everywhere  (Rafał Kowalski)

7

background image

Schematy bazy danych:  clothes_everyday – produkcyjny,  clothes_everyday_test – testowy

1.

Uruchomić program Oracle 
BI Administration Tool

DROP USER   clothes_everyday CASCADE;
CREATE USER clothes_everyday IDENTIFIED BY krzaczek123 
DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp account unlock;
GRANT CONNECT, RESOURCE, CREATE VIEW TO clothes_everyday;

DROP USER   clothes_everyday_test CASCADE;
CREATE USER clothes_everyday_test IDENTIFIED BY krzaczek123 
DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp account unlock;

1. Uruchomić program Oracle SQL Developer.
Zalogować się na konto 

sys

i stworzyć dwa schematy do 

testowania procesu zasilania bazy przy pomocy ODI.

2014-10-24

Clothes Everywhere  (Rafał Kowalski)

8

DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp account unlock;

GRANT CONNECT, RESOURCE ,CREATE VIEW TO clothes_everyday_test;

/*  ================================================================
-- Przestrzeń tabel zostaa stworzona wcześniej.
-- W tym ćwiczeniu nie należy jej kasować !!!
DROP   TABLESPACE clothes_everyday_tbs;
CREATE BIGFILE TABLESPACE "CLOTHES_EVERYDAY_TBS" 

DATAFILE 'C:\APP\ADMINISTRATOR\ORADATA\ORCL\CLOTHES_EVERYDAY_TBS.DBF' 
SIZE 1024M REUSE AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED 
LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO ;

*/

ALTER USER clothes_everyday

QUOTA UNLIMITED ON clothes_everyday_tbs;

ALTER USER clothes_everyday_test QUOTA UNLIMITED ON clothes_everyday_tbs;

background image

Nowy projekt ODI

2. Zalogować się do repozytorium ODI.
Hasło

krzaczek123

2014-10-24

Clothes Everywhere  (Rafał Kowalski)

9

background image

Dwa konteksty działania 

zadań: 

Testing

i

Production

2014-10-24

Clothes Everywhere  (Rafał Kowalski)

10

background image

Architektury fizyczne Oracle (fizyczne serwery) dla dwóch kontekstów działania

2

2014-10-24

Clothes Everywhere (Rafał Kowalski)

11

1

3

background image

Schematy fizyczne Oracle (fizyczne bazy danych ETL) dla dwóch kontekstów działania

2

2014-10-24

Clothes Everywhere (Rafał Kowalski)

12

3

1

background image

Architektura logiczna Oracle (Logiczny serwer ETL) niezależna  od kontekstu działania

1

3

2014-10-24

Clothes Everywhere (Rafał Kowalski)

13

2

background image

Model Oracle (Logiczna baza ETL) niezależna  od kontekstu działania

1

2

2014-10-24

Clothes Everywhere (Rafał Kowalski)

14

Reinżynieria modelu i stworzenie metadanych
tabel zostanie wykonane w czasie późniejszym, 
po stworzeniu tabel obszaru ETL

3

background image

Fizyczny schemat katalogu plików tekstowych 

dla dwóch kontekstów działania 

ETL

3. Stworzyć folder do 

1

2

3

2014-10-24

Clothes Everywhere (Rafał Kowalski)

15

C:\temp\ETL_ClothesEveryday_FILE

3. Stworzyć folder do 
przechowywania plików 
tekstowych

3

4

background image

Logiczny schemat katalogu plików tekstowych 

źródło danych  

ETL

1

2

3

2014-10-24

Clothes Everywhere (Rafał Kowalski)

16

background image

Model danych katalogu plików tekstowych 

źródło danych  

ETL

1

2

3

2014-10-24

Clothes Everywhere (Rafał Kowalski)

17

3

background image

ClothesEveryday

Etap 1.

Oracle Data Integrator 

– Proces Transportu Danych

Oracle 11g2 (12c)

Baza OLAP w układzie 

gwiazdy

Oracle DI

Część 2: Tworzenie pakietu procedur pomocniczych

2014-10-24

Clothes Everywhere (Rafał Kowalski)

18

Projekt: ETL_Clothes_Everyday_IMPORT

User:

clothes_everyday
clothes_everyday_test

Password: krzaczek123

Projekt: ETL_Clothes_Everyday_IMPORT

Dane źródłowe

OLAP Datamart

background image

Stworzenie zestawu tabel – procedura SQL: 

CE_Drop_Tables_DM

2

1

4

3

2014-10-24

Clothes Everywhere (Rafał Kowalski)

19

5

3

background image

Stworzenie zestawu tabel – procedura SQL: 

CE_Drop_Tables_DM

4. W analogiczny sposób stworzyć  polecenia dropowania
pozostałych tabel schematu ClothesEveryday:
-- =========================================

1,2,3,4,5

2014-10-24

Clothes Everywhere (Rafał Kowalski)

20

-- =========================================
-- Drop Schema Objects
-- =========================================
DROP TABLE ce_channels   CASCADE CONSTRAINTS;
DROP TABLE ce_countries  CASCADE CONSTRAINT;
DROP TABLE ce_customers  CASCADE CONSTRAINTS;
DROP TABLE ce_date       CASCADE CONSTRAINTS;
DROP TABLE ce_products   CASCADE CONSTRAINTS;
DROP TABLE ce_sales      CASCADE CONSTRAINTS;

1

2

3

4

5

background image

Stworzenie zestawu tabel – procedura SQL: 

CE_Drop_Tables_DM

6. WAŻNE: Wybrać właściwy 
kontext wykonania. W tym 
przypadku testowanie.

1

3

4

2014-10-24

Clothes Everywhere (Rafał Kowalski)

21

5. Wykonać procedurę

2

background image

Stworzenie zestawu tabel – procedura SQL: 

CE_Drop_Tables_DM

7. Sprawdzenie wyników
wykonania procedury

1

2

2014-10-24

Clothes Everywhere (Rafał Kowalski)

22

W logu wykonania ostatniej procedury
widać symbole ostrzeżeń. Gdyby w definicji poleceń 
nie zostały zaznaczone opcje „Ignore Errors”, 
to wykonanie zostało by przerwane z błędem. 

10. Po otworzeniu logu przykładowego polecenia
widać przyczynę błędu - brak tabeli nie jest,
w tym przypadku, błędem krytycznym

background image

Stworzenie zestawu tabel – procedura SQL: 

CE_Gen_Tables_DM

1

2

4

3

2014-10-24

Clothes Everywhere (Rafał Kowalski)

23

5

background image

Stworzenie zestawu tabel – procedura SQL: 

CE_Gen_Tables_DM

11. W analogiczny sposób stworzyć  polecenia 
generowania pozostałych tabel schematu 
ClothesEveryday:

CREATE TABLE ce_countries

( country_id

CHAR(2 char)      NOT NULL

, country_name

VARCHAR2(40 char) NOT NULL

, country_subregion VARCHAR2(30 char) NOT NULL
, country_region

VARCHAR2(20 char) NOT NULL 

) TABLESPACE clothes_everyday_tbs;

, cust_income_level

VARCHAR2(30 char) NOT NULL

, cust_credit_limit

NUMBER(8)         NOT NULL

, cust_email

VARCHAR2(30 char) NOT NULL

) TABLESPACE clothes_everyday_tbs;

CREATE TABLE ce_sales

( prod_id

NUMBER(6)    NOT NULL

, cust_id

NUMBER(6)    NOT NULL

, date_id

DATE         NOT NULL

, channel_id

CHAR(1 char) NOT NULL

, promo_id

NUMBER(6)    NOT NULL

, quantity_sold NUMBER(3)    NOT NULL
, amount

NUMBER(10,2) NOT NULL

, cost

NUMBER(10,2) NOT NULL

1

1,2,3,4,5

4

5

2014-10-24

Clothes Everywhere (Rafał Kowalski)

24

CREATE TABLE ce_products

( prod_id

NUMBER(6)             NOT NULL

, prod_name

VARCHAR2(50 char)     NOT NULL

, prod_desc

VARCHAR2(4000 char)   NOT NULL

, prod_subcategory

VARCHAR2(50 char)     NOT NULL

, prod_subcat_desc

VARCHAR2(2000 char)   NOT NULL

, prod_category

VARCHAR2(50 char)     NOT NULL

, prod_cat_desc

VARCHAR2(2000 char)   NOT NULL

, prod_weight_class

NUMBER(2)             NOT NULL

, prod_unit_of_measure VARCHAR2(20 char)     NOT NULL
, prod_pack_size

VARCHAR2(30 char)     NOT NULL

, supplier_id

NUMBER(6)             NOT NULL

, prod_status

VARCHAR2(20 char)     NOT NULL

, prod_list_price

NUMBER(8,2)           NOT NULL

, prod_min_price

NUMBER(8,2)           NOT NULL

) TABLESPACE clothes_everyday_tbs;

CREATE TABLE ce_customers

( cust_id

NUMBER(6)         NOT NULL

, cust_first_name

VARCHAR2(20 char) NOT NULL

, cust_last_name

VARCHAR2(40 char) NOT NULL

, cust_gender

CHAR(1 char)      NOT NULL

, cust_year_of_birth

NUMBER(4)         NOT NULL

, cust_marital_status

VARCHAR2(20 char) NOT NULL

, cust_street_address

VARCHAR2(40 char) NOT NULL

, cust_postal_code

VARCHAR2(10 char) NOT NULL

, cust_city

VARCHAR2(30 char) NOT NULL

, cust_state_province

VARCHAR2(40 char) NOT NULL

, country_id

CHAR(2 char)      NOT NULL

, cust_main_phone_number VARCHAR2(25 char) NOT NULL

) TABLESPACE clothes_everyday_tbs;

CREATE TABLE ce_date

( date_id

DATE          NOT NULL -- klucz wymiaru

, calendar_month_ym_num

NUMBER(6)     NOT NULL -- YYYYMM klucz poziomu 

, calendar_month_ym_short

NCHAR(8)      NOT NULL -- YYYY Mon 

, calendar_month_ym_mshort

NCHAR(11)     NOT NULL -- YYYY/MM Mon 

, calendar_month_ym_mlong

NVARCHAR2(25) NOT NULL -- YYYY/MM Month

, calendar_month_ym_long

NVARCHAR2(25) NOT NULL -- YYYY Month

, calendar_month_num

NUMBER(2)     NOT NULL -- MM

, calendar_month_nam_short

NCHAR(3)      NOT NULL -- Mon

, calendar_month_nam_long

NVARCHAR2(15) NOT NULL -- Month

, calendar_quarter_yq_num

NUMBER(5)     NOT NULL -- YYYY klucz poziomu

, calendar_quarter_yq_long

NCHAR(7)      NOT NULL -- YYYY kQ

, calendar_quarter_num

NUMBER(1)     NOT NULL -- Q

, calendar_year_num_long

NUMBER(4)     NOT NULL -- YYYY klucz poziomu

);

4

2

3

background image

Stworzenie zestawu tabel – procedura SQL: 

CE_Gen_Tables_DM

13. WAŻNE: Wybrać właściwy 
kontext wykonania. W tym 
przypadku testowanie.

1

3

4

5

2014-10-24

Clothes Everywhere (Rafał Kowalski)

25

12. Wykonać procedurę

Zapis w logu świadczy, że tabele zostały 
stworzone prawidłowo. Można to 
potwierdzić przy pomocy programu 
Oracle SQL Developer

2

background image

Stworzenie obiektów pomocniczych – procedura SQL: 

CE_Gen_Auxiliary

1

2

3

2014-10-24

Clothes Everywhere (Rafał Kowalski)

26

background image

Stworzenie obiektów pomocniczych – procedura SQL: 

CE_Gen_Auxiliary

1

2

2014-10-24

Clothes Everywhere (Rafał Kowalski)

27

background image

Stworzenie obiektów pomocniczych – procedura SQL: 

CE_Gen_Auxiliary

1

2

2014-10-24

Clothes Everywhere (Rafał Kowalski)

28

Dwa znaki apostrof ‘ ‘

background image

Stworzenie obiektów pomocniczych – procedura SQL: 

CE_Gen_Auxiliary

1

2

2014-10-24

Clothes Everywhere (Rafał Kowalski)

29

background image

Stworzenie obiektów pomocniczych – procedura SQL: 

CE_Gen_Auxiliary

1

2

2014-10-24

Clothes Everywhere (Rafał Kowalski)

30

background image

Stworzenie obiektów pomocniczych – procedura SQL: 

CE_Gen_Auxiliary

2. WAŻNE: Wybrać właściwy 
kontext wykonania. W tym 
przypadku testowanie.

3

4

2014-10-24

Clothes Everywhere (Rafał Kowalski)

31

1. Wykonać procedurę

5. Zapis w logu świadczy, że procedura została 
wykonana prawidłowo. 

Działanie perspektywy MOŻNA potwierdzić przy 
pomocy programu Oracle SQL Developer

4

background image

Pakiet: 

CE_PrepareTabDM

– Pakiet tworzący przestrzeń Data Martu

CE

CE

CE

1

2

4

2014-10-24

Clothes Everywhere (Rafał Kowalski)

32

3. Przejść do zakładki Diagram

Przenieść procedury na diagram. 
Procedura przeniesiona pierwsza uzyskuje status First 
Step. Można to zmieniś otwierając menu właściwości.

5

6

background image

Pakiet: 

CE_PrepareTabDM

– Pakiet tworzący przestrzeń Data Martu

CE

1. Kliknięcie w ikonę strzałki 
WŁĄCZA tryb łączenia 
węzłów diagramu

Klikanie w węzeł początkowy i
docelowy, wprowadza połączenie

2

4

Klikanie w węzeł początkowy i
docelowy, wprowadza połączenie

Klikanie w węzeł początkowy i
docelowy, definiuje połączenie

3

7

8

5. Ponowne kliknięcie w 
ikonę strzałki WYŁACZA tryb 
łączenia węzłów diagramu

2014-10-24

Clothes Everywhere (Rafał Kowalski)

33

6. Potwierdzić 
zapisanie zmian i 
wykonać pakiet

10. Sprawdzić log 
wykonania

CE

CE

7

9

background image

ClothesEveryday

Etap 1.

Oracle Data Integrator 

– Proces Transportu Danych

Oracle 11g2 (12c)

Baza OLAP w układzie 

gwiazdy

Oracle DI

Część 3: 

Stworzenie 

dwóch 

przepływów 

(Interfejsów) i szablonu 

pakietu zasilania DM

2014-10-24

Clothes Everywhere (Rafał Kowalski)

34

User:

clothes_everyday
clothes_everyday_test

Password: krzaczek123

Projekt: ETL_Clothes_Everyday_IMPORT

Dane źródłowe

Dane dla OBIEE

User:

clothes_everyday
clothes_everyday_test

Password: krzaczek123

background image

Interfejs: 

CE_TablesCardinality_Report

– Aktualizowanie historii zasileń obszaru CE w tabeli   

DM_EtlLoadHistory

a)

Historia zasileń obszaru CE jest jest przechowywana w tabeli DM_EtlLoadHistory.

b)

Do zasilania tabeli informacjami o kolejnych zasileniach będzie wykorzystywana 
perspektywa v_CE_DmTablesCardinality‘

c)

Zasilanie będzie aktualizowane przy pomocy odpowiedniego interfejsu 
CE_TbsCrdnlty_Rprt

2

2014-10-24

Clothes Everywhere (Rafał Kowalski)

35

d)

Wypełnić nagłówek interfejsu i pozostawić otwarte okno jego kreatora !

e)

Przed rozpoczęciem dalszych prac trzeba przygotować metadane środowiska tabel i perspektyw, stworzonych 
podczas testowania wcześniejszych etapów pracy.

f)

Przed rozpoczęciem dalszych prac trzeba uzupełnić bibliotekę modułów wiedzy  projektu o moduł integracji SQL  
(IKM).

1

background image

Model 

ETL_Clothes_Everyday_DM 

Reinżynieria Metadanych

2

2014-10-24

Clothes Everywhere (Rafał Kowalski)

36

1

W bazie logicznej ETL_Clothes_Everyday_DM (kontekst 
Testing) znajdują się tabele stworzone w poprzednim etapie 
przy pomocy procedury CE_Gen_Tables_DM. Proces 
reinżynierii spowoduje wczytanie ich metadanych do słownika 
obszaru bazy.

W bazie logicznej ETL_Clothes_Everyday_DM (kontekst 
Testing) znajdują się tabele stworzone w poprzednim etapie 
przy pomocy procedury CE_Gen_Tables_DM. Proces 
reinżynierii spowoduje wczytanie ich metadanych do słownika 
obszaru bazy.

background image

Moduły Wiedzy  

Import niezbędnych modułów

1

2

2014-10-24

Clothes Everywhere (Rafał Kowalski)

37

Do wykonania zadania wystarczy standardowy 
moduł integracji dla transformcji SQL.

3

4

background image

Interfejs: 

CE_TablesCardinality_Report –

Mapowanie Metadanych

1. Powrócić do okna kreatora interfejsu

3

2014-10-24

Clothes Everywhere (Rafał Kowalski)

38

2

4

4. Funkcja automatycznego mapowania atrybutów zaoszczędzi 
czas projektowania w przypadku, gdy atrybuty  obydwu encji 
będą miały takie same nazwy i zgodne typy danych

background image

Interfejs: 

CE_TablesCardinality_Report –

Konfigurowanie Interfejsu

2. Tu kliknąć (właściwości 
obszaru oczyszczania)

1. Wybrać zakładkę 
przepływów

2014-10-24

Clothes Everywhere (Rafał Kowalski)

39

3. Wybrać moduł wiedzy integracji

4. Uzupełnić parametry

background image

Interfejs: 

CE_TablesCardinality_Report –

Konfigurowanie Interfejsu

1. Wybrać zakładkę 
mapowania

2. Jednym kliknięciem wybrać atrybut, który 
nie został zmapowany automatycznie

2014-10-24

Clothes Everywhere (Rafał Kowalski)

40

3. Wprowadzić nazwę zmiennej 
systemowej,  określającej datę i czas 
zasilania.

5. Potwierdzić wybór

4. Wybrać warstwę transportu, w której zostanie wykonane mapowanie. 
W tym przypadku jest to strona docelowa – serwer Oracle

background image

Interfejs: 

CE_TablesCardinality_Report –

Testowanie Interfejsu

1

2

3

2014-10-24

Clothes Everywhere (Rafał Kowalski)

41

4

5

6

7

8

Historia zasileń obszaru CE jest jest
przechowywana w tabeli DM_EtlLoadHistory
Interfejs już działa. Tabele są na razie jeszcze 
puste, co widać w kolumnie NUMROWS.

background image

Interfejs: 

CE_Load_SALES

– Wczytanie danych  z pliku tekstowego   

ce_sales.dat

do tabeli   

CE_SALES

CE

1

2

2014-10-24

Clothes Everywhere (Rafał Kowalski)

42

a)

Wypełnić nagłówek interfejsu i pozostawić otwarte okno. Bez wypełnienia wszystkich metadanych zapisanie 
interfejsu jest niemożliwe.

b)

Przed rozpoczęciem dalszych prac trzeba przygotować metadane źródłowego pliku tekstowego 

ce_sales.dat.

c)

Przed rozpoczęciem dalszych prac trzeba uzupełnić bibliotekę modułów wiedzy  projektu o moduł integracji.

background image

Model

ETL_ClothesEveryday_FILES -

Definicja 

Metadanych

CE_SALES

(Datastore)

1

2

3

4

2014-10-24

43

Clothes Everywhere  (Rafał Kowalski)

2

5

6

background image

Magazyn danych 

CE_SALES

w modelu 

ETL_ClothesEveryday_FILES

1

SQLLDR

2014-10-24

44

Clothes Everywhere  (Rafał Kowalski)

2

3

background image

Magazyn danych 

CE_SALES

w modelu 

ETL_ClothesEveryday_FILES

Uzupełnić Metadane zgodnie z 
definicją tabeli:
( prod_id

NUMBER(6)

, cust_id

NUMBER(6)

, date_id

DATE 

, channel_id

CHAR(1 char)

, promo_id

NUMBER(6) 

, quantity_sold NUMBER(3)
, amount        NUMBER(10,2)
, cost          NUMBER(10,2)

1

2014-10-24

45

Clothes Everywhere  (Rafał Kowalski)

2

background image

Moduły Wiedzy  –

Import niezbędnych modułów

2014-10-24

Clothes Everywhere (Rafał Kowalski)

46

1. Do wykonania interfejsu potrzebne są dwa moduły wiedzy:
LKM File to Oracle (SQLLDR)
IKM SQL Control Append.
W przypadku braku na liście, trzeba je importować

1. Do wykonania interfejsu potrzebne są dwa moduły wiedzy:
LKM File to Oracle (SQLLDR)
IKM SQL Control Append.
W przypadku braku na liście, trzeba je importować

background image

Interfejs:  

CE_Load_SALES 

Wczytanie danych do tabeli 

CE_SALES

6. Uzupełnić funkcję konwersji 
daty. (kliknięcie w pole mapowania 
otwiera okno edycji

1

3

2

2014-10-24

Clothes Everywhere (Rafał Kowalski)

47

5. Wybrać opcję automatycznego 
mapowania.

2

4

7

8

background image

Interfejs:  

CE_Load_SALES 

Wczytanie danych do tabeli 

CE_SALES

7. Zawartość tabeli docelowej będzie 
kasowana przed rozpoczęciem nowego 
importu (import nie jest przyrostowy).

1

2

5

2014-10-24

Clothes Everywhere (Rafał Kowalski)

48

4. Import po 
„ścieżce bezpośredniej”.

3. Wybrać odpowiednie moduły 
wiedzy dla źródła i przeznaczenia .

3,6. Wybrać odpowiednie moduły 
wiedzy dla źródła i przeznaczenia.

background image

Interfejs:  

CE_Load_SALES 

Wczytanie danych do tabeli 

CE_SALES

Zapisać interfejs i uruchomić go.

6. Sprawdzić raport:
czas całkowity: 12s.
czas importu (SQLLDR): 5s.

1

2

3

2014-10-24

Clothes Everywhere (Rafał Kowalski)

49

4. Poczekać, aż się 
wykona (odświeżać 
widok)

5

background image

SQLLDR

2014-10-24

Clothes Everywhere  (Rafał Kowalski)

50

background image

Pakiet:  

CE_Execute_ETL 

Podstawowy pakiet zasilania tabel DM

1

2

2014-10-24

Clothes Everywhere (Rafał Kowalski)

51

5

To jest jedynie szablon procesu ETL, 
zawierający pierwszy i ostatni interfejs.
W kolejnych etapach pracy będą 
konfigurowane pozostałe interfejsy

3

4

background image

Pakiet:  

CE_Execute_ETL 

Podstawowy pakiet zasilania tabel DM

1. Zapisać pakiet

2.  Wykonać pakiet

4. Sprawdzić log wykonania.

3

2014-10-24

Clothes Everywhere (Rafał Kowalski)

52

background image

Pakiet:  

CE_Execute_ETL 

Podstawowy pakiet zasilania tabel DM

4

2014-10-24

Clothes Everywhere (Rafał Kowalski)

53

3. Sprawdzić zawartość tabeli 
z historią procesów ETL.

1

2

background image

ClothesEveryday

Etap 1.

Oracle Data Integrator 

– Proces Transportu Danych

Oracle 11g2 (12c)

Baza OLAP w układzie 

gwiazdy

Oracle DI

Część 4: 

Stworzenie 

pozostałych 

przepływów 

(Interfejsów)  

pakietu zasilania DM

2014-10-24

Clothes Everywhere (Rafał Kowalski)

54

User:

clothes_everyday
clothes_everyday_test

Password: krzaczek123

Projekt: ETL_Clothes_Everyday_IMPORT

Dane źródłowe

Dane dla OBIEE

User:

clothes_everyday
clothes_everyday_test

Password: krzaczek123

background image

Interfejs: 

CE_Load_DATE 

Zasilenie 

tabeli

CE_DATE

na podstawie 

CE_SALES

1

2

2014-10-24

Clothes Everywhere (Rafał Kowalski)

55

Tabela (wymiaru) CE_DATE będzie wypełniana datami faktów, 
zasilonych do tabeli CE_SALES
Tabela nie będzie czyszczona przed każdym, kolejnym 
procesem zasilania, tylko uzupełniana nowymi wartościami.  

background image

Interfejs: 

CE_Load_DATE 

Zasilenie 

tabeli

CE_DATE

na podstawie 

CE_SALES

2

3

2014-10-24

Clothes Everywhere (Rafał Kowalski)

56

1

4

Tabela (wymiaru) CE_DATE zawiera wiele kolumn, których 
wartości zostaną  wyliczone na podstawie daty (klucza 
głównego). W tym przypadku mapowanie automatyczne 
kolumn z encji źródłowej jest niepotrzebne.

background image

Interfejs: 

CE_Load_DATE –

Zasilenie 

tabeli  

CE_DATE

na podstawie 

CE_SALES

2. Kolumna DATE_ID jest mapowana „wprost” i można jej symbol 
przeciągnąć myszką z obszaru źródła na obszar docelowy

1

2

2014-10-24

Clothes Everywhere (Rafał Kowalski)

57

INSERT INTO ce_date

SELECT DISTINCT   

date_id

, to_char(date_id,'YYYYMM') 
, to_char(date_id,'YYYY Mon') 
, to_char(date_id,'YYYY') || '/' || to_char(date_id,'MM') || to_char(date_id,' Mon') 
, to_char(date_id,'YYYY') || '/' || to_char(date_id,'MM') || to_char(date_id,' Month')
, to_char(date_id,'YYYY Month')
, to_char(date_id,'MM')
, to_char(date_id,'Mon')
, to_char(date_id,'Month')
, to_char(date_id,'YYYYQ')
, to_char(date_id,'YYYY') || ' K' || to_char(date_id,'Q')
, to_char(date_id,'Q')
, to_char(date_id,'YYYY')

FROM ce_sales;

3

Wartości

Wartości pozostałych kolumn trzeba wyznaczyć na podstawie przedstawionych 
poniżej wzorów transformacji, zgodne z odpowiednimi typami danych.

background image

Interfejs: 

CE_Load_DATE –

Zasilenie 

tabeli  

CE_DATE

na podstawie 

CE_SALES

1

2

3

4

5

6

7

8

9

10

11

12

2014-10-24

Clothes Everywhere (Rafał Kowalski)

58

INSERT INTO ce_date

SELECT DISTINCT   

date_id

, to_char(date_id,'YYYYMM') 
, to_char(date_id,'YYYY Mon') 
, to_char(date_id,'YYYY') || '/' || to_char(date_id,'MM') || to_char(date_id,' Mon') 
, to_char(date_id,'YYYY') || '/' || to_char(date_id,'MM') || to_char(date_id,' Month')
, to_char(date_id,'YYYY Month')
, to_char(date_id,'MM')
, to_char(date_id,'Mon')
, to_char(date_id,'Month')
, to_char(date_id,'YYYYQ')
, to_char(date_id,'YYYY') || ' K' || to_char(date_id,'Q')
, to_char(date_id,'Q')
, to_char(date_id,'YYYY')

FROM ce_sales;

Zadanie jest (niestety) dosyć pracochłonne, … ale prawidłowo wykonane 
dostarczy wiele satysfakcji.

3

background image

Interfejs: 

CE_Load_DATE –

Zasilenie 

tabeli

CE_DATE

na podstawie 

CE_SALES

5. Zapisać metadane

6,7. Uruchomić interfejs 

DWA RAZY 

– drugi raz dopiero po 

sprawdzeniu, że pierwsze wykonanie interfejsu się zakończyło. 

UWAGA: Wykonanie interfejsu zajmuje kilkadziesiąt sekund.

1

2

2014-10-24

Clothes Everywhere (Rafał Kowalski)

59

4. Wprowadzić 
parametry.

3. Wymusić unikalność wierszy 
tabeli wynikowej (słownika 
dat).

1

background image

Interfejs: 

CE_Load_DATE –

Zasilenie 

tabeli

CE_DATE

na podstawie 

CE_SALES

Drugie uruchomienie interfejsu na 
tej samej zawartości tabeli 
CE_SALES nie wprowadziło już 
nowych wierszy do tabeli CE_DATE.

1

2

3

2014-10-24

Clothes Everywhere (Rafał Kowalski)

60

Pierwsze uruchomienie spowodowało 
wygenerowanie 1030 nowych wierszy  
w tabeli CE_DATE

background image

Interfejs: 

CE_Load_DATE –

Zasilenie 

tabeli

CE_DATE

na podstawie 

CE_SALES

1

2

3

2014-10-24

Clothes Everywhere (Rafał Kowalski)

61

background image

Interfejs: 

CE_Load_CUSTOMERS 

Zasilenie

tabeli

CE_CUSTOMERS

z plików txt

1

2

2014-10-24

Clothes Everywhere (Rafał Kowalski)

62

a)

Wypełnić nagłówek interfejsu i pozostawić otwarte okno. Bez wypełnienia wszystkich metadanych zapisanie 
interfejsu jest niemożliwe.

b)

Przed rozpoczęciem dalszych prac - przygotować metadane źródłowych plików tekstowych.

c)

Przed rozpoczęciem dalszych prac - uzupełnić bibliotekę modułów wiedzy  projektu o moduł integracji.

background image

Model: 

ETL_ClothesEveryday_FILES -

Definicja

CE_CUSTOMERS_MAIN

(Datastore)

2

1

4

5

3

CMAIN

2014-10-24

Clothes Everywhere (Rafał Kowalski)

63

6

3

background image

Model: 

ETL_ClothesEveryday_FILES -

Definicja

CE_CUSTOMERS_MAIN

(Datastore)

CUST_ID CUST_FIRST_NAME

CUST_LAST_NAME

CUST_GENDER

CUST_YEAR_OF_BIRTH

CUST_MARITAL_STATUS

CUST_MAIN_PHONE_NUMBER

CUST_EMAIL

10      Abigail

Kessel

M            1946                unknown

127-379-8954            Kessel@company.com

20      Abner

Everett         M            1963                married

570-248-9913            Everett@company.com

30      Abraham          Odenwalld

M            1951                single               234-540-5189            Odenwalld@company.com

40      Absolom

Sampson

M            1941                unknown

153-771-9447            Sampson@company.com

50      Ada              Nenninger

F            1972                married

662-644-2601            Nenninger@company.com

60      Adel             Rhodes

F            1953                single               503-526-1044            Rhodes@company.com

70      Angie

Riffken

F            1955                unknown

538-590-1545            Riffken@company.com

80      Angela           Wiley

F            1983                married

213-595-7978            Wiley@company.com

90      Anand

Hanes

M            1972                single               348-712-4192            Hanes@company.com

100     Anne

Koch            F            1957                unknown

680-327-1419            Koch@company.com

110     Annie            Gilmour

F            1969                married

480-399-4143            Gilmour@company.com

2

Fragment zawartości pliku tekstowego

CREATE TABLE ce_customers
( cust_id

NUMBER(6)

, cust_first_name

VARCHAR2(20 char)

, cust_last_name

VARCHAR2(40 char)

, cust_gender

CHAR(1 char)   

, cust_year_of_birth

NUMBER(4)       

, cust_marital_status

VARCHAR2(20 char)

, cust_street_address

VARCHAR2(40 char)

, cust_postal_code

VARCHAR2(10 char)

, cust_city

VARCHAR2(30 char)

, cust_state_province

VARCHAR2(40 char)

, country_id

CHAR(2 char)  

, cust_main_phone_number VARCHAR2(25 char)

, cust_income_level

VARCHAR2(30 char)

, cust_credit_limit

NUMBER           

, cust_email

VARCHAR2(30 char)

);

Definicja tabeli docelowej:
Kolumny  opisane kolorem czarnym 
zostaną zasilone z bieżącego pliku 
tekstowego. 
Kolumny opisane kolorem szarym zostaną 
zasilone z innych plików tekstowych

1

2014-10-24

Clothes Everywhere (Rafał Kowalski)

64

5. Przy pomocy (nie do końca) intuicyjnego 
interfejsu trzeba podzielić plik tekstowy na kolumny 
informacyjne i wprowadzić ich metadane.

4

3

background image

Model: 

ETL_ClothesEveryday_FILES -

Definicja

CE_CUSTOMERS_MAIN

(Datastore)

Po ustawieniu kursora myszy na polu poziomej linijki ukazuje się pionowa linia 
odcięcia kolumn atrybutów danych. Należy ją umieścić precyzyjnie przed 
pierwszym znakiem zawartości kolejnego atrybutu i kliknąć.
Po kliknięciu, na linijce pozostaje czerwona kropka – symbol kolumny odcięcia

Po ustawieniu kursora myszy na polu poziomej linijki, na ekranie kreatora ukazuje się pionowa linia rozcięcia pól atrybutów 
danych. Należy ją umieścić precyzyjnie przed pierwszym znakiem zawartości każdego, kolejnego pola i kliknąć. Po kliknięciu, 
na linijce pozostaje czerwona kropka – symbol kolumny rozcięcia. Pierwsze pole danych rozpoczyna się od pierwszej 
kolumny tekstu w wierszu.  Koniec każdego pola danych wyznacza linia rozcięcia kolumny pola następnego, lub koniec 
wiersza tekstu. Kliknięcie w symbol czerwonej kropki powoduje skasowanie linii rozcięcia atrybutów

1

2

2014-10-24

Clothes Everywhere (Rafał Kowalski)

65

Poziomy suwak umożliwia wyświetlenie całej strony pliku 
tekstowego i wykonanie podziału wszystkich kolumn.

3,4,5,6, …

background image

Model: 

ETL_ClothesEveryday_FILES -

Definicja

CE_CUSTOMERS_MAIN

(Datastore)

cust_id

NUMBER(6)

, cust_first_name

VARCHAR2(20 char)

, cust_last_name

VARCHAR2(40 char)

, cust_gender

CHAR(1 char)   

, cust_year_of_birth

NUMBER(4)       

, cust_marital_status

VARCHAR2(20 char)

, cust_street_address

VARCHAR2(40 char)

, cust_postal_code

VARCHAR2(10 char)

, cust_city

VARCHAR2(30 char)

, cust_state_province

VARCHAR2(40 char)

, country_id

CHAR(2 char)  

, cust_main_phone_number VARCHAR2(25 char)

, cust_income_level

VARCHAR2(30 char)

, cust_credit_limit

NUMBER           

, cust_email

VARCHAR2(30 char)

Po kliknięciu na domniemaną nazwę pola (C1, C2, C3, ….), 
kreator umożliwia zdefiniowanie jego aktualnych 
parametrów (zgodnie z definicją tabeli danych).

1

2

Po kliknięciu na domniemaną nazwę pola (C1, C2, C3, ….), 
kreator umożliwia zdefiniowanie jego aktualnych 
parametrów (zgodnie z definicją tabeli danych).

Po kliknięciu na domniemaną nazwę pola (C1, C2, C3, ….), 
kreator umożliwia zdefiniowanie jego aktualnych 
parametrów (zgodnie z definicją tabeli danych).

3

2014-10-24

Clothes Everywhere (Rafał Kowalski)

66

4,5,6, …

Poziomy suwak umożliwia wyświetlenie całej 
strony pliku tekstowego i wykonanie podziału 
wszystkich kolumn.

Wypełnić tylko atrybuty nazwy i typu danych. 
Pozostałe atrybuty zostaną uzupełnione w 
kolejnych etapach pracy

background image

Model: 

ETL_ClothesEveryday_FILES -

Definicja

CE_CUSTOMERS_MAIN

(Datastore)

cust_id

NUMBER(6)

, cust_first_name

VARCHAR2(20 char)

, cust_last_name

VARCHAR2(40 char)

, cust_gender

CHAR(1 char)   

, cust_year_of_birth

NUMBER(4)       

, cust_marital_status

VARCHAR2(20 char)

, cust_street_address

VARCHAR2(40 char)

, cust_postal_code

VARCHAR2(10 char)

, cust_city

VARCHAR2(30 char)

, cust_state_province

VARCHAR2(40 char)

, country_id

CHAR(2 char)  

, cust_main_phone_number VARCHAR2(25 char)

, cust_income_level

VARCHAR2(30 char)

, cust_credit_limit

NUMBER           

, cust_email

VARCHAR2(30 char)

1

2014-10-24

Clothes Everywhere (Rafał Kowalski)

67

Physical length określa długość pola danych w 
pliku tekstowym, pomiędzy kolejnymi kolumnami 
odcięcia i nie należy tego parameru zmieniać.

Logical length określa  faktyczną długość pola 
danych i ten parametr należy uzupełnić zgodnie z 
definicją tabeli docelowej.

Logical length określa  faktyczną długość pola 
danych i ten parametr należy uzupełnić zgodnie z 
definicją tabeli docelowej.

background image

Model: 

ETL_ClothesEveryday_FILES -

Definicja

CE_CUSTOMERS_MAIN

(Datastore)

cust_id

NUMBER(6)

, cust_first_name

VARCHAR2(20 char)

, cust_last_name

VARCHAR2(40 char)

, cust_gender

CHAR(1 char)   

, cust_year_of_birth

NUMBER(4)       

, cust_marital_status

VARCHAR2(20 char)

, cust_street_address

VARCHAR2(40 char)

, cust_postal_code

VARCHAR2(10 char)

, cust_city

VARCHAR2(30 char)

, cust_state_province

VARCHAR2(40 char)

, country_id

CHAR(2 char)  

, cust_main_phone_number VARCHAR2(25 char)

, cust_income_level

VARCHAR2(30 char)

, cust_credit_limit

NUMBER           

, cust_email

VARCHAR2(30 char)

1.  Zapisać metadane

2014-10-24

Clothes Everywhere (Rafał Kowalski)

68

2.  Wyświetlić wynik działania metadanych na zawartość pliku tekstowego.

background image

Model: 

ETL_ClothesEveryday_FILES -

Definicja

CE_CUSTOMERS_ADDR

(Datastore)

1

2

Przygotować  metadane samodzielnie

2014-10-24

Clothes Everywhere (Rafał Kowalski)

69

3

( cust_id

NUMBER(6)

, cust_first_name

VARCHAR2(20 char)

, cust_last_name

VARCHAR2(40 char)

, cust_gender

CHAR(1 char)   

, cust_year_of_birth

NUMBER(4)       

, cust_marital_status

VARCHAR2(20 char)

, cust_street_address

VARCHAR2(40 char)

, cust_postal_code

VARCHAR2(10 char)

, cust_city

VARCHAR2(30 char)

, cust_state_province

VARCHAR2(40 char)

, country_id

CHAR(2 char)  

, cust_main_phone_number VARCHAR2(25 char)
, cust_income_level

VARCHAR2(30 char)

, cust_credit_limit

NUMBER           

, cust_email

VARCHAR2(30 char)

background image

Model: 

ETL_ClothesEveryday_FILES -

Definicja

CE_CUSTOMERS_ACCN

(Datastore)

1

2

Przygotować  metadane samodzielnie

2014-10-24

Clothes Everywhere (Rafał Kowalski)

70

3

( cust_id

NUMBER(6)

, cust_first_name

VARCHAR2(20 char)

, cust_last_name

VARCHAR2(40 char)

, cust_gender

CHAR(1 char)   

, cust_year_of_birth

NUMBER(4)       

, cust_marital_status

VARCHAR2(20 char)

, cust_street_address

VARCHAR2(40 char)

, cust_postal_code

VARCHAR2(10 char)

, cust_city

VARCHAR2(30 char)

, cust_state_province

VARCHAR2(40 char)

, country_id

CHAR(2 char)  

, cust_main_phone_number VARCHAR2(25 char)

, cust_income_level

VARCHAR2(30 char)

, cust_credit_limit

NUMBER           

, cust_email

VARCHAR2(30 char)

background image

Interfejs: 

CE_Load_CUSTOMERS 

Zasilenie

tabeli

CE_CUSTOMERS

z plików txt

2

3

4

2014-10-24

Clothes Everywhere (Rafał Kowalski)

71

1

background image

Interfejs: 

CE_Load_CUSTOMERS 

Zasilenie

tabeli

CE_CUSTOMERS

z plików txt

1

1. Przy pomocy wskaźnika myszy przeciągnąć atrybut 
CUST_ID z encji CE_CUSTOMERS_MAIN i opuścić na 
atrybut CUST_ID encji CE_CUSTOMERS_ADDR.

2014-10-24

Clothes Everywhere (Rafał Kowalski)

72

3

2. Zweryfikować poprawność, kardynalność i 
obowiązkowość definicji złączenia.

2

3. Ustawić unikalne indeksy na atrybutach 
złączenia „związek 1 do 1”

background image

Interfejs: 

CE_Load_CUSTOMERS 

Zasilenie

tabeli

CE_CUSTOMERS

z plików txt

1

1. W sposób analogiczny do opisanego na 
poprzedniej folii, wprowadzić definicję 
złączenia encji CE_CUSTOMERS_MAIN i 
CE_CUSTOMERS_ACCN

2014-10-24

Clothes Everywhere (Rafał Kowalski)

73

background image

Interfejs: 

CE_Load_CUSTOMERS 

Zasilenie

tabeli

CE_CUSTOMERS

z plików txt

1

2014-10-24

Clothes Everywhere (Rafał Kowalski)

74

1. Przenieść  ikonę tabeli CE_CUSTOMERS na 
pole Target okna kreatora inerfejsu

2

2. Potwierdzić pytanie o automatyczne mapowanie 
atrybutów z takimi samymi nazwami. W tym przypadku 
znakomicie przyspieszy to czas budowania interfejsu

2. Potwierdzić pytanie o automatyczne mapowanie 
atrybutów z takimi samymi nazwami. W tym, konkretnym 
przypadku 

znakomicie przyspieszy

to czas budowania 

interfejsu

background image

Interfejs: 

CE_Load_CUSTOMERS 

Zasilenie

tabeli

CE_CUSTOMERS

z plików txt

2

3

4

5

6

7

2014-10-24

Clothes Everywhere (Rafał Kowalski)

75

1

4

5

background image

Interfejs: 

CE_Load_CUSTOMERS 

Zasilenie

tabeli

CE_CUSTOMERS

z plików txt

1

2

2014-10-24

Clothes Everywhere (Rafał Kowalski)

76

SUPER: wszystko działa. Sugerowane jest jeszcze 
skontrolowanie zawartości tabeli CE_CUSTOMERS
w zakładce Model

background image

Interfejs: 

CE_Load_PRODUCTS 

Zasilenie

tabeli

CE_PRODUCTS

z plików xls

1

2

2014-10-24

Clothes Everywhere (Rafał Kowalski)

77

a)

Wypełnić nagłówek interfejsu i pozostawić otwarte okno. Bez wypełnienia wszystkich metadanych zapisanie 
interfejsu jest niemożliwe.

b)

Przed rozpoczęciem dalszych prac - przygotować metadane architektury fizycznej i logicznej i modelu danych dla 
źródła .XLS.

background image

Architektury:  

ODBC

dla dokumentu 

MS Excel

2

1

3

2014-10-24

Clothes Everywhere (Rafał Kowalski)

78

background image

Architektury:  

Fizyczna

– Logiczna – Model 

dla dokumentu 

MS Excel

1

2

3

2014-10-24

Clothes Everywhere (Rafał Kowalski)

79

1

4

5

GOTOWE

background image

Architektury:  

Fizyczna –

Logiczna

Model

dla dokumentu 

MS Excel

1

2

4

2014-10-24

Clothes Everywhere (Rafał Kowalski)

80

3

2014-10-24

background image

Architektury:  

Fizyczna – Logiczna –

Model

dla dokumentu 

MS Excel

2014-10-24

3

1

2014-10-24

Clothes Everywhere (Rafał Kowalski)

81

2014-10-24

2

4. Należy poprawić długości logiczne i skale 
atrybutów , wczytanych z arkusza MS Excel

5

Clothes Everywhere  (Rafał Kowalski)

Sprawdzić czy zawartość tabeli 
„wygląda” prawidłowo

background image

Interfejs: 

CE_Load_PRODUCTS 

Zasilenie

tabeli

CE_PRODUCTS

z plików xls

2

Mapowanie perfekcyjne

2014-10-24

Clothes Everywhere (Rafał Kowalski)

82

3

4

1

background image

Interfejs: 

CE_Load_PRODUCTS 

Zasilenie

tabeli

CE_PRODUCTS

z plików xls

1

2

3

2014-10-24

Clothes Everywhere (Rafał Kowalski)

83

2

3

Parametrów nie trzeba było 
zmieniać. Wystarczyły wartości 
domniemane .

Parametrów nie trzeba było 
zmieniać. Wystarczyły wartości 
domniemane .

background image

Interfejs: 

CE_Load_PRODUCTS 

Zasilenie

tabeli

CE_PRODUCTS

z plików xls

1

2

3

Wykonanie interfejsu bez błędów.

2014-10-24

Clothes Everywhere (Rafał Kowalski)

84

4

background image

Procedura:  

CE_Load_CHANNELS

2014-10-24

Clothes Everywhere (Rafał Kowalski)

85

background image

Procedura:  

CE_Load_COUNTRIES

2014-10-24

Clothes Everywhere (Rafał Kowalski)

86

background image

Pakiet:  

CE_Execute_ETL 

Podstawowy pakiet zasilania tabel DM

1. Uzupełnić pakiet

2014-10-24

Clothes Everywhere (Rafał Kowalski)

87

2.  Zapisać pakiet

3.  Wykonać pakiet

4.  Sprawdzić czy nie ma 

błędów wykonania