Gizem Akıncı
turkcell
Published in
4 min readOct 16, 2023

--

SSIS kullanarak SQL Server’dan Excel’e Data Transferi ve Mail İşlemleri

Merhaba arkadaşlar,

Bu yazıda, MSSQL’in geliştiricilere sunduğu SSIS aracını kullanarak veritabanımızdaki herhangi bir tablodaki verileri, kendi tasarladığımız Excel dosyasına nasıl aktaracağımız hakkında bilgi paylaşacağım.

Daha sonra, bu oluşturulan Excel dosyasını istenilen e-posta adreslerine nasıl göndereceğimizi inceleyeceğiz.

İlk olarak, Visual Studio üzerinden geliştirmelerimizi sağlayabilmemiz için bilgisayarımıza Microsoft Sql Server Data Tools kurulumunu yapmamız gerekiyor.

Yardımcı link: https://learn.microsoft.com/en-us/sql/ssdt/download-sql-server-data-tools-ssdt?view=sql-server-ver16#ssdt-for-visual-studio-2019

Bu kurulumu ben Visual Studio 2019 ile beraber kullandım, siz de kullandığınız VS sürümüne göre bir SSDT kurulumu sağlamalısınız.

Örnek Kurulum Ekranı

Kurulum bittikten sonra bilgisayar restart edilir, SSIS aracı bu durumda visual studio üzerinde kullanılabilir hale gelmiştir.

Visual Studio üzerinden File -> New -> Project adımlarından sonra Integration Services Project seçeneği ile yeni bir proje oluşturuyoruz.

Visual Studio Proje Oluşturma

Projemizde, öncelikle SQL Server üzerinde bulunan veritabanındaki tablodan veri çekip bu verileri Excel dosyasına aktaracağız. Daha sonra oluşturulan Excel dosyasını istenilen e-posta adreslerine göndereceğiz.

Proje oluşturulduktan sonra, otomatik olarak açılan Control Flow penceresine geliştirmeleri kolayca takip edebilmek için Sequence Container adlı bir öğe ekliyorum. Bu Sequence Container içinde işlemleri iki ayrı grup halinde düzenliyorum.

Control flow’u iş akışının kontrol edildiği bir alan olarak düşünebiliriz. Burada bu akışa ait önceliklendirmeler, sıralamalar ve mantıksal işlemler yapılabilir.

Control Flow Görünümü

Mssql To Excel DB Process bir Data Flow Task nesnesidir.

Bu nesne, ETL (Extract, Transform, Load) sürecini yönetmek için kullanılır. Bu süreç içerisinde farklı kaynaklardan veri çekme, dönüşüm işlemleri uygulama ve son olarak hedef kaynağa yazma gibi işlemleri yöneteceğiz.

Nesneye sağ tıklayarak, veri alışverişi tanımlamalarını yaptığımız ilgili ekrana geçmek için ‘Edit’ sekmesini seçebiliriz.

Data Flow nesnesini açtığımızda, veritabanına bağlanmak ve kaynağı belirlemek için gerekli olan ‘OLE DB Source’ öğesini seçerek işleme başlıyoruz.

Sonrasında, OLE DB Source üzerine çift tıklayarak bağlantı ayarlarını yapıyoruz. Bu aşamada tabloyu seçebilir ve isterseniz verileri önizleme (preview) butonu ile kontrol edebiliriz.

OLE DB Source Tanımlamaları

Veritabanı bağlantı ayarlarını ve kaynak seçimini tamamladıktan sonra istediğimiz Excel dosyasının tasarımını oluşturmaya başlayabiliriz. Ben kaynak tablomdan yola çıkarak aşağıdaki gibi bir taslak oluşturdum.

Tasarlanmış Excel Dosya Örneği

Sonraki aşamada, Visual Studio’daki paket geliştirmesine geri dönüp Data Flow Task akışına Excel Destination nesnesini toolbox üzerinden ekliyorum.

Excel dosyasındaki sütun formatı ile veritabanındaki sütun formatının farklılıklarından kaynaklanan muhtemel hata riskini önlemek için, Data Conversion işlemi yapmamızda fayda var.

Bu nedenle, akış şemasına Toolbox’ta bulunan Data Conversion bileşenini ekliyoruz ve nihai işlem akışımız aşağıdaki gibi görünüyor;

Source, Data Conversion, Excel Export

Data Conversion üzerine çift tıklayarak kaynaktaki kolonları uygulamanın bizden beklediği tipe dönüştürüyorum.

Sonraki adımda, Excel işlemlerini yönetmek için Excel Destination üzerine çift tıklayabiliriz. Excel Connection Manager alanında yeni bir bağlantı oluşturmak için ‘Yeni’ düğmesini kullanarak Excel dosyamızı seçiyoruz.

Excel Destination

Seçimler yapıldıktan sonra, Excel dosyamızdaki sütunların otomatik olarak Mappings sekmesine yüklendiğini görüyoruz. Kaynak tablo ve Excel sütun eşleştirmelerini bu bölümde gerçekleştiriyoruz.

Data conversion üzerinden yeni oluşturduğumuz(dönüştürülmüş) alanlar ile işleme devam etmeliyiz.

DB — Excel Kolon Eşleştirme

Bu işlemi de tamamlayarak, veritabanımızdaki kaynak tabloyu Excel dosyamızla eşleştirmiş olduk.

Şimdi, projeyi başlatarak verilerin Excel dosyasına aktarıldığını görebilirsiniz.

İşlem Akışı

Son adımda, oluşturduğumuz Excel dosyasını belirlediğimiz kişilere gönderme işlemini gerçekleştirelim.

Bunun için, Control Flow içerisindeki Send Mail Task nesnesine çift tıklayarak SMTP ayarlarını yapmak için ilerliyoruz.

New Connection seçeneğini kullanarak e-postayı göndereceğimiz host bilgilerini dolduruyoruz.

SMTP ayarlarını yapılandırdıktan sonra, diğer alanları doldurmanız gerekiyor.

İlk olarak, maile eklemek istediğimiz dosyayı belirlemek için ‘Attachment’ (Ek) bölümünden dosyanın(Veri aktarılan Excel) yolunu seçmeliyiz.

Burada e-posta başlığı, metin içeriği ve Alıcı (To) ile Kopya (CC) gibi alanları boş bırakmamak önemlidir.

SMTP Ayarları

İlgili alanları doldurup kaydettikten sonra, projeyi tamamlamış oluyoruz.

Örnek e-mail aşağıdaki gibidir.

Genel olarak bu projede, veri dışa aktarma işlemini gerçekleştirdik ve bu dışa aktarma işlemi sonucunda oluşturulan dosyayı istediğimiz e-posta adreslerine gönderdik.

Yazının sonuna gelmiş bulunmaktayız,

Umarım sizler için faydalı olmuştur, hoşça kalın 😊

--

--