Merhaba arkadaşlar bu yazımda Oracle Data Integrator’un en önemli özelliklerinden birisi olan datayı taşırken manipule(oynama) yapacagız.Ne demek bu dersek bir örnekle açıklayalım örnegin 2 tablom var bu tabloları birleştirip hatta içinde ki sütunları da birleştirip daha sonra da belirli şartları saglayan verileri karşıda bir tabloya atmak istemek gibi.Peki bunu nasıl yapacagım bunu Interface’lerimize Filter ve Join gibi araçları kullanarak yapabiliriz.
Ben örnegimde MsSQL veritabanında 2 tane tabloyu birleştirip daha sonra bunun da id’si 1 ve 2 olanları Oracle Veritabanında yeni bir tabloya taşıyacagım.
Bu örnege başlamadan önce http://www.mustafabektastepe.com/2013/08/24/oracle-data-integrator-ile-mssql-veritabanindan-oracle-veritabanina-veri-tasinmasimigration/ bu dökümanı uygulamak gerekir çünkü tekrardan veritabanı tanımlama,model oluşturma vs. ile ugraşmamak için.
1.Repository’e baglanmak için “Connect to Repository” seçenegini seçeriz.
2.Daha önceden oluşturdugumuz Repository’imizin ismini ve SUPERVISOR kullanıcısının şifresini gireriz.
3.Yeni senaryomuz yeni bir Interface tanımlarız.
4.Interfce’imize isim verir ve veriyi taşıacagımız Logical Schema’mızı seçeriz.
5.Senaryomuzu oluşturmak için Mapping kısmına geçeriz.
6.Daha önce MsSQL veritabanı için oluşturdugumuz modelimizde ki 2 tabloyu “Categories” “Products” sürükle bırak yöntemiyle taşırız.
7.Source kısmının son hali resimde gözeüktügü gibi olur.
Target yani veri taşıyacagımız olan veritabanımıza yeni bir tablo ve sütün eklemek için “Temprorary Target Datastore” üzerinde sag’a tıklarız ve istedigimiz kadar sütun ekleriz.
8.Ben 5 tane sütun ekledim ve isimlerinide degiştirmedim.Tablomun isminede “ODI_Filter_Join” ismini verdim.
9.“Products” tablosun’daki “CategoryID” sütununu sürükleyip “Categories” tablosun’daki “CategoryID” sütununun üzerine bırakıyorum ve bu haliyle ikisi arasında join oluşmasını saglıyorum.Yani “Products.CategoryID=Categories.CategoryID” böyle bir Join yapmış oluyorum.
10.Daha sonra filter ve join’leri görmek için “Quick Edit” seçenegini seçiyorum.
Yeni Filter eklemek için Filter seçenegi üzerinde +(artı) işareti üzerine tıklıyorum
11.Burada hangi sütuna göre filtreleme yapacagımızı seçemek için o sütun üzerine gelir “Add to Filter” butonuna tıklarız.
12.Seçimizi yaptıktan sonra nasıl bir Filtreleme yapacagımızı belirlemek için “Tamam” butonuna tıklarız.
13.Buradan istedigimiz fonksiyonları ve operatörleri seçeriz.
14.Ben gördügünüz gibi örnegim çok uzamasın diye basit bir şey yapıyorum ve “Tamam” butonuna tıklıyorum.Burada istediklerimizi kullanabiliriz.
15.“Tamam” butonuna tıklıyoruz.
16.Filter ve Join’in son halini görüyoruz istersek yenilerini ekleyebiliriz.
17.Tekrardan “Mapping” kısmına geçtigimizde filter ve Join’i arayüzden’de görebiliriz.
18.“Quick Edit” kısmına geçtigimizde yeni oluşturacagımız tablo daki sütunlar ile ilgili ayarlamaları yapabiliriz.
19.Örnegin ben 1.kısımla sütunlarımın uzunluklarını belirlerken, 2.sütunla da sütunlarımın isimlerini belirleyebilirim.
20.Daha Sonra “Flow” kısmına geçebiliriz.Ve source’dan veriyi okumak için gerekli modul’ümüzü seçeriz daha önceki dökümanlarda bu modulleri yükledigimiz için tekrardan yüklemeye gerek duymadan kullanabiliriz.
21.Target için de modulümü seçtikten sonra Interface’imi kaydedebilirim.
22.“Yes” ile devam edelim.Kullanacagımız objeleri kilitleyecegini söylüyor kilitlememesini istersek “No” butonuna da tıklayabiliriz.
23.Interface’imizi çalıştırırız.
24.Her hangi bir agent kurulumu yapmadığımızdan dolayı, “Local” seçeneğini seçerek “Tamam” butonuna basalım.
25.İşlemimizin başladıgını bize bildiriyor.
26.MsSQL’daki iki tabloyu Join ile baglayıp filtreliyerek karşı tabloya attıgımız projenin başarı ile bittigini görürüz.
Yazar : Mustafa Bektaş Tepe
Oracle World