Informatica- PushDown Optimization

By -

Informatica PushDown Optimizasyon Nedir?

Merhabalar, bugün sizlere Informatica’nın çokta bilinmeyen özelliklerinden biri olan PushDown Optimization’dan bahsedeceğim.

Push Down Optimizasyon’ın amacı iyi performans elde etmek için sunucular arasındaki yükü dengelemektir. Yani Informatica’da yaptığımız mapping’lerin Informatica Server’ındaki yükünü azaltmak ve yapılması gereken işi bir nevi Database’e yaptırmaktır.

Şimdi aşağıdaki resimli örneklerle bunu nasıl yaptığımıza bakalım .. 

11  Workflow seviyesine gelip ilgili Session’ının içerisine girdiğimiz zaman  burada  PushDown Option seçeneğinden,

 

 

To_Source  ya da To_Target  olarak  seçtiğimizde  Informatica Mapping’inde    kullandığımız transformation’ları SQL  sorgu mantığına çevirir ve hedef veritabanına SQL  sorguları  gönderilir.8888

 

3 çeşit PushDown Optimization vardır :

1) Source-side PushDown Optimization 

Source Side : Sorguya çevirebildiği transformation’ları DB’ye göndermek üzere sorguya çeviriyor , çeviremediği transformationlarda(Rank Transformation , Mapplet gibi) ya da farklı veritabanlarından gelen source’ları gruplayamadığı için kesiliyor.

2) Target-side PushDown Optimization

Target Side : Workflow’da session bazında ayarlanır. Target’tan başlayarak Source’a doğru PushDown Optimization yapar.

3) Full PushDown Optimization

Full Side : Dikkat edilmesi gereken nokta Mapping’te kullanılan Source’ların aynı DB’de olması koşuludur. Yoksa Full PushDown Optimization yapılamaz.

Örneğin bir Products tablomuz olsun , bunların Client_No, Product_No, Principle_Amount alanları olsun. Informatica’da PushDown Optimization yapmak için;

To source’u seçtiğimizde üreteceği sorgu ,

select client_no , product_no , sum (principle_amount) from products
group by client_no , product_no

To Target’ı seçtiğimizde üreteceği sorgu  aşağıdaki gibi olacaktır.

insert into dummy as
select client_no , product_no , sum (principle_amount)
from products

Şimdi bir başka örneği inceleyelim , Workflow seviyesinde ilgili session.ının bize döndürdüğü sorguyu,

  1. adım PushDown Option seçeneği (To_Source – To-Target – Full ) seçip ,
  2. adım Preview Result For Connection’ı seçtikten sonra aşağıdaki gibi bir yapıyı görüntülemiş oluruz.

 

FFF

Oluşturduğu sorgular aşağıdaki gibi Group1 ve Group 2 şeklinde ayrılmıştır. Burada Group_1‘in temel mantığı , Group_1  source.ların Db’leri aynı , Group_2‘deki source.ların DB.leri aynı olduğu için bunları kendi arasında gruplandırmıştır. Sorguya dönüştürebildiği transformationların sorgusunu da aşağıdaki şekilde görebiliriz.

Group 1 :

SELECT * FROM
C_TABLOSU INNER JOIN D_TABLOSU ON (C_TABLOSU.ID =D_TABLOSU.ID) RIGTH OUTER JOIN E_TABLOSU ON (E_TABLOSU.ID = C_TABLOSU.ID)

Group 2:

SELECT * FROM 
A_TABLOSU LEFT JOIN B_TABLOSU ON (A_TABLOSU.ID = B_TABLOSU.ID) 

NOT: Target-Side seçtiğimizde , ilgili session.ının Target’ı Bulk değil Normal olarak yüklenmesi gerekmektedir. Yoksa “No PushDown Optimization is possible. Pushdown optimization to the target stops at the target [X] because bulk loading cannot be used with target-side pushdown optimization.” şeklinde bir hata ile karşılaşabiliriz.

 777

Değerli bilgilerini bizlerle paylaştığı için Kaan Ülvan’a teşekkür ederim. Şimdilik bu kadar bir sonraki yazımda görüşmek üzere herkese BigData’lı günler 🙂

Koddit Yazılım ve Danışmanlık [email protected]