|
SQL Server 2000'de Data Transformation Services (DTS) Paketleri |
|
Gönderiliyor lütfen bekleyin... |
|
|
Microsoft farklı ortamlardan elde
edilen ve farklı formattaki verilerin aynı anda transfer
edilebilmesi
için DTS(Data Transformation Services) paketlerini kullanan
bir mimariyi sunmaktadır. DTS Paketleri, SQL Server 2000 de Data Transformation Services başlığı altında
yönetilebilir.
Biz bugünkü makalemizde, bu başlık altında yer alan
Local Packages bölümünü incelemeye çalışacağız.
DTS paketlerinin
sağladığı en büyük
avantaj, T-SQL kullanarak başka bir programlama diline ihtiyaç
duymadan o an elinizde bulunan ve farklı ortamlardan elde
ettiğiniz verilerin istediğiniz biçimde veritabanına
aktarılabilmesi yada bu verilerin çeşitli işlemlere
tabi tutarak çıktı alınabilmesidir.
Örnek bir DTS paketi oluşturmak
için şu senaryoyu göz önüne alalım. Bulunduğunuz şirket
farklı işletim sistemlerinde farklı programlar kullanıyor olsun. Bu işletim
sisteminlerinden elde ettiğiniz text formatındaki verileri program
içerisinde kullanmak istediğimizi varsayalım. Text dosyamızın formatı
da aşağıdaki gibi olsun; ki çoğu zaman aşağıda
bulunan doysa yapısından çok daha karışık formatlarda olabilir.
Resim1 : İşlem yapılacak text
dosyası
Amacımız bu text dosyasından aşağıdaki
alanları almak;
-
Dönem
-
Musteri No
-
İlk satırdaki ay tutarları ve ikinci satırdaki ay tutarlarının
dts' te verilen bir değişkenle çarpılmış sonuçlarının toplamı
Evet bu senaryo gayet güzel oldu.
Sınavlarda sorulan amaçsız gözüken ve tamamen işlem yapmaya yönelik sorular gibi
oldu. Ama
Dts paketlerinin neler yapabileceklerini ancak bu kadar işlem yaptıktan
sonra tam anlamıyla ifade edebilirim. Nitekim SQL Server' da basit aktarma ve veri alma
işlemleri için daha farklı yöntemler mevcut.
Eğer herhangi bir programlama dili kullansaydık öncelikli
hedefimiz text dosyasını okuyup verileri pars edip istenilen bilgileri
elde etmek olacaktı. Ama biz şimdi sadece
T-SQL kullanarak bu pars etme işlemini gerçekleştireceğiz.
Öncelikle Text
dosyasını bir tabloya aktarmakla işe başlıyoruz. Tabloya aktarma işlemi gerçekleştikten
sonra kayıtları satır satır okuyup bize lazım olan değerleri
pars ederek oluşturacağımız
tabloya ekleyeceğiz. Text dosyasını aktaracağımız tablo ve istenilen bilgilerin tutulacağı tabloya
ait alan yapılarını aşağıdaki gibi tasarlayalım.
Resim2 :Text dosyasının aktarılacağı
ilk tablo
Resim3: Text dosyasının pars
edip elde edilen sonuçların aktarılacağı tablo.
Pars işlemini bir saklı yordamda
toplarsak çok daha verimli ve hızlı bir işlevsellik kazanmış oluruz.
Bu nedele T-Sql kodlarımızı bu saklı yordam içerisinde yazacağız. Böylece herhangi bir değişiklik durumunda
müdahale etmek de daha kolay ve hızlı olacaktır. Saklı yordamımız aşağıdaki gibi olsun. Burda pars işlemi
tamamen programcıya kalmıştır. Bu işlem farklı şekilde yapabilirsiniz.
Resim4 : Pars işleminin gerçekleştiği
saklı yordam.
DTS paketi oluşturmak için Local Packages-> New Package adımlarını gerçekleştirelim.
Sağ tarafta buluna araç kultusunda Connection sekmesinde Dts' te kullanılacak
olan bağlantı tipleri için ilgili providerlar mevcuttur. Task sekmesinde
ise yapılacak
olan işlemlerde kullanılacak araçlar bulunmaktadır. DTS paketlerinde ard arda yapılan
görevleri birbirleri ile ilişkilendirmek için menude Workflow sekmesinde bulun
üç farklı seçenek vardır . Bunlar,
-
On Completion : İlgili görev çalışırken diğeri de çalışsın
- On Success : İlgili görev başarılı olma
durumunda diğer görev çalışsın
- On Failure : İlgili görevin hata vermesi durumunda diğer
görev çalışsın
Sırası
ile işleme tabi tutacağınız iki görevi seçip bu seçeneklerden birini ekleyebilirsiniz.
Ama işlemin yönü çok ömenlidir. Buna dikkat etmeniz gerekmektedir.
Resim5: Görevler arasında ilişki
oluşturma
Oluşturduğumuz
Dts örneğinin işleyiş sırası aşağıdaki gibi olsun. Bu örnekte sık kullanılan
tasklar kullanıldı. Bunları birlikte inceleyelim..
Resim6 :Oluşturduğumuz dts örneği
Step1 : Text File dışarıdan okunacak olan txt uzantılı dosyayı belirtir. Text aracını paketin üzerine
sürekleyip bıraktığımızda dosyanın yolu ile ilgili bilgileri
veririz.
Step2 : OLE DB Provider for SQL Server. Veri aktarılan SQL serverı ifade eder. Paketin üzerine sürükleyip
bıraktığımızda ise alışık olduğumuz connection properties penceresi karşımıza çıkmaktadır.
Kullanacağımız SQL Server ve veritabanı bilgilierini gireriz. Step1 ve Step2
arasındaki bağlantıyı sağlayabilmek için Task sekmesindeki Transform Data Task nesnesini
buraya eklememiz gerekmektedir.
Nesneyi sürükleyip bıraktığımızda Source sekmesi bilgi
alacağımız dosyanın bilgileri
, Destination sekmesi aktarılacak
tablonun bilgileri, Transformation sekmesi ise aktarılacak
kolonların bilgilerini belirlemektedir.
Step3 : Execute SQL Task, SQL cümlelerinin yazılabileceği ve bir önceki işlemin başarıyla gerçekleşmesi
sonucunda çalışacak olan görevi belirtir. Biz senaryomuzda bu adımda tablolarımızı
truncate ediyoruz.
Resim7: Execute SQL Task.
Step4 : ActiveX Script Task , Vb script dili kullanılarak standar sql cümlelerin çalışması dışında dosya okuma, yazma, tablodan veri okuma vb. gibi işlemleri
yapabilmemizi sağlar. Biz senaryomuzda
Paket içerisinde parametre olarak vermiş olduğumuz değeri alarak sql cümlemizi çalıştırdık.
Resim8:ActiveX Script Task.
Dts paketlerinde değişken olarak
kullanılacak bazı bilgilere de ihtiyacımız olacaktır. Tüm paket
içerisinden erişebileceğimiz
bilgilerdir bunlar. Dts paketi içerisinde sağ tıklayıp Package Properties
seçeneğinden Global Variables tabında ilgili bilgileri ekleyebilirsiniz. Biz
Dts' imizde
ConStr ve Param diye iki tane değişken ekledik. Step4' teki ActiveX te bu bilgilere
nasıl ulaşıldığını görebilirsiniz.
Resim9:Global Variables
Bugünkü makalemizde bir senaryo üzerinden hareket ederek, Dts pakelerinin SQL Server 2000 de kullanımını
incelemeye çalıştık. Bir sonraki makalemizde dts paketlerinin SQL Server 2005 de kullanımını
incleyeceğiz. Tekrardan görüşmek üzere herkese iyi günler
dilerim.
Makale:
SQL Server 2000'de Data Transformation Services (DTS) Paketleri C#, Visual C# ve .NET Feryat Olcay
|
|
|
-
-
Eklenen Son 10
-
Bu Konuda Geçmiş 10
Bu Konuda Yazılmış Yazılmış 10 Makale Yükleniyor
Son Eklenen 10 Makale Yükleniyor
Bu Konuda Yazılmış Geçmiş Makaleler Yükleniyor
|
|