
SQL Server Integration Services (SSIS) Nedir?
SQL Server Integration Services (SSIS) verilerin kaynak dosyasından hedef kaynağına iletilmesi amacı için kullanılan bir ETL sürecidir.Bu veri kaynakları text (metin) dosyası olarak tutulabilen düz dosya veritabanları,ilişkisel veritabanları yada xml veri dosyaları olabilir.Aşağıdaki şekilde kaynak dosyasından okuma yapılarak veriler alınır.Ardından yazma yapılarak hedef dosyasına iletilir.
Microsoft’un geliştirdiği ETL aracı olan SSIS projelerinde bir yada birden fazla SSIS paketi bulunabilir.Bu paketlerin kullanımında iki farklı model vardır.
Project Deployment Model=Birden fazla paket tek bir projenin içinde çalıştırılır.
Package Deployment Model=Paketler bağımsız olarak çalıştırılır.
Visual Studio sürümümüze göre SQL Server Data Tools aracını kuralım.Bende Visual Studio 2013 olduğu için bu bağlantıyı kullandım.İlgili aracı kurduktan sonra File->New->Project->Business intelligence->Integration Services->Integration Services Project diyelim ve yeni bir proje oluşturalım.Bu işlemlerin ardından aşağıdaki ekran açılır.
Control Flow=Control Flowlar task ve container’lerdan oluşur.İş akışının yönetildiği, kullanılacak verilerin düzenleneceği alan burasıdır.
Data Flow= Data Flowlar verilerin alınacağı kaynağı ,hedef kaynağı ve üzerinde yapılacak değişiklikleri tutar.
Control Flow ve Data Flow’un çalışma mantığı aşağıdaki gibidir.
Şimdi metin dosyasında bulunan verileri veritabanına ekleyecek bir demo yapalım.
Text dosyamdaki verileri veritabanına aktarmak istediğim için önce control flow sekmesine gelip ,data flow taskını seçerek projeme ekliyorum.Ardından Data Flow sekmesine gelerek aşağıdaki şekilde görüldüğü gibi veri kaynağı olan Flat File Source ve hedef kaynağı olan Ole Db Destination araçlarını projeye dahil edelim.
Şimdi ise Flat File Source bölümüne çift tıklayalım ve editörümüzde bulunan new butonuna tıklayalım.
Yukarıda bahsini ettiğim text kaynak dosyamızı seçelim.
Şimdi sıra Ole Db Destination ayarlarına geldi.Tablomuzun bulunduğu veritabanını seçelim.
Daha sonra aşağıda da görüldüğü gibi Mappings sekmesine gelip tablomuzun alan adlarını eşleştirelim.
Ve son olarak projemizi çalıştıralım.
Şimdi ise verilerimiz eklenmiş mi bakalım.
Örnek)Metin dosyasında ve çalışan tablosundaki aynı kişilerin görüntülenmesini istersek aşağıdaki şekildeki gibi bir yol alabiliriz.
Verilerin aktarılmasını istediğimiz için Control Flow sekmesinden Data Flow Task ekleyelim.
Ardından Data Flow sekmesinden OLE DB SOURCE ifadesini ekleyelim ve kaynak tablosunu seçelim.
OLE DB SOURCE ile Sort ifadesini bağlayalım.
Şimdi sıra metin dosyasındaki verileri almaya geldi.Bunun için Flat File Source ifadesi eklenir.
Yine Sort ifadesi ile bağlanır.
Sort ifadesini kullanmazsak aşağıdaki hata mesajını alırız.
Sort ifadesi verilerin sıralanmasını sağlar.

Şimdi joinleme işlemi için Merge Join ifadesini projeye ekleyelim.Ve listelenmesini
istediğimiz alanları seçelim.Sıra hedef kaynağını seçmeye geldi bunun için OLE DB Destination ifadesi eklenir.
Ekleme yapmak isteğimiz tabloyu seçelim. Ve böylece işlemi sonlandıralım.
Örnek)Bu sefer oluşturduğumuz tablodaki verileri metin belgesine aktaralım.

Çalışanlar,bilgiler adında 2 tane tablom ve 1 tanede metin belgem var.Çalışanlar tablosunda ekle adında 1 tane triggerımız var.
1
2
|
CREATE TRIGGER ekle on [dbo].[calisan] after
INSERT as BEGIN INSERT INTO bilgiler Select * from inserted end
|
OLE DB SOURCE ile bilgiler tablosunu seçelim.
FLAT FİLE Destination ile verilerimizi göndereceğimiz belgeyi seçelim.
Ve çalışanlar tablosuna veri ekleyelim.
1
|
INSERT INTO [dbo].[calisan] VALUES(4,'EBRAR','AL')
|
Şimdi projemizi çalıştıralım.
Belgemizi açtığımızda verilerin eklendiğini göreceğiz.
Leave a reply