Integration Service yaygin olarak veri ambari (datawarehouse) uygulamalarinda farkli veya ayni tipteki veri kaynaklari arasinda verilerin tasinmasi ve dönüstürülmesi islemlerini yapabilecegimiz bir platformdur. Bu islemler extraction, transformation ve loading diye adlandirilir. Bazi kaynaklarda ETL kisaltmasi ile karsilasabiliriz bu kisaltma; Extraction transformation and loading kelimelerinin bas harflerinden olusmaktadir.
Integration Service paket hazirlama ve hata ayiklama için grafiksel araçlar ve sihirbazlar içerir. Bu sihirbazlar ile ftp islemleri, e-posta gönderme, SQL ifadelerini çalistirma, veri toplama ve yükleme islemleri, data temizleme gibi islemlerin yani sira aggregating, birlestirme kopyalama gibi transformation islemlerini de yapabiliriz.
Bu makalemizin amaci Integration Service e giris yapmaktir. Ileriki makalelerimizde nasil kullanildigina dair detayli örnekler verecegiz.
Bazi kisaltmalar (Makalemizde bizde bu kisaltmalari kullanacagiz):
BI: Business Intelligent (Is Zekâsi)
SSIS: SQL Server Integration Services
Paketlerin Temel Unsurlari
Bu kisimda paketlerin temel komponentlerinin tanimini yapmaya çalisacagiz. Paketler SSIS’ da data extract, transform ve load özelliklerini içeren bir nesnedir. Yeni bir paket olusturmak için BI Development Studio içerisindeki SSIS Designer kullaniyoruz. BI Development Studio yu kurmak için SSIS’i kurmak yeterlidir. Eger bilgisayarinizda. NET kurulu ise SSIS kurdugunuzda Dot NET içinde New Project ekraninda yeni bir proje tabi gelir. BI Development Studio da aslinda ayni yere referans etmektedir. BI Development Studio kullanmak için Dot NET in kurulu olmasi gerekmez, SSIS kurdugunuzda Dot NET de BI projeleri için gerekli olan bölüm otomatik olarak kurulur.
Temel bir paket asagidaki elemanlari içerir:
Control flow element
Her pakette en az bir control flow elementi olmak zorundadir. Control flow temel olarak tasks (görevler), containers (tasiyici) ve precedence constraints(control flow içindeki elemanlarin çalisma sirasini belirler) elementlerinden olusur.
Asagidaki diyagram alti task ve bir container elementi içeren bir control flow örnegidir. Tasklardan besi paket düzeyinde tanimlanmisken bir tanesi container içerisinde oldugu için container düzeyinde tanimlanmistir.


Control flow içerisinde tanimlanan containerlar iç içe tanimlanabilirler. Yani pakette bulunan bir Foreach Loop container içerisinde baska bir Foreach Loop container içerebilir ve bunun teknik olarak bir siniri yoktur.
Containerlar temel olarak ikiye ayrilir birincisi tasklari gruplamak için kullanilirken digeri döngü islemleri için kullanilir. Gruplama için Sequence container kullanilir döngü islemleri için ise Foreach Loop container ve For Loop container kullanilir, bunlar kodlama da kullandigimiz foreach ve for döngüleri ile ayni mantikta çalisirlar.
Task elementi
Task paket içerisindeki islerin yapildigi elementtir. SSIS birçok islemi yerine getiren farkli tasklar içerir. Bunlar:
· Data Flow task; Extract, transformation ve load islemlerinin yapildigi tasktir. Üzerinde duracagimiz en önemli task budur. Veri kaynaklarindan verinin alinmasi bu verinin istenilen yapiya çevrilerek üzerinde farkli islemler yapildiktan sonra yeni bir veri kaynagina aktarildigi taskdir. Bir control flow içinde birden fazla Data Flow task olabilir. Bunlarin çalisma siralarini precedence constraints ile belirleriz.
· Data Preparation task; dosya ve klasor kopyalama islemleri için, dosya ve veri download etmek için, web metotlarindan veya XML dokümanlardan dönen verileri kaydetmek için kullanilir.
· Workflow task; diger paket veya programlarda çalisan processlerle haberlesmek, bunlar arasinda mesajlasmak, WMI verilerini okumak ve WMI eventlarini izlemek için kullanilir.
· SQL Server task; SQL Server nesnelerine ve verilerine ulasmak, bunlar üzerinde kopyalama, kayit girme, silme ve degistirme(insert, copy, delete ve modify) islemlerini yapmak için kullanilir.
· Analysis Services task; Analysis service nesneleri olusturma bunlari degistirme ve silme ve çalistirma islemleri için kullanilir.
· Maintenance task; SQL Server üzerinde yönetici islemlerini yerine getirmek için kullanilir.
Precedence Constraints
Tasklarin ve containerlarin çalisma siralarini belirlemek için kullanilir. Aslinda control flow içerisinde bulunan elemanlarin birbirine çalisma sirasina göre oklar ile baglanmasidir. Containerlar içerisinde bulunan elemanlari da birbirine bu task ile baglar ve çalisma siralarini belirleriz. Herhangi bir ön baglantisi olmayan tasklar paketin ilk çalistirilmasi ile devreye girerler. Control flow üzerinde birden fazla ön baglantisi olmayan task varsa, hepsi ayni anda çalisirlar.
Data Flow Element
Control flow elementlerinden Data flow taskin yapacagi isleri tanimladigimiz elementtir. Yukarda data flow taskda da bahsettigimiz gibi datalarin veri kaynagindan toplanmasi, toplanan datalarin islenmesi ve üretilen yeni datanin yeni bir veri kaynagina yüklenmesi islemleri yerine getiren elemandir. Data Flowun ana elemanlari veri kaynagi, dönüstürme ve hedef kaynak olarak açiklanabilir. Bir control flow elementi içerisinde data flow elementinden istenilen sayida olusturulabilir. Kullanilmasi sart degildir.
Bu makalemizde SSIS’ e kisa bir giris yaptik. Bir sonraki makalemizde Data Flow Task üzerinde duracagiz. Data flow taskin çalismasi ile ilgili örnekler yaparak iki farkli veri kaynagi arasinda veri aktarimini ögrenecegiz.
Kaynak : SQL Server Books Online.