SSIS Export Column Component

12. January 2010

SSIS içerisinde Export Column ne işe yarar diye uzun zamandır düşünüyordum. En sonunda rastgele bir denemede oldukça faydalı bir şekilde kullanılabileceğini tespit ettim.

Öncelikle Export Column Component'i Dataflow içerisindeki bir veriyi okuyup dosya sistemine yazmaya yarıyor. Yani; en anlaşılır ifadesiyle; örneğin: veritabanında tutulan bir imaj dosyasını imaj olarak dışarı aktarır.

Dışarı aktarma işleminde temel olarak 3 veri tipi kullanılmakta. Bunlar sırasıyla DT_TEXT, DT_NTEXT, DT_IMAGE.

Basit ve anlaşılabilir olması açısından DT_IMAGE dışarı aktarımına birlikte bakalım.

Önce basit bir SSIS Paketiyle başlayabiliriz. İçerisinde bir adet Dataflow olan ve dataflow'un içerisinde de OLEDB Source, Derrived Column, Export Column component'leri bulunan bir sistem düşünelim.



Oledb Source ile SQL Server 2005 üzerinde içerisinde DT_IMAGE tipli bir kolon barındıran herhangi bir tabloyu seçelim. Mesela benim örneğimde MS Navision 4.0 SP3 Sql veritabanında Item tablosu ve Picture kolonu kullanılmıştır.



Derrived Column ile şimdilik rastgele bir Dosya ismi türetiyorum. Örn: c:\UrunResimleri\[Urun No].Jpg (Dikkat Escape Char nedeniyle "c:\\UrunResimleri\\[Urun No].jpg" yazmak durumunda kaldım.) Normalde Derrived Column'u kullanmanız gerekmez eğer ki veritabanında aynı zamanda resimlerin nereye export edileceğine dair bir bilgi bulunuyorsa onu da SQL içerisine dahil ederek kullanabiliriz. Derrived Column'un yararı dinamik isimler elde etmek istiyorsanız faydalıdır.




Export Column component'ine gelecek olursak detaylı bir şekilde ayarlarını anlatmak gerekecektir.

Öncelikle gerekli bağlantıları yaptıktan sonra Export Column Component'ini açtığımızda önümüze gelen ekranda "Extract Column" alanına DT_IMAGE kolonumuzu seçmeliyiz. "File Path Column" alanı ise fiziksel olarak DT_IMAGE alanından elde ettiğimiz resmi nereye koyacağımızı gösterir bilgiyi istemektedir. Bunu dışında "Allow Append", "Force Truncate" ve "Write Byte-Order Mark" isimli seçenekleri belirlememiz gerekmektedir. En basit ifadesiyle "Allow Append" mevcut dosyanın sonuna gelen veriyi eklemek için kullanılır. "Force Truncate" adından da anlaşılacağı gibi eğer çevirim sırasında bir Truncation olursa exception yaratmaktansa veriyi Truncate etmeye zorlayacaktır. ("Write Byte-Order Mark" hakkında yeterli araştırma yapmadım henüz ama MSDN'de çeşitli açıklamalar vardı.) (Bu özellikler hakkında daha fazla bilgi ve istisna durumları için Bkz: http://msdn.microsoft.com/en-us/library/ms188479.aspx)

Nihayetinde paketi çalıştırdığımızda ilgili klasörün altında istediğimiz formatta dışarı aktarılmış resmi görebiliriz.

 

Dataflow Components ,

Add comment




biuquote
  • Comment
  • Preview
Loading