SSIS’de Loglama İşlemi

Microsoft çözümleri ile çalışıp BI ile bir şekilde uğraşmış iseniz yada halihazırda konunun uzmanı iseniz SSIS’e muhakkak temas etmişsinizdir. İş süreçlerini geliştirirken SSIS içerisinde Debug çalışmalarını Progress alanından ya da Execution Results kısmından görebiliyorduk. Bu paket üzerinde çalışma süresince vazgeçilmez bir konu zira hatalarımızı bu alandan görerek çözüme kavuşturuyoruz.

SSIS paketimizi Deploy ettikten sonra gelecek zaman içerisinde çıkacak çalışma hataların detaylarına erişebiliriz. Örneğin Flat File içerisinden veri okurken Numeric olan bir alandan String değerlerin gelmesi başlamasıyla paketimiz hata vermeye başlamış olabilir. Regülasyon kurallarından ötürü Audit amacı ile Windows Loglarına kayıt alınma ihtiyacı olabilir. SSIS’de Loglamayı detaylı ve çeşitli çözümleri incelemeye çalışalım.

Resim 1

Control Flow alanında sağ click ile birlikte açılan menüden Logging’e tıklayalım. Configure SSIS Logs Package alanınında Containers alanından Package ve ilgili Flow’un işaretlendiğinden emin olalım. SSIS içerisinde 5 farklı loglama yöntemi var;

  1. SQL Server içerisine Loglama
  2. Text Files içerisine Loglama
  3. XML Files içerisine Loglama
  4. Windows Event Loglama
  5. SQL Server Profiler Loglama
Resim 2

Hangi türden Loglama gerçekleştirecek isek Add butonu ile eklemeyi tamamladıktan sonra Configuration alanından nereye konumlandıracağımızı tanımlamamız gerekiyor.

  • Windows Event Loglama Configuration alanından herhangi bir tanımlama yapmanıza gerek yok. Event Viewer içerisinden gerçekleştirilen işlemlerin detaylarını görebilirsiniz.
  • SQL Server içerisinde Loglamada ise hangi veri tabanına Loglama gerçekleştirilecekse onu belirtmeniz yeterlidir.
  • Csv dosyası için daha önce konumlandırdığınız Csv dosyasının Path’ini verebilirsiniz.
  • Xml dosyası için daha önce konumlandırdığınız Csv dosyasının Path’ini verebilirsiniz.
  • Xml ve Csv dosyalarını SSIS içerisinde oluşturacağınız bir değişken ilede gerçekleştirebilirsiniz. Paket her çalıştığında yeni bir dosya oluşturup onun içerisinde Loglama işlemini tamamlayabilir. Örnek kodu aşağıda iletiyorum ve Resim 3’den bakabilirsiniz.

@[User::LogFolderPath]+@[System::PackageName]+"_"+Replace(Substring((DT_STR,50,1252)getdate(),1,17),":","")+".xml"

Resim 3

Tanımlamalar bitirdikten sonra hangi detayları loglayacağımızı seçelim;

Resim 4

Detaylar sekmesinden çok fazla işlem adımlarını detaylandırabiliriz. Açıklamalarına göz atıp ihtiyacınız olanı seçmeniz faydalı olacaktır.

Resim 5

Advanced butonuna tıklarsanız ilgili Log başlığı içinde hangi detayların eklenip eklenmeyeceğini belirtebilirsiniz. Tanımlama ve detay seçimi işlemini tamamladık. Şimdi paketimizi çalıştırabiliriz.

Resim 6

Ben küçük veri içeren .csv dosyasından veri okuyup temizleme işlemini gerçekleştirdikten sonra Sql Server içerisinde yer alan DWH isimli veri tabanıma Insert ediyorum. (Makale sonunda proje ve çıktılarına indirebileceğiniz bir link bıraktım.)

Resim 7

Çalışma tamamlandı ve csv dosyasına Loglama işlemi tamamlandı.

Resim 8

Çalışma tamamlandı ve xml dosyasına Loglama işlemi tamamlandı.

Resim 9

Çalışma sonrası Event Viewer açarak Windows Logs kısmından Application tabına giderek paketim ile alakalı loglama detaylarını gördüm.

Resim 10

Çalışma sonrası DWH isimli veri tabanım içerisinde System Tables altında sysssislog isminde bir tablom mevcut. Onun içerisinde her bir detayı aldı. SQL Server’a log gönderme işleminde sadece veritabanı seçmenizi isteyip öylece bırakıyor. Yeni bir tablo vs oluşturmuyorsunuz. O yüzden System tablosu altına bakmanız gerekecek. Direk Tables sekmesi herhanbir tablo göremezsiniz.

  • Regülasyon süreçleri ile alakalı Event Viewer içerisinde yazmak mümkün. Bu sayede SIEM sistemleri Log & Management süreçlerinde şeffaflık sağlanacaktır.
  • Tanımlama gerçekleştirilirken Details sekmesinde sadece ihtiyacınız olan türleri seçmek faydalı olacaktır. 50-100k satır işlem için bile fazlaca dosya boyutu olan Loglar görebilirsiniz. Diskinizde şişirme yapabilir.
  • SQL Server profiler kaydetme işlemi gerçekleştiremediğim için maalesef makaleye ekleyemedim. Ama SQL Server tarafında gerçekleşen işlemleri Profiler çıktısı almanız mümkün.

Projeyi ve Log çıktılarını incelemek isterseniz bu adresten indirebilirsiniz.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir