SSIS’de Conditional Split

Arkadaşlar merhaba. Daha önceki SSIS (SQL Server Integration Services) konulu yazılarımda,  farklı kaynaklardaki verileri kullanarak amacımıza uygun şekillerde dönüşümler gerçekleştirmiştik. Daha sonra ise hedef çıktımızı tek bir kaynağa indirgemiştik. Bu yazıda ise tam tersi; kaynak verimizi farklı çıktılara nasıl dağıtacağımızı SSIS’de Conditional Split kullanarak göreceğiz.

Yapacağımız işlemler için çok basit ve kolayca görülmesi için de kısa bir örnek veri hazırladım. Şekil-1’de gördüğünüz örnek veri üç kolondan oluşuyor. Müşterilerin isimleri, harcama tutarları ve ödeme tiplerinden oluşan veri kaynağımızı ben txt dosyasını kullanabilmek için Flat File Source kullandım.

Şekil-1: Veri Öngörünümü

 

Verilerimizi gördükten sonra OK deyip ekranı kapatabiliriz. Kullanacağımız görev editörü Conditional Split olacak. Conditional Split Editör ekranı üç bölümden oluşuyor. Şekil-2’deki bu bölümleri aşağıdaki gibi tanımlayabiliriz:

1-  Verilerin nasıl bölüneceğini tanımlayan ifadelerimizde kullanabileceğimiz; sütunları ve değişkenleri bu bölümde görebiliriz.

2- Veri akışında kullanacağımız sütunların nasıl bölüneceğini tanımlarken kullanabileceğimiz; fonksiyonları bu bölümde görebiliriz.

3- Seçtiğimiz sütunlar üzerinde kullanacağımız şartları tanımladığımız bölümdür. Bu koşullar öncelik sıralamasına göre girilmelidir. Aksi halde, bir koşul için doğru olarak değerlendirilen satırlar, aşağıdaki diğer koşul için kullanılamayacaktır.

Biz verilerimizi ödeme tiplerine göre farklı kaynaklara dağıtacağız. Bunun için birinci bölümdeki Columns seçeneklerini açarak Type kolonunu üçüncü bölüme sürüklüyoruz. Ödeme tipi koşulumuzu tip kolonuna K ve N olarak eşitlememiz gerekiyor. Bunu yaparken c# yazım kurallarına uymamız gerektiğini unutmayalım. Eğer yazımda bir yanlışımız olursa ilgili satır kırmızı renk ile yazılarak uyarı verilecektir. Koşulumuzu tanımladıktan sonra Output Name kısmına istediğimiz açıklamayı yazabiliriz.

Şekil-2: Conditional Split Editor

Ödeme tipi kolonundaki verilerin N veya K olmasına göre iki koşul tanımladık. Artık istediğimiz kaynağa bu verileri yazdırabiliriz. Ben yine txt dosyası için Flat File Destination görevini ekrana sürüklüyorum. Conditional Split görevinin ucundaki oku destination kaynağımız ile birleştirdiğimizde hangi çıktıyı elde etmek istediğimizi soruyor.  Şekil-3’te gördüğümüz comboBox seçeneklerinden ben öncelikle kredi kartını seçiyorum. Bir Flat File Destination daha kullanacağım ve bu defa nakit çıktısını seçeceğim.

Seçimlerimizi yaptıktan sonra her bir destination için çıktı dosyamızı seçmemiz gerekiyor. Bunun için göreve çift tıklayarak dosya yolunu seçiyoruz.  Eğer devam etmekte zorlanırsanız uygulama yazıma bakmanızı tavsiye ederim.

Şekil-3: Input-Output Selection

Tüm görevleri çalıştırdığımızda hiçbir hatayla karşılaşmadan verilerimizi kaynaklara yazılmış olarak görmeliyiz. Son durumda ekranda görev dağılımı da Şekil-4’teki gibi olmalıdır:

Şekil-4: Tasarım Ekranı ve Çıktılar

Böylece tanımladığımız iki farklı koşul sayısınca çıktı elde etmiş olduk. Tabii burada çıktı kaynaklarımızı aynı seçmek zorunda değildik, istersek herhangi birini sql de bir tabloya veya excele de alabilirdik. Artık ödemesini kredi kartı ve nakit olarak yapan müşterileri artık ayrı ayrı takip edebilir, çalışmalarımızı bu ayrıma göre kolaylaştırabiliriz. Bir sonraki yazımda görüşmek üzere.

 

Kaynakça

Kapak: https://www.pexels.com/search/disturbing%20data/

https://tr.linkedin.com/in/seyma-tasci-31316baa?trk=profile-badge

Yazar Hakkında
Toplam 14 yazı
Şeyma Taşçı
Şeyma Taşçı
Kocaeli Üniversitesi Endüstri Mühendisliği mezunu, aynı zamanda 4. sınıf MIS öğrencisi. İş Analisti olarak çalışıyor.
Yorumlar (Yorum yapılmamış)

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.

×

Bir Şeyler Ara