SSIS ile Veri Transferi
#1

Merhaba arkadaşlar;

Access’den, Sql Server’a, Access’den Excel’e, Text dosyasından Access’e, Sql Server’dan Excel’e , Access’den Access’e vs. vs.. verilerinizi istediğiniz şartlarda almak ya da vermeyi en kolay şekilde yapmak ister misiniz? Başınızı evet anlamında sallıyorsanız okumaya devam edin.

Aşağıdaki bilgiler MS Sql Server içindir. Eğer Express sürümüne sahipseniz Bu sürümde SSIS olmadığını da hatırlatırım.

SSIS nedir, ne işe yarar; öncelikle kısaca bundan bahsedelim.

SSIS (SQL Server Integration Services), herhangi bir veri kaynağından verilerin alınıp üzerinde neredeyse aklınıza gelebilecek tüm işlemleri yapabileceğiniz ve başka bir veri kaynağına verilerinizi dilediğiniz şekilde aktarmanızı sağlayan çok yetenekli bir araçtır. Öyle ki verilerinizi aktardığınız dosyayı, örneğin bir Excel dosyasını daha sonra sıkıştırıp mail ya da FTP ile bile gönderebilirsiniz. Biraz daha abartmak gerekirse aynı ya da farklı alanlarda bulunan verileriniz arasında benzerlikte bulunan verileri kendi hazır araçları yardımıyla ister birleştirebilir ya da silebilirsiniz. Örneğin “portakal” ile “Portokal” gibi..

Ben çok basit bir şekilde bir Access (mdb) dosyasından SQL Server’a veri aktarmayı aşağıda anlatacağım. Bu arada SSIS, SQL Server 2005 ile çıkmıştır ve daha önce yani SQL Server 2000 ile bu işlemleri DTS ile yapıyorduk.

Öncelikle SQL Server’mızda bir Database oluşturalım. Ben tabloları daha önceden koymuştum ama içlerinde kayıt yoktur. Elbette Database oluşturma, tablo oluşturmayı da SSIS ile yapabiliriz ama SSIS sonucu oluşacak dosyamızın çalıştırılabilir bir dosya olduğunu unutmayalım. Tıpkı bir exe gibi yani bir kere hazırladıktan sonra ne zaman çift tıklarsak aynı işlemleri yapacaktır. O bakımdan benim anlatacağım örnekte var olan bir database ve tablolardaki veriler önce silinecek daha sonra Access’den veri alacaktır. Yoksa dosyayı her çalıştırdığımızda önce Database ve tablolar tekrar silinip oluşturulabilirdi bu da performans kaybı demektir. Resimde göreceğiniz üzere Database ve tablolarımız hazırdır.


[Resim: ssis9.jpg]



Şimdi Sql server’ımızla birlikte kurulan “Sql Server Business Intelligence Development Studio” muzu açalım. File/New Project diyelim. “Integration Service projecti” seçelim. Solution Explorer penceresinden “SSIS Packages”in üstüne sağ tıklayıp “SSIS Import end Export Wizard”ı seçelim.


[Resim: ssis11.jpg]


Kaynak dosyayı seçeceğimiz pencerede masaüstünde bulunan Sirket.mdb isimli dosyayı seçip next diyoruz.

[Resim: ssis7.jpg]


Hedef dosyayı ya da veritabanı sistemini seçiyoruz, burada ben local de çalışan SQL Server’ı seçiyorum ve next diyoruz.


[Resim: ssis6.jpg]


Bu pencerede verilerimizin tablo ya da view lerden mi yoksa kendi yapacağımız sorgularla mı seçeceğimiz soruluyor ve ben üstteki seçenek ile tablolardan alacağımızı belirtiyorum.


[Resim: ssis3.jpg]


Bu pencerede kaynak ve hedef tablolarımızı görüyoruz. Source kutucuğuna tıklayarak tüm tabloları seçiyorum ve “edit mappings” tıklıyorum. Çıkan ufak pencereden alttaki 2 kutucuğu seçiyorum. En üstteki “drop and recreate destination tables” seçeneği ise adından da anlaşılacağı gibi tabloları silip yeniden yaratmaktadır. Bunu bu örnekte yapmıyoruz, yukarıda bahsetmiştim. “Delete Rows in existing destination tables” seçeneğiyle sadece kayıtları sildiriyoruz. “Enable identity insert” seçeneği ise manuel olarak spesifik veri kayıtları insert edebilmek içindir.


[Resim: ssis10.jpg]


Next ve finish diyoruz..


[Resim: ssis2.jpg]


Bu işlemler bittikten sonra Control Flow sekmesi açılır. Bu sekmede “Preparation SQL” ve “Data Flow Task” kontrollerini görmekteyiz. Bu kontrollere çift tıklayarak özelliklerini daha detaylı görebilirsiniz. Start debugging yaptığımızda resimdeki gibi yeşil renk oluyorsa hiç sorun yok demektir.


[Resim: ssis5.jpg]


Bu da Data flow sekmesi,


[Resim: ssis4.jpg]


Şimdi verileri aktardığımız Sql Server’ımızdaki tablolara bakalım, Mdb dosyamızdan veriler Sql Server’daki tablolarımıza gerçekten gelmiş mi? Resimde gördüğünüz gibi tüm kayıtlar artık Sql Server’ımızda da var.


[Resim: ssis8.jpg]


Resimde gördüğünüz gibi bir çok aracı da kendi amacımıza uygun şekilde ekleyebiliriz.


[Resim: ssis13.jpg]


Şimdi tüm bunları okuduktan sonra belki de diyeceksiniz “ Bu mu kolay diye ??!!!” Oysa yukarıda anlattıklarımın tümü sadece 1 dk sürüyor. Hedef ve kaynak seçiyorum ve sadece next, next diyorum. Elbette ben özel bir aktarım yapmadım. Mdb de ne varsa aynen aktardım, bu da bu işin çok kısa sürmesinde gayet iyi bir sebep.


Artık her çift tıkladığımızda mdb dosyamızdan Sql server’a veri trensferi yapan çalıştırılabilir bir “dtsx” dosyamız oluştu. Tıpkı “exe” gibi.. Sql Server içinden JOB ayarlarıyla bu dosyanın çalışmasını istediğiniz gibi otomatikleştirebilirsiniz. Belirli gün ve saatlerde kendisi çalışabilir. dtsx dosyanızı varsayılan ayarlardaysanız Belgeler/Project/ bin dosyası içinde görebilirsiniz.


Berkant Öztürk
Access-Sql.com
Javascript
  1. this.setState({sign:"Here comes the sun...."})







  Alıntı
Bu mesajı beğenenler:
#2
Teşekkürler.

Gün gelir de sizin gibi bu seviyede işlerle uğraşırsam çok işime yarar. Değerli paylaşımınız için sağolun.
Eek VT:Veri Tabanı, AVT: Access VT, MS:Microsoft, Kapaç: Kapa ve aç (rebot ve açkapa saçmalığına çözümüm)
Twitcy Yazan okuyan sağolsun, çözene saygılar. Kolaylaştırınız, zorlaştırmayınız.
? Cinnet geçirmemek için Access 2010'u SP2 ile kullanalım.
? Sürekli sebepsiz hatalar oluyor da AVT uçuyorsa siz de Ofis kurulmunu uçurun çözülüyor. Sorun kurulum dosyanızda! Farklısını bulun!
? VT dağıtıma çıkana kadar bölmek zaman kaybıdır!
{ Veri Tabanı Mantığı } {Access 2010 çökmelerine çözüm } { 60 Günlük Ofis 2010 Pro Türkçe } { Kayıtları Yan Yana Göstermek }
{ Forma Rapora Resim Fotoğraf Eklemek En kolay En Sağlam En Zengin Teknik }



  Alıntı
Bu mesajı beğenenler:
#3
Berkant tek kelime ile mükemmel bir anlatım olmuş.. Bu konu benim en ilgi çeken konuların başında geliyor.. SSIS ile kullnabileceğimiz araçlar ve yapılabilecekler konusunda birkaç örnek makale daha bekliyoruz senden..

Çok teşekkürler..



  Alıntı
Bu mesajı beğenenler:
#4
Ağzına (Klavye ne) sağlık Berkant Hocam
Teşekkürler.



  Alıntı
Bu mesajı beğenenler:
#5
Eline sağlık Berkant hocam,
faydalı bir anlatım.



  Alıntı
Bu mesajı beğenenler:
#6
Berkant hocam;

Çok teşekkürler.

Devamını bekleriz. Smile



  Alıntı
Bu mesajı beğenenler:


Foruma Git:


Bu konuyu görüntüleyen kullanıcı(lar): 1 Ziyaretçi