13 Temmuz 2011 Çarşamba

SSIS Ekran Elemanları

Yazan: Hüseyin Onur Özcan
Herkese Merhaba, bugün size SSIS ekranı elemanlarından ve kullanım amaçlarından kısaca bahsedeceğim.  İlk olarak Solution Explorer penceresinden başlayalım.  Yarattığınız paketlerinizi, data sourcelarınızı veya data source viewlerinizi düzenleyebildiğiniz bir alandır. Data Source’un ve Data Source View’lerin nasıl oluşturulduklarını paketlerin eklenmesini ilerleyen zamanlarda daha detaylı bir şekilde anlatacağım. Şimdilik  kısaca ne olduklarından bahsedeyim.

Data Source veritabanınıza her yerde kullanmak amacıyla oluşturduğunuz bağlantılarınızı görebileceğiniz ve bağlantı oluşturup düzenleyebileceğiniz bir alt klasörünüz.
Data Source View ise veritabanınızdaki belli tablolardan bir view oluşturup bu view üzerine bağlantı kurmanıza yardımcı olan bağlantılarınızın bulunacağı klasörünüz.
SSIS Packages ise ETL paketlerinizin bulunduğu klasörünüz.

Properties ekranı ise klasik ayar ekranlarından farksız ileride SSIS toollarını açıklarken properties ekranına bol bol göz atacağız.
Connection Manager Ekranında ise sadece o pakette geçerli olmak üzere bağlantı tanımlamaları gerçekleştirebiliyoruz.
ToolBox , Daha sonra hemen hemen her bir elemanı ve özelliklerini detaylarıyla açıklayacağımız. ToolBox  her  flow chart için ayrı ayrı elemanlara sahiptir.
Control Flow Tools ;
Control Flow Items”  ETL’in iş akışını tasarlarken kullandığımız toollardan oluşur.
Maintance Plan Task” ETL’in iş akışına ek olarak çeşitli optimizasyon işlemlerini yapabileceğimiz toollar  burada bulunmaktadır.
 Data Flow Tools ;
Data Flow Sources” Data flow tasklarda bir kaynaktan veri çekmek için kullanılan toolların  bulunduğu kısımdır.
Data Flow Transformations Tools” Sourcedan aldığımız dataları işlemek için kullanabileceğimiz toollar  burada bulunmaktadır.
Data Flow Destinations Tools” Flow içerisinde işlediğimiz dataların çeşitli ortamlara kaydı için kullanılan toollar burada bulunmaktadır.

Son olarak Flow chartların bulunuduğu bölmedeki diğer 3 chartı da kısaca açıklayarak bu yazıyı bitirmek istiyorum.
Event Handlers ;  ETL akışı sırasında gerçekleşen eventler için farklı senaryolar geliştirebilirsiniz ve bu seneryolara uygun iş akışları tasarlayabilirsiniz. Örneğin bir data flow taskınız fail olduğunda OnEror eventi için farklı bir senaryo düşünüp burada bunu etkinleştirebilirsiniz.
Package Explorer ; Akış düzenlediğiniz paketinizin içindeki değişkenleri sabitlerinizi event handlerlarınızı kısacası paketin içindeki ayarlamalarınızın hemen hemen hepsine özet bir bakış atabildiğiniz ekranınız “Package Explorer” ekranınızdır.
Progress ;  Bu ekran ETL akışını çalıştırdığınızda aktif olarak görülebilir. İş akışının her bir basamağının başlangıç bitiş gerçekleşen durumlar ve oluşan hatalar ile ilgili detaylı bilgiler alabildiğiniz ekranınızdır.
Bu yazımızda sizlere SQL Server Business Intelligence Development Studionun genel arayüzünü mümkün olduğunca çok görsel ile anlatmaya çalıştık. Sonraki yazılarımızda bu ekranlardaki elementleri tek tek detaylı bir şekilde inceleyip örnekler ile çalışmalarını sizlere göstermeye çalışacağız.

5 Temmuz 2011 Salı

Integration Services Giriş

Yazan: Hüseyin Onur Özcan
Merhabalar
Yazılarımızda Microsoft İş Zekası toollarını 4 temel konu başlığı altında inceleyeceğiz. Bunları kabaca sıralamak gerekirse başlıklarımız; Integration Services, Analysis Services, Datawarehouse ve Reporting Services.

SSIS (SQL Server Integration Services) olarak da bilinen Integration Services, SQL Server Management ile erişilen bir özellik olarak çeşitli wizard'lar ile birlikte Business Intelligence Studio ile uygulanmaktadır. SSIS'in detaylarına inmeden önce ETL'in ne olduğu konusuna açıklık getirmek bu işlemleri neden yaptığımızı anlamamız açısından büyük bir fayda sağlayacaktır.  ETL açılım olarak Extract-Transform-Load kelimelerinin baş harflerinden oluşan bir kısaltmadır. Bu açılım da çeşitli kaynaklardan alınan ve gereksiz kısımlarından arındırılan verilerin işlenmesi anlamına gelmektedir.


Bu bağlamda ETL'in çerçevesinin çizilmesinde standart bir Integration Services Projesi ekranında bulunan DataFlow Ekranında yapılan işlemler; temel olarak  ETL'in yapısına uygun olarak bir veri kaynağından bilgilerin alınması,  bunların Data Flow Transformation's altındaki işlemler aracılığıyla işlenmesi ve sonunda da bir kaynağa yazılması olarak sıralanabilir.

Integration Services altında yapılan veri düzenleme işlemleri gerek Controlflow'da  gerekse de Dataflow'da olsun bir path mantığı altında yapılmaktadır. İlerleyen zamanlarda daha detaylı açıklayacak olsak da bir Integration Services'te bulunan ControlFlow ve DataFlow kısımlarında işlemler path içerisinde tanımlanır. Bir process'in bitmesinin ardından path içerisinde bulunan sıradaki process yapılarak path sonuna gelinene kadar devam eder. Yapılan işlemler işlem sırasında sarı, işlem başarıyla tamamlandığında yeşil, işlem hata aldığında da kırmızı renkler ile tanımlanır.

Integration Services'in Genel Kullanımları ve Temel Kavramlar 
SSIS'in hayatımıza getirdiği kolaylıklarla göz attığımızda SSIS bizlere SQL Server yada diğer çeşitli kaynaklardan gelen (flat file, Oracle vs.) verilerin aktarımlarına imkan verirken, birden çok kaynaktan gelen verilerin birleştirilmesine de imkan sağlar. Gelen dataların bir küp oluşturma amacıyla standart bir hale getirilmesi (id'lerin düzenlenmesi, gereksiz datalardan ayıklanması) için de kullanılmaktadır. Daha da önemlisi SSIS daha büyük iş zekası raporları için SQL Server 2008'de bulunan iş zekası tool'ları ile entegredir. 

SSIS'de yapılan işlemler bir paket mantığı altında tutulur, düzenlenir ve derlenir. Bu paketler msdb yada XML formatında tutulur ve projeler arasında copy-paste yöntemi ile taşınması mümkündür. ControlFlow tasklar ve container'lerdan oluşur. Tasklar ile kullanıcı veriler üzerinde düzenlemeler yaparken container ise adından da anlaşılacağı üzere bir grup task bünyesinde barındırarak daha modüler bir yapı kazandırır. Dataflow verilerin alınacağı yerleri, veri dönüşümlerini ve verilerin yazılacağı yerleri tutar. Değişkenler(variable) daha dinamik bir biçimde operasyonlar yapılmasını ve control flow ile dataflow arasındaki değişken iletişimini sağlamaya yardımcı olur. Event Handlers ise isminden de anlaşılacağı üzere run time'da yapılan işlemlerin görüntülenmesine ve paketlerin işlem karşılıklarının bizlere gösterilmesini sağlar. 

SSIS'in gücünü konu ile ilgili detaylara daha fazla girdiğimizde daha iyi anlayacağız. SSIS kullanıcılara minimum kod yazdırarak (scriptler hariç ve SQL komutları hariç) maksimum performans ve kontrol sağlamak amacıyla yetiştirilmiştir. Bu bağlamda paketler ile (yukarıda bahsedilen özellikleri dışında) bir yapı oluşturulduktan sonra bu paketler üzerine sağ tuşla tıklayarak 'Execute Package' seçilerek bu paketlerin içindeki işlerin yapılması, log işlemleri hakkındaki desteği, bünyesinde bulundurduğu breakpointler, configurationslar, bağlantı ayarlamaları ve transaction ile kullanıcılara büyük kolaylıklar sağlamaktadır. (Bu konular ile ilgili kapsamlı bilgiler daha sonra verilecektir)

SSIS içerisinde bulunan paketlerde dataflow kısmının yapısal olarak nasıl çalıştığı kısmından bahsetmek gerekirse, dataflow'lar içerisinde sağlanan in-memory bufferlar sayesinde data source'dan alınan veriler önceden tanımlı buffer büyüklükleri içerisinde (tabi sistemin de el verdiği ölçüde) alınır. Transform işlemine tabi tutularak veri hedeflerine yazdırılır ve sıradaki kalan sayıdaki veri için aynı işlem işlem sonuna varılana dek tekrarlanır. (Örnek vermek gerekirse 1 milyon satır veri için buffer'ımız 100 bin veri alacak şekilde ayarlanırsa yukarıda bahsedilen işlem 10 kere tekrarlanır.)



Özetle 
Hatırlanması Gereken Noktalar; 
  • SQL Server Integration Services bir SQL Server 2008'in ETL işlemlerinin kolaylıkla yapılabilmesini sağlayan bir aracıdır. Bu aracın asıl amacı elle yapılması gereken işlemlerin daha kolaylıkla yapılmasını sağlamaktır. 
  • SSIS mimarisinde temel olarak 2 tane ara yüz bulunmaktadır. Bunlar Control Flow  ve Data Flow arayüzleridir. 
  • Integration Services paketinde bulunan Control Flow (daha sonradan da açıklanacağı üzere) Integration Services'te kullanılmak üzere sunulan çeşitli Control Flow Itemların kullanılmasını, verilerin hazırlanmasını, hazırlanacak olan iş akışlarının (workflow) ve iş zekası fonksiyonlarının çeşitli scriptlerle ile de desteklenebilecek bir şekilde işlenmesini sağlayacak araçlar içerir.
  • Dataflow arayüzü de yukarıda da bahsettiğimiz üzere çeşitli dataflow unsurları kullanarak kaynaklardan veri çekilmesi, verilerin hesaplama yada dönüştürme (transformation) islemlerinin yapılarak hedef bir kaynağa yazılmasını sağlarken aynı zamanda bir dataflow'a gelen input ve outputların bir path mantığından düzenlenmesini sağlar.