SQL Server Integration Services (SSIS), Microsoft’un farklı kaynaklardan veri çekme, dönüştürme ve hedefe yükleme (ETL – Extract, Transform, Load) işlemleri yapar. Karmaşık iş süreçlerini otomatikleştirir. Verileri temizleme, birleştirme, ayrıştırma ve dönüştürme yetenekleri sunar. Belirli zamanlarda veya olaylara bağlı olarak işlemleri tetikleyebilir.
SSIS mevcut bir sql server sürülümü ile birlikte kurulabildiği gibi önceden yüklenmiş sql server üzerine eklenebilir.
Yeni bir Features eklemeden önce sunucumda kurulu olan sql server’da hangi servislerin olduğunu gözlemleyelim.

SSIS ekleyeceğim sunucum üzerine Sql Server setup dosyasına sağ tıklayıp Run as administrator olarak çalıştırıyorum.

Daha sonra gelen ekranda Installation bölümünde New SQL Server stand-alone installation or add features to an existing installation kısmına tıklıyorum. Sql server sürümünün herhangi bir önemi yoktur. Tüm sürümlerde aynı adımlarla kurulum yapabilirsiniz.

Aşağıdaki ekranda ekranda specifiy a free edition veya elimizde herhangi bir lisans varsa enter the product key bölümünü seçiyoruz.
Bir lisans anahtarına sahip olduğum için Enter the product key bölümünü seçip Next diyorum.

Gelen ekranda I accept the license terms. diyoruz ve Next deyip bir sonraki adıma geçiyorum.

Bir sonraki ekranda Use Microsoft Update to check for updates seçeneğini seçmeyip Next deyip ilerliyorum.

Gelen ekranda kurulum için başlangıç adımlarının doğru yapılıp yapılmadığına dair özet bir ekran geliyor. Herhangi bir sorunla karşılaşmadığım için Next deyip ilerliyorum.

Next deyip bir sonraki ekrana geçtiğimizde yeni bir sql server instance kurulumu yapacağımız Perform a new installation of SQL Server 2017 seçeneğini seçebiliriz. Mevcut kurulu olan bir instance’a yeni bir özellik eklemek istediğimizde Add features to an existing of SQL Server 2017 seçeneğini seçiyoruz.

Mevcut kurulu olan instance’ı seçip Next deyip bir sonraki aşamaya geçiyorum.

Gelen ekranda yeni gelen Features’ları seçiyorum. Resimde dikkat ederseniz önceden seçilmiş olan instance Features’lar buzlanmış bir şekilde gözükmektedir. Integration Services seçimini yaptıktan sonra Next deyip bir sonraki aşamaya geçiyorum.

Gelen ekranda SQL Server Integration Services kısmında integration servisimizin çalışacağı bir servis hesabının seçilmesi gerekmektedir. Servis hesabı seçilmeyip default olan servis hesabının olmasında herhangi bir sakınca yoktur. Startup Type kısmı Automatic olarak ayarlanması gerekmektedir. İlgili ayarlamalardan sonra Next ile bir sonraki aşamaya geçilmesi gerekmektedir.

Gelen ekranda ne yüklediğimizin özet ekranını gördükten sonra Install deyip SSIS kurulum işlemlerine başlıyoruz.


Kurulum işlemi başarılı bir şekilde tamamlandı.

Sql Server Configuration Manager ekranında ilgili servisin yüklendiğini görmüş oluyoruz.

Yukarıdaki tüm işlemleri yaptıktan sonra Integration Servis kataloğunun manuel olarak eklenmesi gerekiyor.
SSMS üzerinden Integration Services Catalogs bölümüne sağ tıklanıp Create Catalog bölümüne tıklanır.

Gelen ekranda SSIS’in CLR stored procedure’lerin çalıştırabilmesi için Ortak Dil Çalışma Zamanı’nı (Command Langue Runtime) etkinleştirmek üzere ‘Enable CLR Integration‘ onay kutusunu işaretlememiz gerekmektedir. Bu yapı sp_configure üzerinden etkinleştirildiği zaman bu kutucuğun seçili olduğunu görmekteyiz.

sp_configure üzerinde önceden aktifleştirdiğimiz bu kısım seçilmiş bir şekilde karşımıza gelmektedir.
sp_configure 'clr enable',1
reconfigure
Aşağıdaki resimde aktif olunduğu görülmektedir.

Sql Server Servis’i başladığında SSISDB kataloğu için işlemlerin durumunun gerçekleştirilmesi için ‘SQL Server başlangıcında Integration hizmet procedure’ün otomatik olarak yürütülmesini etkinleştir’ seçeneğini işaretlememiz gerekmektedir.
Güçlü bir parola girildikten sonra OK ile işlemlerimizi sonlandırıyoruz.

İlgili kataloğumuzu oluşturduktan sonra katalog ile aynı isimde bir veritabanı oluşmaktadır. SSISDB veritabanının ismi değiştirilemez.

SSISDB veritabanının boyutunu yönetmek için SSIS geçmişi saklamayı değiştirmek isteyebilirsiniz, çünkü oldukça büyüyebilir. Bunun için içerisindeki verilerin ne kadar süre sonra silineceğini aşağıdaki komutla görebiliriz.
SELECT [property_name], [property_value]
FROM [SSISDB].[internal].[catalog_properties]
WHERE property_name IN ('OPERATION_CLEANUP_ENABLED', 'RETENTION_WINDOW');

SSIS sunucusu o kadar etkin kullanılmayacaksa varsayılan RETENTION_WINDOW süresini değiştirmemize gerek yoktur. Ancak, aktif kullanılacaksa ve SSISDB veritabanının çok büyük olmasından endişe duyuyorsanız ve 365 günlük geçmişi saklama zorunluluğunu değiştirebilirsiniz.
Bu örnekte RETENTION_WINDOW 90 gün olarak değiştireceğiz.
EXEC [SSISDB].[catalog].[configure_catalog] RETENTION_WINDOW, 90
Öncelikle bir ispac paketi eklemek için SSISDB altında bir bir folder oluşturulur. Daha sonra oluşturulan folder kısmında project bölümüne tıklanır.

SSIS’te deploy, bir SSIS projesini veya paketini SQL Server’daki SSIS Catalog (SSISDB)‘e resmi olarak dağıtma işlemidir. .ispac dosyasını (proje dağıtım dosyası) SSISDB’ye yükler. SQL Agent ile zamanlanabilir, ortam değişkenleriyle yönetilebilir. Modern sistemlerde deployment kullanılması gerekmektedir.
Import, genellikle tek bir .dtsx paketini SQL Server’ın MSDB veritabanına veya dosya sistemine kaydetmektir. Proje yapısını değil, tek paketleri aktarır. Tek bir paketi hızlıca yüklemek istediğinizde bu yapı kullanılmaktadır.
“Import” genellikle Package Deployment Model, “Deploy” ise Project Deployment Model ile ilişkilidir

Yukarıdaki resimde görülen Deploy Project.. bölümüne girilir. Aşağıdaki ekran resminde Next denilip bir sonraki aşamaya geçilmektedir.

Gelen ekranda ispac paketimiz seçilmektedir. .ispac (Integration Services Project Deployment File), bir SQL Server Integration Services (SSIS) projesinin dağıtım paketidir. Bu dosya, bir SSIS projesindeki tüm bileşenleri (paketler, parametreler, bağlantı yöneticileri, proje düzeyindeki ayarlar vb.) tek bir birim halinde paketler.

Sağ üst köşede Project Deployment seçeneği, projenin tek bir birim olarak dağıtılacağını belirtir. Bu modern ve önerilen yöntemdir.
Alt kısımda iki kavram karşımıza çıkmaktadır.
Project deployment file: Daha önce derlenmiş bir .ispac dosyasını seçmenizi sağlar. Zaten elinizde hazır bir .ispac dosyası varsa bu seçenek seçilmelidir.
Integration Services catalog: Daha önce SSIS kataloğuna yüklenmiş bir projeyi seçmenizi sağlar. SQL Server’da zaten dağıtılmış bir projenin yeni versiyonunu dağıtmak istediğinizde seçilmesi gerekmektedir. Önceden Project deployment file ile eklenmiş bir ispac paketini bu yöntem ile seçip ismini değiştirip yeni bir proje gibi deploy edebiliriz.
Eğer:
- Yeni bir proje dağıtıyorsanız → Project deployment file seçin ve .ispac dosyasının yolunu belirtin
- Varolan bir projeyi güncelliyorsanız → Integration Services catalog seçin ve katalogdaki projeyi seçin

Gelen ekranda import yapılacak sunucu ismi aynı zamanda path kısmında mevcut olan katolog kısmında yeni bir folder eklenmesi gerekmektedir. Connect deyip bağlantı sağlandıktan sonra Path kısmı aktifleşmektedir.

Aşağıdaki resimde SSISDB kök dizin bu kök dizin altında folder oluşturularak proje ekleme işlemi yapılır. Projelerin SSISDB altına eklenmesi önerilmez. Ayrıca ispac paketinin oluşturulacağı proje isminin AS400AKTARIM_2 olması gerektiğini yukarıda belirtiyoruz.

Yukarıdaki işlemin haricinde aşağıdaki resim gibi yeni bir klasör eklenmek istenirse SSISDB üzerine sağ tıklanıp Create Folder.. denilerek yeni bir folder eklenebilir.

Yukarıdaki seçimleri yaptıktan sonra connect deyip bağlantı işlemi test edilir. Daha sonra Next denilip bir sonraki işleme geçilmektedir.

Gelen ekranda Deploy denilip işlemler sonlanmaktadır. Başarılı bir şekilde işlemler gerçekleştirilir.

Sql server üzerinde SSISDB altında eklemiş olduğumuz ispac paketinin geldiğini görmüş oluyoruz.

Rapor alınması isteniyorsa aşağıdaki bölüme tıklanmaktadır.

Bu kısımda SSIS ile ilgili tüm başarılı ve başarısız sonuçları görebiliriz. Günlük takip edilmesi gerekmektedir. İlgili rapor bölümünde filtreleme yaparak failed durumalarını oluşma zamanlarını hata mesajını ve execution path bilgileri verilir proje sahibine..

Oluşturulan SSISDB kataloğunun altında bulunan YUNUS_AKTARIM klasörü altında bulunan Project kısmına sağ tıklayıp Deploy Project.. denildikten sonra yeni bir ispac paketi eklenebilir.

Gelen ekranda sadece sağ üst tarafta Project Deployment ifadesinin seçilmesi gerekmektedir. Neden seçilmesi gerektiğini yukarıda belirtmiştik. Daha sonra ki işlemler yukarıdaki yapmış olduğumuz işlemlerin tekrarı niteliğindedir. Path kısmında ispac paketinin seçilmesi gerekmektedir.

Yukarıdaki ekran resminden sonra gelen ekranda path kısmında catalog-klasör ve proje ismi belirlenir. /SSISDB/Yunus_AKTARIM/
ilgili uzantıdan sonra aşağıdaki resimde rastgele bir isim verilmiş.

Deploy yapıldıktan sonra belirttiğimiz isimde geldiğini görmüş oluyoruz.

Bir ispac paketini dış ortama çıkarmak için proje üzerine sağ tıklayıp Export seçeneğini seçerek dışarı çıkarma işlemini yapabiliriz.

Yukarıda da belirtmiştik aşağıdaki resim görüldüğü gibi yeni bir klasör eklenmek istenirse SSISDB kataloğunun üzerine sağ tıklanıp yeni bir folder eklenebilir.

İlgili Folder oluşturulduktan sonra Projelerimizi yeni folder altında oluşturabiliriz.


Resimde görüldüğü gibi yeni bir proje ilgili klasör altına deploy işlemi gerçekleştirebiliriz.

Gerçekte oluşturulan bir ispac paketinin belirli aralıklarla çalışması için bir job’a bağlanması gerekmektedir. Neden bir job!a bağlama gereği duyarız. Paketin belirli zamanlarda veya periyodik olarak otomatik çalışması için, Job adımlarıyla hata durumlarında alternatif akışlar tanımlamak, Job tamamlandığında veya başarısız olduğunda bildirim gönderilmesi
Şimdi aşağıdaki ilgili ispac paketimizin job adımlarını görmüş olalım.

Aşağıdaki resim yukarıdaki dtsx paketlerini işlemlerini yaptıktan sonra işlemini yaptıktan sonra belirtilen dizine backup ve kendi paketinin backup işlemini gerçekleştirmektedir.

Şimdi yukarıdaki job adımlarının nasıl yapıldığını görmüş olalım. Bu işlemleri yazılımcılar ile kordineli bir şekilde yapılması gerekmektedir.

Daha sonra advanced bölümünde ilgili jobımızın başarılı ve başarısız durumlarında nasıl bir senaryo yapacağını görebiliriz.

Tüm paketlerimiz ilgili job’a eklendikten sonra belirli bir zaman belirlenip belirli aralıklarla çalıştırılabilir. Kısaca dtsx paketleri çalıştırılır bu işlemden sonra backup işlemi gerçekleştirilir. Farklı ortamda backup’ın alındığı dizinde tekrardan ispac paketleri kullanılarak restore işlemi gerçekleşmektedir. Farklı ortamda bulunan ispac paketleri çalıştırılır. Yukarıda backup alınmış dizin işleminde restore işlemi yapılmaktadır. Aynı anda ispac paketleriyle kordineli bir şekilde çalışmaktadır.
Başka makalede görüşmek dileğiyle..
De ki: “Şüphesiz benim namazım, bütün ibâdetlerim, hayatım ve ölümüm, Âlemlerin Rabbi Allah içindir.” Enam-162