Parameters In Informatica

Merhabalar,

Bu yazımda Informatica da parametre kullanımından bahsedeceğim. Öncelikle Informatica dan bağımsız olarak Parametre nedir, neden kullanırız, Informatica da Parametre nasıl oluşturulmakta gibi konulara değineceğim.

Günümüzde, iş birimlerinin proseslerinin karmaşıklığı nedeniyle ortaya çıkan mimarilerde karmaşık yapılarla oluşturulmakta. Özellikle DW tasarımlarını göz önüne alırsak, oldukça Enterprise logic lar ortaya çıkmakta. Konu bankacılık, Telco olursa mimarilerin karmaşıklığı daha da artmakta.

Karmaşıklık, logic lerin zorluğunun yanı sıra günümüzde değişen koşullara ayak uydurmak zorundayız. Business logic imizi bu değişen koşullar basit de olsa implemente etmek oldukça uzun süreler alabilmekte. Bu değişiklikleri kısa sürede yapmak, yeni ihtiyaçlara cevap verebilmek  için logic imizin oldukça flexible olması gerekmekte. Özellikle bahsetmiş olduğumuz karmaşık business larda, flexible lık daha da önem kazanmakta, çünkü bir değişiklik yapmak istediğimizde çok karışık noktalara gelinebilmekte. Amaç, tek bir yerde küçük bir değişiklik yapmakken, birden fazla yere elimizi değdirmemiz gerekmekte ki başarılı bir sonuca ulaşmak hem zorlaşmak, hem da olması gerekenden fazla vakit alabilmekte.

Oysaki amacımız bizlerin daha verimli çalışması daha verimli sonuçlar ortaya koyması, işi daha az eforla yaparak, hem bizlerin hem de iş biriminin mutlu olması diyebiliriz. Bu nedenle Data Integration konusunda değişen koşullara ayak uydurabilmek amacıyla Parametre kullanımı bizler için vazgeçilmezler arasında.

Parametre kullanımı ile Business logic imizi uygulamanın dışında yönetebilme şansı elde ederek, uygulamalarımız değişiklikler karşısında daha esnek olmasını amaçlamaktayız. Her business ın kendine has kuralları vardır ve günümüzün değişen koşullarına ayak uydurabilmek amacı ile parametrik olarak kurallara yaklaşımımız ile business çeviklik ve atikliğe sahip olmuş oluruz.

Data Integration Tool nuz ister Informatica, ister SSIS, ister ODI olsun, aynı amaçlarla parametre kullanımına başvurmaktayız.

Bir mapping imiz olduğunu düşünelim. Bu mapping in farklı logic ler için farklı sonuçlar oluşturması gerekmekte. Aynı mapping i tekrar oluşturup farklı logic için çalıştırmak oldukça meşakatli bir yöntem olacaktır. Tek bir mapping i bu farklı logic ler için çalışabilmek üzere esneklik kazandırmak daha kısa sürede, daha efektif yapılmış bir iş olacaktır. Bir parametre dosyası oluşturup, logic imizi tanımlayan kuralları bu dosyada belirtip, logic imizi değiştiğinde bu klasöre gidip logic imizi update etmemiz yeterli olacaktır. Böylece mapping i update etmek zorunda kalmamış olacağız her logic değişikliğinde.

Informatica da birçok farklı yerde parametre kullanımına başvurmaktayiz. Bunlar: Mapping, Workflow, Session vs. bazında olabilmekte. Oluşturmuş olduğumuz parametre lerin değerlerini Parameter File larında tutmaktayız. Farklı level larda oluşturmuş olduğumuz parametre leri aynı file ya da farklı file da saklayabilirsiniz.

Parametre lere birçok yerde ihtiyaç duyabilmekteyiz. Örneklerle kalıcı hale getirelim:

Mapping Parameter: Incremental ETL sürecinin yönetiminde tarih aralıklarını dynamic olarak parametre ile belirleyebiliriz. Her gün bir önceki günün datasının aktarımını yaptığımızı düşünelim startdate ve enddate i, değişen zaman aralıklarını (sysdate-1 gibi) tanımlayarak data aktarımını yönetebiliriz. Hatta datayı belirli tarih aralığı için tekrar atmamız gerektiğinde parametre lerimize bu tarih aralığını tanımlayarak Mapping e herhangi bir müdahele olmaksızın sadece parametre lerin değerlerini değiştirerek kısa bir sürede işlemimizi sürdürebiliyor olmaktayız.

WorkFlow Parameter: Source ve target ları parametrik olarak tanımlayıp, target db de, tablo da bir değişiklik olduğunda parametre yi değiştirmemiz yeterli olacaktır.

Ya da Workflow da bazı session ların çalışmasını istemezsek ve bu sürekli oluyorsa bunu parametreler aracılığıyla yapabiliriz. Link task a parametreyi ekleyerek false ya da true olmasına sonraki adıma geçip geçmeyeceğini belirtebiliriz.

Parametre dosyasının lokasyonunu da parametre olarak tanımlayabiliriz.

Power Center da parametreyi nasıl oluşturuyoruz?

Örnek üzerinden konuyu anlatacağım. ODS schemasındaki ODS_Sales tablomuzdaki dataların Sales_Date kolonu baz alınarak aktarımının gerçekleştirileceğini düşünelim.

Tabloya baktığımızda 2002 – 2003 yılları arasındaki verileri içermekte.

param1.PNG

Biz her gün bir önceki günün datasını aktarmakta olduğumuzu düşünelim, sonrasında 2002 yılının mayıs ayının verisinin yanlış aktarıldığını bu nedenle tekrar aktarmak zorunda olduğumuzu düşünelim, bu nedenle çeşitli değişiklikler yaparak bu durumu yöneteceğiz. Örneğimizde olduğu gibi dataların yüklenme aralığında herhangi bir değişiklik olabilmekte. Bu nedenle tarih aralıklarını parametre olarak tanımlayıp, değişen koşullara uyum sağlayacağız. Böylece mapping imiz oldukça flexible olacak, hangi tarih aralığının datası aktarılmak istenirse istensin Mapping imde bir değişiklik yapmadan sadece Parameter File ı güncelleyerek işlemi sonlandıracağım.

Power Center Designer ekranında ODS_Sales ten datayı STG_Sales tablosuna aktarmak üzere mapping i oluşturuyorum. ODS_Sales ile aynı yapıda STG schemasında STG_Sales tablosu oluşturuyorum. Mapping i Extract, Load mantığında oluşturuyorum.

param2.PNG

Mapping de kullanacağım parametre leri oluşturmak için üst panelden Mapping >>Parameters and Variables ı seçiyoruz.

param3.PNG

Start_date ve End_Date parametre lerini oluşturuyoruz. Type olarak parameter, DataType olarak string tipini seçiyoruz. Bu ekranı aynı zamanda Variable oluşturmak için de kullanıyoruz. Parameter ile variable ın farkını kısaca açıklayalım: Parametre nin değerini runtime da önce belirlersiniz ve o değer çalışma sırasında değişemez ama variable ın değeri çalışma sırasında değişebilir. For döngüsüyle çalışırken i=0 dan başlayıp i nin değerinin +1 ile aratarak devam etmesi gibi düşünebilirsiniz variable ın çalışma mantığını. Parametre i=1 ise çalışma sırasında 2 olamaz 1 ile çalışır.

Parameterenizde expression varsa IsExpVar özelliğini True yapmamız gerekmekte. Böylece, ifadeyi validate etmeden önce parametre değerlendirilir. False olarak özelliği belirtirseniz her seferinde parametre aynı değere eşit olur.

param6.PNG

Amacımız start ve end_date i verinin aktarılma tarih aralığını belirlerken kullanmak olduğu için, SQ ya bu koşulu yazıyorum. Tabiki string tipinde oluşturduğum parametre leri date tipine çeviriyorum.param5.PNG

Mapping i kaydediyorum.

WorkFlow Manager ekranına geçip, wf mi oluşturuyorum.

param7.PNG

Parametre lerin hangi dosyadan okunacağını belirtmek için WorkFlow u Edit lemeye ihtiyacımız var. Properties >> Parameter File Name e Parametre dosyasının lokasyonunu belirtiyorum.

param8.PNG

Parametre dosyama parametre leri şu şekilde kaydediyorum. Global seviyesindeki parametre oluşturduğunuzda her yerden bu parametreyi kullanabiliyor olmaktayız. Mapping seviyesinde de oluşturabilirdim doğrudan ama bu şekilde tercih ettim.

param9.PNG

Workflow u çalıştırdığımda 4911 satır verinin aktarıldığını görebilmekteyiz. 2002 Mayıs ayının verisinin tekrar STG tablosuna aktarılması gibi ihtiyaç oluştuğunda, zaten yapımızı bu konuda esnek bir şekilde oluşturduğumuz için sadece parametreleri editlemek yeterli olacak.

Mayıs ayının verisinin STG den silip, tekrar aktarımı gerçekleştireceğiz.

param10.PNG

Parametreleri sadece 2002 yılının Mayıs ayı verilerinin aktarımını gerçekleştirebilmek üzere güncelliyorum.

param11.PNG

Tekrar WF i çalıştırdığımızda 219 satır verinin aktarımını gerçekleştirdiğimizi görebilmekteyiz.

Bu yazımda, Parametre nin ne olduğu, hangi amaçlarla Data Integration dünyasında kullandığımızdan, Informatica da parametre nin nasıl oluşturulduğu ve en son Mapping Parametre si ile ilgili örnek çalışma yaparak, Parametre konusunu anlatmaya çalıştım.

Informatica da Parameter konusunun devamını sonraki yazılarda inceleyeceğiz.

Keyifli günler…

Şeydanur Sandıkçı

Reklamlar

Etiketler:, , , , , , , , , , , , , , ,

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Connecting to %s

%d blogcu bunu beğendi: