Makale Özeti

SQL Server 2000 Veritabanı yönetim sisteminde Data Transformations Services (DTS) örmek uygulamalarla inceleme.....

Makale

Merhabalar,

Bu makalemde sizlere MSSQL Server 2000 veritabanı yönetimi sistemi içerisinde biraz daha işleri kolaylaştıran bir servisten bahsedeceğim Data Transformation Services(DTS) veya diğer bir ifadeyle Import and Export Data.

İlk olarak SQL Server 7.0 ' da tanıştığımız DTS SQL Server 2000 ile çok daha yetenekli halde biz DBA'lerin hizmetine sunulmuştur.DTS farklı sunucular arasında veri aktarımı için tasarlanmıştır.Bu sunucular farklı lokasyonlardaki SQL Server'lar olabileceği gibi farklı veri kaynakları olan (ORACLE,IBM DB2..) olabilir.

DTS bileşenleri bu işlemi gerçekleştirmek için DTS sihirbazlarınıda kurulum esnasında yüklerler.Veri dönüşüm servislerinin en önemli birimi API(Application Programming Interface)'lerdir.API'ler belirli bir veri kaynağına ait gerekli arayüzleri sağlayan program parçacıklarıdır.Bu API'ler en sık kullanılanları söylemek gerekirse OLEDB ve ODBC'dir.

DTS'in en küçük iş birimine DTS paketi adı verilir.DTS paketi SQL Server 2000 altındaki bir objedir ve içerisinde taşıdığı bilgiler şu şekildedir:


1-Veri kaynakları ve hedefleri
2-Veri üzerinde yapılmasını istediğimiz business logic
3-Business katmanı yönetmek için kullanılan iş akış prosedürleri
4-Kaynak ve hedef veri kaynağı arasındaki veri dönüştürme prosedürleri

SQL Server 2000 veritabaı platformunda veriyi yönetmenin birkaç değişik yolu vardır.

a)DTS Import/Export Wizard
b)Enterprise Manager içerisindeki DTS Designer Ekranı
c)Command Prompt Ekranından kullancağımız bcp komutu

En genel ifadelerle yukarıdaki söylediklerimle özetleyebiliriz veri transfer etme yollarını ancak gelin yukarıda anlattığım olayları iki farklı senaryo itibariyle nasıl yapabiliriz bunu inceleyelim.

Anlatacağımız senaryo itibariyle şunu hedefliyoruz.1. olarak gerçekleştireceğimiz senaryoda farklı veri kaynağı olarak düşündüğüm Excel dosyasına SQL Server 2000 paltformundaki Northwind DB'sinin Employees tablosundaki bazı verileri transfer edeceğiz.Bu işlemin bazı durumlarını değerlendiren sonuç çıktıları alacağız.

2. olarak planladığımı senaryo ise 2 tane SQL Server veri kaynağının bulunduğu ortamda veri transferinin nasıl yapılacağını bir örnek uygulama ile inceleyeceğiz.Bu 2 örnek uygulamayıda DTS Designer ekranı ile gerçekleştireceğiz.Hem görselliğin hemde sizlere görüntülünecek ekranın anlaşılır olması açısından bu taraftan yapacağım ;)



İşe öncelikle DTS Designer Ekranımızı açmakla başlayabiliriz.Bunun için Enterprise Manager > Server Adı > Data Transformation Services> Packages dedikten sonra ekranın sağındaki boş alanda sağ mouse hareketiyle New Package Sekmesi seçilir.

Karşımıza gelen DTS Designer ekranından dikkat etmemiz gereken ve bizim en sık kullanacağımız 3 kısımdan bahsedeceğiz.

Connection Task
Workflow  
 


Bunlardan ilki Connection tabında karşımıza gelen veri transferi gerçekleştireceğimiz farklı veri kaynaklarının bağlantı tiplerini bize gösteriyor.İkinci kısımda ise WorkFlow ile karşımıza gelen görüntü ise DTS Designer ekranında işlemlerin hangi sıra ile yürüyeceğini ve bu sıralama anında nasıl bir davranış göstereceğini bize bildirir.On Completion ile işlemin yapılmasını On Success ile işlemin sadece başarılı senaryoda gösterilen şekilde ilerleyeceğini On Failure ise başarısız olduğu durumu işaret etmektedir.

Senaryomuz itibariyle SQL Server'dan Excel sayfasına Employees tablosundaki verileri transfer edeceğiz ve bunun başarılı olma durumunda veya başarısız olması durumunda önceden tanımladığımız bir operatör vasıtasıyla bize mail atmasını isteyeceğiz.



Şekilde de görüldüğü gibi öncelikle SQL Server olan veri kaynağımdan Northwind DB sini işaretleyerek kaynak baglantıyı yarattım ve daha sonra Excel kaynagını surukleyip design ekranına bırakarak karşıma gelen pencereden Desktop'ta Demo.xls adını verdiğim bir dosya oluşturdum.

Hemen ardından ise Send Mail task tanımlayarak yeşil renkte görünen durum (On Success) işlemin başarılı olma durumu kırmızı renkte görünen durum ise(On Failure) işlemizn başarısız olması durumunda daha önceden yapılandırdığım ayarlar ile birlikte belirttiğim soner.yasar@netron.com.tr mail adresime mail atacaktır.

Daha sonra yine Task bölümünden Transform Data Task seçerek kaynak ve hedef arasında bir bağlantı gerçekleştirdim.



Data Task üzerinde sağ tıklayıp Properties diyerek karşımıza açılan bu ekrandan Source tabında ilgili Table/View seçilerek seçmek istediğiniz tablo veya view 'ı işaret edebilir veya SQL Query diyerek T-SQL statement yazabilirsiniz. Ben SQL Query seçerek altında aktif olan pencereye basitçe Select Lastname,Firstname from dbo.Employees yazarak almak istediğim datanın bilgisini yazdım Preview diyerek karşınıza gelecek olan ekran ile hangi datanın geleceğini de gözlemleyebilirsiniz.

Destination tabında ise göndermek istediğiniz hedef alan üzerinde gönderdiğiniz dataya uygun bir table yaratmak isteyecek eğer bununla ilgili bir düzenleme yapmak isterseniz açılan ekranı kullanabilirsiniz ve default ayarlarıyla devam edeceğim.



Options Tabında da Data transferinizle alaklı olarak bu durumla ilgili bir exception file yaratmak isterseniz şeklinde bazı düzenlemeler yapılabilir ancak ben kullanmayacağım...



Artık mutlu sona yaklaşıyoruz Package menüsünden Execute adımını seçerek Data Transfer işlemini başlatabiliriz.




Transfer işleminin sonunda operator ile tanımladığımız mail adresimize gelen cevap aşağıdaki gibidir.



Bu makalemde sizlerle MSSQL içerisinde kullanılan Data Transformation Services'ten bahsetmeye çalıştım. Bu çalışma makaleye örnek teşkil ettiği ve öğrenme amaçlı olduğundan hata testleri ve hata yakalama fonksiyonları yazılmamıştır.Ama durun daha söz verdiğim şey olan 2. örnek uygulamamı gerçekleştirmedim onun için devam ediyoruz bir sonra ki makaleye:)))))))))))))

Soner Yaşar (soner.yasar@netron.com.tr
)