Bu makalede Visual Studio ile hazırlayacağınız SSIS packages kullanılan araçlardan ve birkaç farklı bakış açısından bahsedeceğim.
Birçok işte olduğu SSIS package hazırlarken de kendi kurum ve kurumlarımızın ihtiyaç ve planlarına yönelik olarak yapabileceklerimizi kendimize göre ayarlayabiliriz.
Görsel – 1
Bir Execute SQL Task ile yapabileceklerimizden birkaç tanesine birlikte bakalım.
Görsel – 2
SQLSourceType kısmında kullanabileceğimiz 3 farklı seçenek bulunmaktadır,
- Direct input: SQL sorgusunu doğrudan SQLStatement kısmına yazabilmemizi sağlar.
- File connection: Kaydetmiş olduğunuz bir SQL komut dosyasınızı FileConnection ‘dan direk sorgularınızın çalıştırılmasını sağlar.
- Variable: Variables olarak belirlemiş olduğunuz ve bu menüden kontrolünü sağlayarak görüntüleyebileceğiniz bir değişkeninizden SourceVariable kısmında belirterek çalıştırılmasını sağlar.
Belirlemiş olduğunuz SQLSourceType ile SQL Task Execute olduğunda direk bir sonraki adıma geçebilir veya buradaki çıktınızı “Result Set” kısmında bir değişkene de atıyabilirsiniz.
SSIS Toolbox içerisinde bulunan Containers sekmesinden farklı Container çeşitleri bulunmaktadır bunlardan biri olan For Loop Container ‘a göz atalım.
Görsel –3
Görsel – 4
Görsel – 5
For Loop sekmesi döngünün çalışmasını sağlayan klasik for döngüsü mantığını tanımladığımız ve sonuç aldığımız kısım vardır burada yer alan:
- InitExpression: Döngünün başlatıldığı değişkeni alır.
- EvalExpression: Döngünün koşul kısmıdır.
- AssignExpression: Döngü her bir tur tamamlandığında InitExpression adımında belirlenen değişkenin güncelleyerek döngünün ilerlemesini sağlar.
Expressions alanı, For Loop Container ‘ın dışındaki paketleri ya da parametreler gibi dinamik öğeleri kontrol etmek ve koşullara bağlı olarak değer atamalarını otomatikleştirmek için kullanılabilir. For Loop Container her bir adım güncellemesinde değişkenleri dinamik olarak ayarlayabilir, koşullu mantıklar geliştirerek belirli koşullar sağlandığında veya beklenen koşul dışında gelişen durumlar gibi mantıklar geliştirerek güncelleme yapabilir, For Loop ile ilişkisi olmayan ancak döngü sırasında kullanılan diğer değişkenlerin değerlerini hesaplayarak kullanılabilmesi gibi koşullarda ihtiyaçlarınızı karşılayabilir.
Package süreçleri adım adım ilerlerken farklı durumlar veya farklı sonuçlar için package farklı sonuçlanmasını isteyebiliriz peki bu durumlar nasıl bir yol izlememiz gerek diye düşündüğümüzde ise bu sorunun çözümü için araçları birbirine bağlantısını sağladığımız Constraint çıkıyor.
Evaluation operaion kısmında bulunan:
- Constraint: Önceki task başarılı, hatalı veya uyarı ile sonuçlandığında çalışmasını sağlar.
- Expression: Koşul yazabilmemize olanak sağlar, belirlenen koşulu sağlaması halinde bir sonraki task ‘a geçiş sağlar.
- Expression and Constraint: Bu seçenek, hem bir kısıtlama hem de bir koşulu birlikte kullanılmasını sağlar, iki koşulun da sağlanması gerekir.
- Expression or Constraint:Bu seçenekte de, hem bir kısıtlama hem de bir koşulu sadece birinin sağlanmasının yeterli olduğu durumu ifade eder.
Görsel – 6
Görsel – 7
Görsel – 8
Yukarıdaki görsellerde örnek olarak gösterdiğim şekilde ben mevcut ay ocak olup olmadığının kontrolünü sağlayarak buna göre iki farklı yol belirledim package ‘da sizlerde ihtiyaçlarınıza göre yöntemler belirleyebilirsiniz.
SSIS Toolbox içerisinde bulunan Common sekmesinden “Conditional Split” göz atalım.
Görsel – 9
Görsel – 10
Çalışma düzenimize Conditional Split ekleyerek içine girdiğimize bizi karşılayacak olan ekran Görsel – 10 da gördüğümüz şekilde olacaktır, şimdi örneğimiz ile kullanımı detaylandırarak anlamlandırmaya çalışalım.
Görsel – 11
İki farklı kaynaktan (OLE DB Source) gelen verileri birleştirerek (Union All) Conditional Split ile hedef öncesinde koşul oluşturarak verimizi bu koşul doğrultusunda hedef tabloya insert edeceğiz. İlgili Package içerisinde kullanmış olduğumuz değişkenler ve parametrelere (Variables and Parameters) erişebilir kolonları (Columns) görüntüleyerek kullanabiliriz. Sağ üstte bulunan ekranda ise Fonksiyonlar (Functions), veri tipi dönüştürmeleri (Type Casts) ve operatörleri (Operators) görüntüleyerek bunların kullanımı hakkında bilgi alabilir ve kullanabilirsiniz.
Örnek olarak NULL Functions olan ISNULL ile KayitTarih kolonunun kontrolünü sağladım ve bunu “Null Kayit” ile tuttum, KayitTarih kolonununda NULL olmayan değerleri ise “Gecerli Kayit” ile tuttum. “Gecerli Kayit” içerisinde bulunan verileri hedef tabloma insert ederek süreci tamamladım, isteseydim KayitTarih kolonununda NULL olan kayıtlarıda hedef tabloma insert ederek süreci tamamlayabilirdim bu tamamen benim tercihim ve ihtiyacıma yönelik, sizlerde bu yöntem ile kendi ortam ve ihtiyaçlarınıza yönelik olarak farklı şekillerde kullanabilirsiniz.
Visual Studio ‘da SSIS Package Tools örnekleri ile üzerinde durmaya çalıştığımız makalemizin sonuna geldik, bir sonraki makalede görüşünceye dek iyi ki varsınız, sevgiler 😊
0 Yorum