Data Profiling Task

6. December 2010

Bir projeye başlamadan önce en önemliöğelerden biri de verinin kalitesidir. Bu kaliteyi ölçmek, bizzat veriyi teneffüs etmeden mümkün olamıyor çoğu zaman. Projenin saat tahmininden tutun, oluşturacağınız Veri Ambarındaki kolon tiplerine ve hatta projenin sağlıklı sonuç vermesi için alacağınız önlemlere kadar çoğu konuda önemli olan Data Profiling (Veri Kesitleme) işlemini SSIS içerisinde sağlayan bir control flow öğesi mevcut.

Bu işlemi gerçekleştirmek için öncelikle Business Intelligence Development Studio içerisinde yeni bir ssis projesi yaratıp, Control Flow'dan da Data Profiling Task'ı ekleyelim.

 

Data Profiling Task'ın iki adet kullanım biçimi var. Bunlardan biri "Quick Style" dediğimiz yöntem ikincisi ise detaylı yöntem. Bunlardan hızlı bir başlangıç yapmak için Quick Style Yöntemini inceleyelim. (Aslında Quick Style sadece bir wizard. Nihayetinde o da detaylı yöntemin çıktıları haline dönüştürüyor.)

 

 

General sekmesinde bulunan öğeler sırasıyla şunlar:

Timeout: Data Profiling işlemi sırasında yapılan bağlantının timeout süresi

Destination Type: Data Profiling Task'ın çalışması sonucu verilerin nasıl kaydedileceğinin belirlenmesi için kullanılıyor. İki seçenek var. Bunlardan ilk File Connection, ikincisi ise Variable.

Destination: Sonucun nereye kaydedileceğinin belilendiği yer. Eğer ki Destination Type olarak File Connection seçtiyseniz yeni bir XML dosyası yaratmanız ve seçmeniz lazım. Eğer ki bir variable belirttiyseniz bunu burada seçeceksiniz.

Overwrite Destination: Seçtiğiniz Destination'da daha önceden bir veri varsa üzerine yazıp yazmamayı belirliyorsunuz.

 

Örneğimizde File destination kullanacağız ve bunun için bir masaüstünde xml dosyası yarattık. Hemen bu ekranın sağ alt köşesinde bulunan "Quick Profile" düğmesine basarak Quick Profile ekranına geçiyoruz.

 

ADO.NET Connection: Hangi Server'a bağlanacaksanız burada bağlantı bilgilerini tanımlıyorsunuz.

Table Or View: İstediğiniz tablonun ismini ya da tüm tabloları seçebilirsiniz. (Dikkat tüm tabloları seçmek sonucun oluşturulma süresini bazen fazla uzatıyor, dikkatli kullanın)

Compute: Ne gibi profiling işlemleri yapmak istediğinizi burada belirtiyorsunuz.

  • Column Null Ratio Profile: Tablonun kolonlarındaki değerlerin null olup olmamasına ait istatistikleri veriyor.
  • Column Statistics Profile: Kolonda bulunan sayısal değerlerin azami, asgari, ortalama, standart sapma vb. İstatistik bilgilerini veriyor.
  • Column Value Distribution Profile: Seçili tablonun kolonlarında bulunan değerlere ait dağılım ve yüzde dağılım özelliklerini gruplayarak veriyor.
  • Column Length Distribution Profile: Sayısal olmayan kolonlardaki yazıların uzunluk profilini veriyor.
  • Column Pattern Profile: Sayısal olmayan kolonlardaki yazıların desenlerini veriyor. (Regular Expression Formatı şeklinde)
  • Candidate Key Profile: İlgili kolonlardan hangilerinin Primary Key olmaya aday olduğuna dair sonuçlarını gösteriyor. (for up to: kaç kolonu birlikte değerlendirmesi gerektiğini gösteriyor)
  • Functional Dependency Profile: İlgili iki kolon kombinasyonun birbiri ile olan bağlılık ilişkisini kontrol ediyor. (Örneğin: Şehir kolonu : İstanbul, Plaka kolonu 34 olmalı, buna ait bağlı-aykırılıkları gösteriyor.)

 

Tablo olarak Adventure Works veritabanı içerisindeki [Sales].[Customer Address] tablosunu incelemek için çalıştırdığımızda masaüstünde nur topu gibi bir xml dosyamız oluyor. İçin açıp baktığınızda muhtemelen hiç bir şey anlamayacaksınız. Ancak Microsoft içerisinde gelen bir uygulama bu xml dosyasının sonuçlarını size uygun bir dille ifade etmeye yarayacak. Bu sonuçları düzgün bir şekilde görüntülemek istiyorsanız SQL Server'ın kurulu olduğu dizinde (Bu bende: C:\Program Files\Microsoft SQL Server\100\DTS\Binn) "DataProfileViewer.exe" isimli bir uygulama var. Hemen çalıştırıyoruz ve program açıldığında bizim sonuçlarımızı kaydettiğimiz xml dosyasını açıp inceliyoruz ve kararlarımızı ona göre veriyoruz.

 

 

 

 

 

 

Control Flow Tasks

Comments (1) -

erdem erdem
erdem erdem
8/27/2012 11:27:08 PM #
Functional Dependency Profile nasıl bir işe yaradığını tam anlayamadım açıkçası...

Add comment




biuquote
  • Comment
  • Preview
Loading