Read Multiple Files With Informatica

Merhabalar,
Bu yazımı bir klasörün içindeki birden çok dosyanın nasıl okunacağı anlatmak amacıyla ele alıyorum.
Buradaki kritik nokta her bir file ın tek bir mapping in çalışması ile okunmasının sağlanması. Yani bir dosyayı okuduktan sonra diğer dosyayı okumaya başlamasını sağlamamız gerekmekte. Böylece birden fazla dosyanın ilgili target a aktarılması için birden çok mapping hazırlamak zorunda kalmayacağız.
SSIS te Foreach komponenti ile yaptığımız bu işlemi Informatica Power Center da Foreach Task ı olmadığı için farklı yöntemle gerçekleştireceğiz.
Şirketlerin haftalık satışlarını ayrı ayrı excel dosyalarında tuttuklarını düşünürsek, geçmiş 5 yıllık satış verisini database e aktarmamız gerektiğinde oldukça ihtiyaç duyacağımız bir yöntem olacaktır. 52×5 =260 tane mapping oluşturmak tabiki başvuracağımız bir yöntem olmayacaktır.
Demo üzerinden ilerleyerek çalışmamızı daha kalıcı hale getirelim.
İki farklı txt dosyasında Employee bilgilerini sakladığımızı düşünelim.
Oracle da bulunan Employee tablomuza bu dataların aktarımını gerçekleştireceğiz. SourceFile klasöründeki bulunan hangi dosyaları okuyacağını bildirmek üzere File_List dosyası oluşturuyorum. Okumak istediğim dosyaların ismini yazıyorum bu dosyaya.
Power Center ı açıp source ve target larımı ekliyorum.
Source olarak sadece Employee1.txt yi ekliyorum, zaten amacımız her bir source u eklemeden hepsini tek bir mapping ile target a aktarabilmek.
Daha önce oluşturmuş olduğum Oracle target tablomu ekliyorum.
Mapping designer ekranına geçip mapping imizi oluşturmaya başlayabiliriz.
Herhangi bir transformation yapmadan Target a aktarım yapmak istediğim için ilgili Port ları birbirine bağlıyorum. Mapping işlemim bittikten sonra, validate ettikten sonra, Workflow Manager ekranından workflow u oluşturmaya başlıyorum.
wf_Read_Multiple_File adında wf create ettikten sonra, Session Tak ekleyerek hangi Mapping i çalıştıracağımı söylüyorum, sonrasında Link task ile Start ve Session Task ı birbirine bağlıyorum.
Asıl önemli nokta burası. Dedikki birden fazla dosya üzerinde dönerek okumak. Hangi dosyaların üzerinde dönerek okuma işlemi yapacağını belirtmek için File_List dosyası oluşturmuştuk. Bu ayarlamaları wf içinde yapmamız gerekmekte.
Session Task ı editliyorum. Mapping segmesinden Source u seçiyorum.
Source File Type: Indirect,
Source File Directory: Source ların bulunduğu klasör,
Source File Name: Üzerinde dönerek okuyacağımız Source dosyaların isimlerini yazdığımız dosyanın ismini yazıyoruz
Wf i kaydedip çalıştırıyoruz. Session ın Log una baktığımızda 5 satır verinin Target a aktarıldığını görebilmekteyiz.
File_List te yazılı olan dosyaları okuduğunu belirttik, bunu test etmek amacıyla Employee3 isminde bir dosya ekliyorum.
Target tablomu truncate ederek çalıştırıyorum. Target tablomuza baktığımızda sadece File_List te yazılı olan dosyaları okuduğunu görebilmekteyiz.
Umarım sizler için faydalı bir yazı olmuştur.
Keyifli günler..
Şeydanur Sandıkçı
Son Yorumlar