RSS
 

Archive for the ‘Informatica Dersleri’ Category

Informatica Dersleri – Aggregator Transformation

24 Oct

Aggregator Transformation, kayıtlar üzerinde kümeleme (aggregate) hesaplama işlemlerini yapabilmemizi sağlar. Aggregate fonksiyonlarını hatırlayalım;

AVG: Ortalama
COUNT: NULL olmayan kayıt sayısı
FIRST: NULL olmayan ilk kayıt
LAST: NULL olmayan son kayıt
MAX: En büyük değer
MEDIAN: Sayısal serinin orta noktasındaki değer
                 Satır1= 2, Satır2=9, Satır3=15 –> MEDIAN(KOLON) = 9
                 Satır1= 2, Satır2=9, Satır3=15, Satır4=16 –> MEDIAN(KOLON) = (9+15)/2 = 12
MIN: En küçük değer
PERCENTILE
STDDEV
SUM: Toplam
VARIANCE

Bazı kümeleme fonksiyonlarının açıklamaları biraz karışık oldukları için yazmadım. Küçük bir araştırma ile bu fonksiyonların ne işe yaradığını ve nasıl kullanıldıklarını bulabilirsiniz.

Aşağıda ekran görüntülerini göreceğiniz Aggregator Transformation’da BAKIYE bilgisini SUBE kolonuna göre gruplayarak MAX, MIN, AVG ve SUM değerlerini buldum.

Info: Aggregate fonksiyonları filtreleyerek kullanabilirsiniz. Bakiyesi 1000′den büyük olan kayıtların ortalaması için; AVG(BAKIYE, BAKIYE>1000)

Son olarak, Aggregator Transformation GROUP BY özelliğini kullanarak kaynak tablodaki SUBE ve HES_NO kolonlarını DISTINCT olarak hedef tabloya nasıl atılabileceğini paylaşıyorum;

<< Filter Transformation
 

Informatica Dersleri – Filter Transformation

12 Oct

Giren ve kayıt sayısı eşit olmadığı için aktif transformation’dur. Adından da anlayabileceğiniz gibi kayıtları filtrelemek için kullanılır.

Bir örnek üzerinde görelim, Informatica PowerCenter Designer > Edit Transformations > Properties > Filter Condition

Filter Condition’dan TRUE dönen kayıtlar Filter Transformation’dan geçer, diğerleri filtrelenmiş olur.

Bu örnekte isim MEHMET ise BAKIYE>=1000 olan kayıtlar, isim MEHMET değilse BAKIYE<1000 olan kayıtlar için TRUE değeri döndürüyoruz. Yani bu kritere uymayan kayıtları filtrelemiş oluyoruz.

Info: Filtrelenecek kayıtlardan biran önce kurtulup daha az kayıtla işlemleri tamamlayabilmek için mümkün olduğunca mapping’in başında kullanılmalıdır.

İhtiyaç durumuna göre Filter Transformation’a alternatif olarak kaynak tabloya Source Filter da tanımlanabilir. Source Filter, datayı kaynakta filtreleyeceği için daha performanslı çalışacaktır.

Session > Edit > Mapping > Sources > Properties > Source Filter

Yukarıda işlediğimiz örnekte, kaynak tabloda 50000 kayıt var. Filtremiz 18590 satırın hedefe geçmesine izin veriyor. Filter Transformation kullanarak filtreleme ve aktarım işini toplam 22 saniyede tamamladık. Filter Transformation’ı kaldırıp filtreleme işlemini Source Filter’da yaptığımızda ise aktarım işi toplam 16 saniyede tamamlandı.

Ama bu hiçbir zaman Filter Transformation kullanılmaması gerektiği anlamına gelmiyor. Sadece ihtiyaca göre alternatif olarak Source Filter’ın kullanılabileceğini göstermek için bu karşılaştırmayı yaptım.

<< Expression Transformation Aggregator Transformation >> 
 

Informatica Dersleri – Expression Transformation

11 Oct

Pasif bir transformation’dur, yani giren-çıkan satır sayısı eşittir.

Expression Transformation kullanarak data üzerinde yapılabilecek bazı işlemler;

  • Manipulation (değiştirme) işlemleri(LTRIM, CONCAT, UPPER, vs)
  • Conversion (dönüştürme)  işlemleri(TO_CHAR, TO_DECIMAL, TO_DATE, vs)
  • Data temizleme ve düzenleme işlemleri(ISNULL, REPLACESTR, vs)
  • Matematiksel işlemler (LOG, POWER, vs)

 

Basit bir örnek üzerinde görelim;

Informatica PowerCenter Designer > Edit Transformations > Ports

BALANCE_IN portunu “Input”, BALANCE_VAR portunu “Variable”, BALANCE_OUT portunu “Output” olarak işaretliyoruz. Yukarıdaki resimde de gördüğünüz gibi hesaplama işlemini Variable olarak işaretlediğimiz port üzerinde yapıyoruz. Aslında hesaplamayı direk BALANCE_OUT portu üzerinde de yapabilirdik;

Info: Matematiksel fonksiyonlar, herzaman string fonksiyonlardan daha performanslıdır. Özellikle büyük data barındıran tablolar için Expression Transformation’da mümkün olduğunca string fonksiyonları kullanılmamalıdır.

İsimlendirme standartları açısından kolon isimlerinin sonuna Input için “_IN”, Output için “_OUT”, Local Variable için “_VAR” eklemenizde fayda var.

<< Update Strategy Transformation Filter Transformation >>
 

Informatica Dersleri – Update Strategy Transformation

07 Oct

Update Strategy Transformation kaynak tablodaki kayıtları, hedef tabloya aktarırken etiketlemek için kullanılır.

4 çeşit etiket türü bulunur;

 DD_INSERT (0): Insert edilecek kayıtlar.
 DD_UPDATE (1): Güncellenecek kayıtlar.
 DD_DELETE (2): Silinecek kayıtlar.
 DD_REJECT (3): Reddedilecek, dikkate alınmayacak olan kayıtlar.

Bir örnekle inceleyelim, Informatica PowerCenter Designer > Edit Transformations > Properties > Update Strategy Expression > Value

IIF ( (BALANCE &gt; 1000), DD_INSERT, DD_REJECT )

BALANCE kolonu 1000′den büyük olan kayıtları INSERT, küçük olanları REJECT olarak işaretlemiş oluyoruz.

Info: Performans açısından REJECT kullanmak yerine eğer mümkünse kaynak tabloya Source Filter tanımlamak daha doğru olacaktır.

Bu örnek oldukça basit, muhtemelen ihtiyaçlarınız daha gelişmiş seviyede olacaktır. Kaynak tablodaki kayıtların hedef tabloda bulunup bulunmamasına göre UPDATE veya INSERT olarak işaretlemek gibi. Bunu yapabilmek için Lookup Transformation kullanmamız gerekecek. Lookup Transformation dersimizde detaylı olarak inceleyeceğiz.

UPDATE veya DELETE olarak işaretlenen kayıtların hedef tabloda güncellenebilmesi veya silinebilmesi için hedef tabloda KEY kolon bulunuyor olmalı. Aksi takdirde kayıtlar Reject edilecek ve “WRT_8116 Target table [DEV_TRG_TBL] has no keys specified” hatası alınacaktır.

Kayıtlarımızı INSERT / UPDATE / DELETE / REJECT olarak işaretledik. Peki bu flagleri nasıl kullanacağız?

Designer’dan Workflow Manager’a geçiyoruz. Session > Edit > Mapping > Targets > Properties

Insert: INSERT olarak işaretlenmiş kayıtları hedef tabloya yükler.
Update as Update: UPDATE olarak işaretlenmiş kayıtları hedef tabloda günceller.
Update as Insert: UPDATE olarak işaretlenmiş kayıtları hedef tabloya yeni kayıt olarak yükler.
Update else Insert: UPDATE olarak işaretlenmiş kayıtları hedef tabloda var olan kayıtlar için günceller, hedef tabloda bulunmayan kayıtları hedef tabloya yükler.
Delete: DELETE olarak işaretlenmiş kayıtları hedef tabloda siler. Bu seçenek seçilmez ise DELETE olarak işaretlenmiş kayıtlar Reject edilir.

<< Informatica Dersleri Expression Transformation >>