Daha önceki makalemizde SSIS ‘e giris yapmistik. Bu makalemizde Data Flow içerisinde bulunan bilesenlere deginecegiz. Ilk olarak Data Flow hakkinda biraz bilgi vermeye çalisalim.
Bu makaleyi okumadan önce SQL Server 2008 Integration Services – Genel Bakis isimli makalemizi okumaniz tavsiye edilir.
SSIS sources, transformations ve destinations olmak üzere üç farkli data flow bileseni içermektedir. Asagidaki diyagram basit bir data flow yapisini göstermektedir.
Sources; iliskisel veritabanlarinda, dosyalarda veya analysis servicesda tutulan verilere erismek için kullanilir. Baglanacagimiz kaynak tipine göre farklilik göstermektedir. Data flow içerisinde bulunan sources bilesenlerinde bir output ve birçogunda da ek olarak bir error output bulunur.
Asagidaki tabloda SQL Server Integration Services in destekledigi sources’larin listesi asagidadir.
Source |
Tanim |
ADO NET Source |
.NET Framework data provider türü kaynaklarda veri almak için. |
Excel Source |
Excel dosyalarindan veri almak için. |
Flat File Source |
Txt, csv uzantili dosyalarda veri almak için. |
OLE DB Source |
OLE DB provider türü kaynaklarda veri almak için. |
Raw File Source |
Dosyadan Raw data türünde veri almak için. |
Script Component |
Scriptler data yükleme düzenleme veya yazma için kullanilabilirler. |
XML Source |
XML uzantili bir dosyadan veri çekmek için. |
Transformations; veriyi degistirme, isleme ve temizleme islemleri için kullanilir. Transformations ait input ve outputlar gelen ve çikan verideki kolonlari tanimlarlar. Bazen tek bir inputa karsilik birden fazla output olabildigi gibi, birden fazla inputa karsilik tek bir outputta olabilir. Transformations larda hata durumunda hatali veriyi çikti olarak üreten bir error outputa sahiptirler. Örnegin string bir alani integer tipine çevirmek istedigimizde bu veriyi normal outputtan degil error outputtan çikarir.
Transformations |
Tanim |
Aggregate |
Average, Sum ve Count gibi islemleri yapmak için kullanilir. |
Audit |
|
Cache Transform |
|
Character Map |
|
Conditional Split |
|
Copy Column |
|
Data Conversion |
Farkli veri tiplerini birbirine çevirmek için kullanilir. |
Data Mining Query |
|
Derived Column |
Yeni bir kolon eklemek için kullanilir. |
Export Column |
Data flowdaki veriyi bir dosyaya yazmak için kullanilir. |
Fuzzy Grouping |
Veri içinde birbirine benzeyen kayitlari gruplara ayirmak için kullanilir. |
Fuzzy Lookup |
Veri içinde alanlari referans tablosu ile karsilastirip benzerlerine çevirir. |
Import Column |
Dosyadaki veriyi alip data flowa eklemek için kullanilir. |
Lookup |
Tablodaki secondary key olarak atadigimiz kolonlarin tanim tablosundaki karsiliklarini getirmek için kullanilir. Her satirda tanim tablosuna gitmek maliyetli oldugu için lookup bu tanim tablosunun içerigini cachede tutar. |
Merge |
Union islemi yapar. Birden fazla source u birlestirir. Merge kullanmak için kaynaktan gelen veriler sirali olmalidir. Bunun için mergeden önce sort task ini kullanabiliriz ama tavsiye edilmiyor. Tavsiye edilen kaynakda sort etmektir. Bunun için Kaynaktan veri alinirken order by komutu ile alinmalidir. |
Merge Join |
|
Multicast |
Çiktiyi çoklamak için kullanilir. Örn olusan çikti birden fazla task için input olarak kullanilacaksa o zaman Multicast kullanilarak ayni verinin kopyalari olusturularak çoklama islemi yapilir. |
OLE DB Command |
Her bir satir için sorgu çalistirmak istenildiginde kullanilir. Sadece insert ve update ve delete islemleri için kullanilabilir |
Percentage Sampling |
Örnek seti olusturmak için kullanilir. Yüzde verdigimizde kayittan o yüzdeye gore random kayit getiriyor. |
Row Sampling |
Percentage Sampling gibi çalisir fakat yüzde yerine kayit sayisi verilir. |
Pivot |
Veriyi matrise çevirmek için kullanilir. |
Row Count |
Toplam kayit sayisini bir degiskende tutar. |
Script Component
|
C# veya basic.NET de kod yazarak islem yapabilecegimiz komponent. |
Slowly Changing Dimension |
|
Sort |
Veriyi siralamak için kullanilir. |
Term Extraction |
Text Mining için kullanilir. |
Term Lookup
|
|
Union All |
Verilen iki farkli kaynaktaki veriyi alt alta birlestirir. Kaynaklarin kolon yapilari uyumlu olmalidir. |
Unpivot |
|
Destinations; source dan alinip transformasyona tabi tutulan verinin baska bir kaynaga veya hafizada olusturulan bir datasete yüklenmesini saglar.
Destinations |
Tanim |
ADO NET Destination |
ADO.NET uyumlu bir kaynaga veri yazmak için kullanilir. |
Data Mining Model Training |
|
DataReader Destination |
DataReader içinde veriyi göstermek için kullanilir. |
Dimension Processing |
Veriyi SQL Server Analysis service ya yüklemek için kullanilir. |
Excel Destination |
Veriyi Excel dosyasina yazmak için kullanilir. |
Flat File Destination |
Veriyi txt veya csv uzantili dosyaya yazmak için kullanilir. |
OLE DB Destination |
Veriyi bir OLE DB provider a yazmak için kullanilir. |
Partition Processing |
Veriyi Analysis Services Partition ina yazmak için kullanilir. |
Raw File Destination |
Raw datayi bir dosyaya yazmak için kullanilir. |
Recordset Destination |
ADO Recordset olusturmak için kullanilir. |
SQL Server Compact Destination |
SQL server Compact sürümüne veriyi yazmak için kullanilir. |
SQL Server Destination |
Veriyi bir SQL Server veritabanina yazmak için kullanilir. |
Ek olarak Data Flow bir bilesenin çiktisini baska bir bilesene girdi olarak baglayan path adinda bir bilesen içerir. Asagidaki resimde de görüldügü gibi bilesenler üzerinde iki türlü path vardir. Bunlardan yesil olani çikti için kirmizi olani ise hata çiktisi için kullanilir.
Bu makalemizde Data Flow içinde bulunan bilesenleri tanimaya çalistik. Bir sonraki makalemizde bu bilesenleri kullanarak basit bir örnek yapacagiz. Bir sonraki makalemizde bulusmak üzere.