Salı , 9 Şubat 2016
Anasayfa / MAKALELER / İş Zekası / ODI-Interface ve Filter

ODI-Interface ve Filter

Merhaba,

 

 

Önceki makalemizde Join de içeren bir Interface yapmıştık. Şimdi Uygulamamıza devam edelim ve Filter bir interface yapalım.

 

Devam edersek:  Öncelikle ODI ı açıyoruz ve kendi user ımızla bağlanıyoruz. Sonrasında yeni bir proje oluşturalım. Diğer taraftan da TOAD dan HR a bağlanabiliriz.

 

1)new(2)

 

Açılan ekrandan Yeni projemiz için isim oluşturuyoruz.

 

2)Proje_adi

 

 

Proje adını girdikten sonra kaydet diyoruz. Ve sol taraf projects sekmesinin altına yeni Projemizin geldiğini görüyoruz.

Oradan Interface bölümüne gelerek New Interface diyoruz ve Interface için isim giriyoruz.

 

3)interface_new

 

Mapping kısmına geçiyoruz ve aşağıdaki ekrana ulaşmış olmamız gerekiyor.

 

4)mapping_ekranı

 

Şimdi nasıl bir aktarım(Integrator) yapacağımızı planlayabiliriz. Bu interface de Filter ile birlikte Join ve işin içerisine biraz da hesap katmak için

Sum kullanalım.Şöyle bir senaryo düşünelim:

 

Roma,Tokyo ve Toronto da yaşayan kişilere yıllık maaşlarının %5 i kadar yıl sonunda prim verilecek olsun. Ve ben hedef  tablomda

bu şartları sağlayan kişilerin, First_name, Last_name,Street_adress,city,job_title ve Salary ile verilmesi gereken prim olarak görelim.

Öncelikle bu sonucu verebilecek bir tablo create ediyoruz.

 

 

CREATE TABLE Table_prim

(

First_name      VARCHAR2 (20 BYTE),

Last_name       VARCHAR2 (25 BYTE),

Street_adress   VARCHAR2 (40 BYTE),

city            VARCHAR2 (30 BYTE),

job_title       VARCHAR2 (35 BYTE),

Salary          NUMBER (8, 2),

bonus           NUMBER (8, 2)

)

 

 

Tablomuzu oluşturduktan sonra, reverse etmeyi unutmadan  ODI da Target tarafına atabiliriz

. Source kısmına da benim bu verileri çekeceğim tablolar hangileri sorusunu sorarak ilerliyorum

ve Employees, Locations ve Jobs tablolarını Source kısmına atıyorum. Sonuç olarak şu anda

olduğumuz yer aşağıdaki gibi.

 

5)tablolar

 

Target daki Table_Prim tablomuzda bazı değerlerin otomatik eşleşdiklerini görebiliyoruz. Bunu zaten atarken bize soruyor,

ok dediğimizde alınacak ne varsa zaten alıyor.

Şimdi, Joinleri kuralım ve filtrelerimizi oluşturalım.Filtreleri Source tarafındaki tablolardan ilgili olanına  gelerek, sürükle bırak

yöntemi ile kolonu çektiğimizde alt tarafta yazabiliyoruz. City kısmına filtre koyacağımız için bahsettiğim işlemi City için yapıyorum.

 

6)filtre_kismi

 

 

Filtre tıklı iken altta(Implementation) Locations.city yazan alanı görüyoruz. Buraya istediğimiz gibi şartımızı yazabiliriz.

Şehir kriterimiz 3 tane olacağı için bu alana,

LOCATIONS.CITY IN (‘Seattle’, ‘Toronto’)

 

Olarak yazıyoruz. Joinleri kurarak devam edelim. Ortak kolonlara ve özellikle ID li kolonlara dikkat edelim.Joinler de aşağıdaki

gibi oluyor.

 

7)joinler

 

 

Sıradaki adımımızda Bonus kolonunu doldurmak var. Buraya EMPLOYEES.SALARY*12/20 olarak yazıyoruz.

 

8)salary

 

Flow kontrolu de set ederk , IKM SQLControl Append i seçiyoruz ve ‘Flow Control’ u False seçerek Artık Çalıştırabiliriz.

Yaptığımız işlemin SQL i:

 

 

INSERT INTO HR.TABLE_PRIM (FIRST_NAME,

LAST_NAME,

CITY,

JOB_TITLE,

SALARY,

BONUS)

SELECT FIRST_NAME,

LAST_NAME,

CITY,

JOB_TITLE,

SALARY,

BONUS

FROM (SELECT EMPLOYEES.FIRST_NAME FIRST_NAME,

EMPLOYEES.LAST_NAME LAST_NAME,

LOCATIONS.CITY CITY,

JOBS.JOB_TITLE JOB_TITLE,

EMPLOYEES.SALARY SALARY,

EMPLOYEES.SALARY * 12 / 20 BONUS

FROM HR.EMPLOYEES EMPLOYEES,

HR.JOBS JOBS,

HR.LOCATIONS LOCATIONS,

HR.DEPARTMENTS DEPARTMENTS

WHERE     (1 = 1)

AND (EMPLOYEES.JOB_ID = JOBS.JOB_ID)

AND (DEPARTMENTS.MANAGER_ID = EMPLOYEES.EMPLOYEE_ID)

AND (EMPLOYEES.DEPARTMENT_ID = DEPARTMENTS.DEPARTMENT_ID)

AND (DEPARTMENTS.LOCATION_ID = LOCATIONS.LOCATION_ID)

AND (LOCATIONS.CITY IN (‘Seattle’, ‘Toronto’))) ODI_GET_FROM

 

Tabloda datalar da:

 

9)tabloview

 

Teşekkürler.

Mustafa Aksoy

Sakarya Üniversitesi Bilgisayar Mühendisliği mezunuyum. DWH/ETL ve Microstrategy Developer olarak çalışma hayatıma devam etmekteyim. İlgi alanlarım ve bildiğim teknolojiler; PL/SQL, ODI, ETL Circle, Data Guard,Reporting,Microstrategy ve Talend(ETL Tool)

Latest posts by Mustafa Aksoy (see all)

Hakkında Mustafa Aksoy

Sakarya Üniversitesi Bilgisayar Mühendisliği mezunuyum. DWH/ETL ve Microstrategy Developer olarak çalışma hayatıma devam etmekteyim. İlgi alanlarım ve bildiğim teknolojiler; PL/SQL, ODI, ETL Circle, Data Guard,Reporting,Microstrategy ve Talend(ETL Tool)

Cevapla

E-posta adresiniz yayınlanmayacak. Required fields are marked *

*