Informatica PowerCenter Designer Özellikleri

By -

Merhaba arkadaşlar sizlere bu yazımda Informatica PowerCenter Designer’ın özelliklerinin bir kısmını örneklerle anlatmaya çalışacağım.

Günümüzde kaynak adını verdiğimiz datalarımız çeşitli ortamlarda(Oracle,SQL Server,IBM DB2,Excel,PDF,Flat File vs.) bulunur. Bazen böyle farklı ortamlarda bulunan datanın tek bir platformda toplanması gerekebilir. İşte tam da bu nokta da ETL dediğimiz yapı devreye giriyor. Datawarehouse in en temel operasyonu olan ve implemetasyonda en büyük bütçeyi alan kısım ETL ( E(Extract – Ayrıştırma) , T(Transform – Dönüştürme) , L(Load – Yükleme) ) olarak adlandırılır. Kaynak database veya diğer ortamlardan datanın alınması, belli bir işlemden geçirilerek ve düzeltmeler yapılarak DW yapısına uygun hale getirilmesi ve DW database içerisine yüklenmesidir. Asıl amaç iş zekasında kullanılacak verinin en etkin kullanılacak hale getirilmesidir.
etl

ETL ürünün içinde Power Center Designer, Workflow Manager ve Workflow Monitor adında uygulamalar vardır.

1

Repository Manager

Informatica’nın hafızası olarak düşünebiliriz.

-Folders

-Object

-Users and Groups içerir.

Designer

Etl mappinglerinin oluşturulduğu ve tasarlandığı yerdir.

2

Workflow

İş akışının sağlanmasında görevlidir.

3

 

Monitor

Çalıştırılan iş akışlarının çalışma durumları görüntülenir.

4

Hata alan işlerin ne hata aldıkları (Get Session Log), biten işler, çalışma süreleri bu uygulamadan izlenir.

 

Basit bir mapping’in en genel görümü aşağıda ki gibidir :

Source Defination  →  Source Qualifier  → Expression Transformation  →  Target

9

 

Source Defination

Burada  kullanacağımız kaynak tabloyu mappingimize sürüklediğimiz de Source Defination Shortcut’ını oluşturmuş oluyoruz. Bu Source’un  yanında otomatik olarak Source Qualifier’ı ile gelmektedir.

30 

Source Qualifier

11

Sql Query -> Sorguların seviyesine göre modellenemeyen sorguları direkt olarak buraya gömerek database gidip çekmesini sağlayabiliriz. Yani burada işi Informatica’ya değil de Database’e yaptırmış oluyoruz. (Sql Override olarak tanımlanabilir.)

SQ içinde Genereate Sql dediğimizde, oluşturduğu Sql’i database’e gönderir ve aldığı sonucu artık DB’ye gitmeden kendi Informatica içerisinde halletmeye devam eder.

27

Önemli olan Ports kısmına select kısmında yazan ifadeleri eklemiş olmamızdır.

Sorgumuzu SQ (Source Qualifier) içerisinde ki SQL Query kısmına yapıştırıyoruz. Daha sonra sorgumuzda bulunan select ifadelerinin sırasına bakarak SQ portlarında aynı isimle ve data formatıyla ekliyoruz. Burada Source kısmı önemli değil , eklediğin herhangi bir kaynak tablodan data formatının aynı olduğu bir item’ı üzerine sürükleyebiliriz. Dikkat etmemiz gereken SQ‘da oluşturduğumuz portlardan boşta kalan yani input girişi olmayan kalmamalı.

User Defined Join : Bir veya birden fazla source tabloyu  Primary/Foreign Key alanları üzerinden joinleme işlemeni Joiner Transformation kullanmadan burada da yapabiliriz.

NOT: Farklı DB’den gelen kayıtlar bunun üzerinden joinlenemez. Örneğin Sybase’den gelen bir source ile Oracle ‘dan gelen bir source aynı SQ’da joinlenemez.

Source Filter –> Properties sekmesinde sorgumuzda Where koşulunda bulunan Filtreleri – Koşulları Source Filter kısmında  tanımlıyoruz.

Number Of Sorted Ports ->Bunun kullanımı ise sortlamak istediğimiz alanı ilk sıraya getirerek,

Number Of Sorted Ports : 1 dediğimizde ilk alana göre sıralar.

Number Of Sorted Ports : 2 dediğimizde ilk iki alana göre sıralama yapar.

Select distinct -> Eğer bu ifadeyi aktif hale getirmek istersek Select distinct özelliğini seçiyoruz. Datanın çoklaması engellenir. Dezavantajı distinct edeceği alanı kendisi belirler.

12

İnput Port : Hiçbir porta bağımlı değildir. İşlem olarak ilk olarak değerlendirilen porttur.

Variable Port : Input portunu referans alarak hesaplanır. Variable sadece o transformation içinde kullanılır, ne input ne de output’dur. Input portunu referans olarak kullanıp saydırma işlemlerinde vs kullanılabilir.

Output Port : Input Port ve Variable Port refereans alır. Transformation içinde en son değerlendirilir.

Expression Transformation

Data Convert / Kolon İsmi Değiştirme / Kolona Spesifik değer atama

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

Addition, Subtraction, Multiplication, Division, Concat, Uppercase conversion, lowercase conversion etc. yapılabilir.

Expression Row by Row işlem yapar. Case/when – decode vs de yapılabilir.

26

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

  • 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)

 

Mapping üzerinde Check-in ve Check-out :

Bir mapping üzerinde değişiklik yapmak istediğimize mappingi mutlaka kendi DEV ortamımızda üzerimize almamız gerekmektedir. (Check-out)

Şöyle ki;

Mapping’imize sağ tıklayıp -> Versioning -> Check-out diyebiliriz.

25    15

Buraya da mapping’in hangi kullanıcı üzerinde olduğunu anlatmak için Comment kısmına yorum yazabiliriz.

 

Üzerinde bulunan CheckOut’ları görüntülemek için Versioning → Find Checkouts yapıyoruz.

16

17

Burada all users ı işaretlersek diğer kullanıcıların da üzerine aldıkları mapping’leri görebiliriz.Diğer kullanıcıların da işlem yapmasını istediğimiz de Sağ tıklayıp Check-In yapabiliriz.

18

Mappinglerin gösterim şekilleri genel olarak 2 türlüdür.

  • Arrange All

19

  • Arrange All Iconic

20

Bir mappingte var olan alanın geldiği ya da gideceği yolu bulmak için o alan üzerinde sağa tıklayıp Select Link Path → Forward /Backward diyip bulabiliriz.

21

Dip Not : Informatica da benim en çok kullandığım kısımlardan beri her türlü Fonksiyonların özelliklerini ve kullanımlarını anlatan Help → Contents’dir.

 22

Target

Data’nın Hedef’e yüklenmesidir.

23

Target Tabloyu oluşturmak için Expression →  Create and Target  →  Genereate / Execute Sql  Edit Sql script dediğimizde oluşturulan Scripti alıp database’de target tabloyu yaratıyoruz.

Sadece o tablonun alanlarını almak için oluşturduğumuz geçici target’ı tabloyu siliyoruz.(Target → (sağ click) Clear All) DB de yarattığımız Import Edilmiş olan Target’ı kullanıyoruz.

Expression Transformation’dan oluşturulan Target’ın  kolon isimleri ve data formatları Expresion ile aynı ise Autolink By Name ile direk alanları birbirine bağlayabiliriz.

Informatica Fonksiyonları

Bu bölümde sizlere Informatica da kullanılan bir kaç Fonksiyonu anlatmaya çalışacağım. Tüm Fonksiyonlar Expression’ının Functions kısmında All Functions klasöründe bulunuyor.

  • CASE WHEN A.PHONE_TYPE IN ('X', 'Y') THEN A.PHONE_TYPE ELSE 'Z' END  Infortmatica’da case-when fonksiyonu olamadığı için bu yapıyı IIF(PHONE_TYPE='X' OR PHONE_TYPE='Y', PHONE_TYPE, 'Z')  şeklinde kullanabiliriz.
  • IIF(LINE_NO = 1, 'AKTIF', IIF(LINE_NO = 2, 'MUSTERI', NULL))  İç içe If fonksiyonu
  • SUM(IIF(USER='OP', CNT,0)) Aggragation Fonksiyonu
  • GET_DATE_PART(data_date, 'YYYY')  Yılı parse etme fonksiyonu
  • GET_DATE_PART(data_date, 'MM') Ayı parse etme fonksiyonu
  • DECODE(SECURED,'Y','',IP) Decode fonksiyonu
  • SUBSTR(MERCHANT,1,2)  Substr Fonskiyonu
  • Infotmatica’da Expression Transformation da between ifadesi olmadığı için , eğer select cümleciğinde böyle bir sorgu var ise bunu Between kullanmadan aşağıdaki şekilde çözebiliriz : YANIT_TARIHI BETWEEN '2015-01-01' AND '2015-05-31'   şeklindeki ifadeyi   IIF(YANIT_TARIHI >=TO_DATE( '2015-01-01', 'YYYY.MM.DD') AND YANIT_TARIHI <= TO_DATE('2015-05-31' , 'YYYY.MM.DD')
  • REPLACESTR(TRUE,F,'Operasyon Bölgesi','')  Replace Fonksiyonu
  • TO_DATE(to_char(GET_DATE_PART(STOK,'dd') ||'/' || GET_DATE_PART(STOK,'mm') || '/'|| GET_DATE_PART(STOK,'yyyy')), 'dd/mm/yyyy')  To_Date fonksiyonu
  • trunc(create_date) Trunc Fonksiyonu
  • LTRIM(RTRIM(CEK,' '),' ')   Trim Fonksiyonu Ltrim ve Rtrim fonksiyonları ile yapılır.
  • DATE_DIFF(sysdate, Max_effdate, 'dd')  Date_Diff kalan gün sayısını hesaplamada kullanılır.
  • to_char(RAPORLAMA_TARIHI,'dd/mm/yyyy')  To_char fonksiyonu
  • Decode(Adet,NULL,0,Adet)  Informatica’da NVL fonksiyonu yoktur, bunu decode yardımı ile yapabiliriz.
  • ISNULL(Group_Name)  ISNULL fonksiyonu
  • TYPE in(1,2)  ifadesi Informatica’da  In(TYPE 1,2) In fonksiyonu kullanımı.

Sizlerle genelde en çok kullanılan fonksiyonları paylaştım tabi ki bunların24

dışında daha bir çok fonksiyon var bunlara All Functions  klasöründen ulaşabilirsiniz.

 

 

 

 

 

 

 

 

 

Bir diğer Informatica yazısında görüşmek üzere şimdilik hoşçakalın :)