Uzmanına Sor

İş Zekası Hakkında Her Şey – 8

with 3 comments

Data Mart
Önceki bölümde bahsettiğim gibi işletmenin OLTP sistemlerini İş Zekası platformuna veri kaynağı olarak tanımlamamız durumunda ciddi sorunlarla karşılaşabiliriz. Bu sorunların önüne geçebilmek için OLTP sisteminde yer alan verileri OLTP sistemi dışında, ayrı bir alana aktarırız ve yapacağımız hesaplamalara kaynak olarak bu veri kaynağını kullanırız. Bu ayrı alana Data Mart adını veriyoruz.

Data Mart’ların Özellikleri
Data Mart’lar İş Zekası çözümüne kaynak olarak tasarlandıkları için, işleri işletmenin günlük işlemlerini yürütmek olan OLTP sistemlerden farklı bir yapıya sahiptirler. Normalizasyon kurallarına bağlı olarak tasarlanmalarına karşın, data mart’lar hızlı erişime göre optimize edilmişlerdir. Data Mart bir ilişkisel beritabanı olmakla birlikte, daha az join gerektirecek şekilde tasarlanırlar. Data Mart’larda hız kazanmak amacıyla denormalize (tekrarlayan) veri kabul edilebilir.

Bir Data Mart tasarımı yaparken, normalizasyon kuralları “fact”ler etrafında kümelenen farklı bir yapı ile değiştirilirler. Yeni tasarım yapısı “stars” ve “snowflakes” olarak adlandırılırlar. Bu iki kavramı bu ve sonraki bölümlerde inceliyor olacağız.

Gerçek Zamanlı Olmayan Veri
OLTP sistemler business transactionlara dair verileri bu transactionlar gerçekleştiği anda kaydeder. Data Mart’lar ise belirli aralıklarla güncellenirler. Veri OLTP sistemlerden belirli aralıklarla Data Mart’a aktarılır. Bu işleme “data load” olarak adlandırılır.

Data Mart’lar OLTP sistemlerden tamamen ayrı oldukları için, İş Zekası uygulamalarının Data Mart’lara erişimleri, OLTP sistemler üzerinde herhangi bir yük oluşturmaz. Bu durumun tek istisnası, data load işlemidir. Data Load sırasında OLTP sistemler kopyalanacak verilerin hazırlanması için ciddi yük altına girebilirler. Burada avantajımız, data load işleminin scheduled olarak off-peak zamanlarda çalıştırılabilecek bir işlem olmasıdır.

Önceki bölümlerde değindiğimiz gibi, data mart’ta bulunan veriler gerçek zamanlı değildir. Çoğu durumda işlem gerçekleşmesi ile gerçekleşen işleme dair verilerin data mart’a aktarılması arasında zaman olur. Eğer data load işlemi her ay, ay sonu işlemlerinden sonra gerçekleşecek şekilde schedule edilirse, data mart 1 aylık gecikmeye sahip olacaktır. Data load gecelik olarak çalışırsa, data mart 1 günlük gecikmeye sahip olacaktır.

İş Zekası gereksinimlerinin tam ve doğru olarak karşılanabilmesi için kabul edilebilir ve uygulanabilir gecikme doğru olarak belirlenmeli ve altyapı bu gecikme süresine göre tasarlanmalıdır. Data mart tarafından sunulacak veriler, sağlıklı karar verme sürecini destekleyecek yeterlilikte olmalıdır. Bununla birlikte data load işlemi, OLTP sistemin üzerinde gereksiz bir yük oluşturacak sıklıkta olmamalıdır.

Konsolidasyon ve Cleansing
Farklı OLTP sistemlerden gelen veriler tek bir data mart içinde birleştirilebilirler. Bu bazı complex hesaplamaları yapmamızı sağlar. Ancak daha önce bahsettiğim gibi bu gereksinimin önünde bazı engeller vardır. Birden çok OLTP sistem, veriyi saklamak için farklı formatlar kullanıyor olabilir. Aynı türden veri için tutarsız veri türleri ile karşılaşabiliriz. Aynı entity için eşleşmeyen identifier alanlar söz konusu olabilir ve farklı zamansal periyod ve tarih formatları kullanılıyor olabilir. Tüm bu farklılıklar, farklı sistemlerde yer alan verilerin birleştirilmesini zorlaştıracaktır.

Bu tür sorunlar veriler data mart’ta saklanmadan önce çözümlenmelidir. Bunun için cleansing adını verdiğimiz işlemi gerçekleştiririz.

Data Cleansing verileri data mart ortamında sorunsuz bir şekilde kullanabileceğimiz hale getirir. Tutarsız veri türlerini tek bir türe dönüştürür. Eşleşmeyen identifier alanları standart bir yapıya çevirir. Yapacağımız hesaplamalar için uygun olmayan verileri düzenler veya siler.

Data cleansing genelde daha büyük bir işlemin bir parçası olarak gerçekleştirilir. Bu büyük işlem verileri OLTP sistemden alır ve data mart’a aktarır. Bu nedenle bu sürecin tümüne verilen isim “extract, transform and load” kelimelerinin kısaltması olan ETL’dir. ETL süreci verileri OLTP sistemden alır, gerekli cleansing işlemlerini gerçekleştirir ve veriyi data mart’a aktarır.

Bir Data Martın Yapısı
İş zekası için kullandığımız veriyi 4 ana başlık altında inceleyebiliriz: measure, dimension, attribute ve hierarchy. Bu 4 veri türü bize bir data mart’ın yapısını tanımlamada yardımcı olur. Şimdi sırayla bu veri türlerini inceleyelim.

Measure
Measure olarak adlandırdığımız yapı İş Zekası başlığı altında yapacağımız her işin temelidir. Measure’lar olmadan iş zekası olamaz tespiti hiç de yanlış olmaz. Makalenin ilk bölümlerinde değindiğim gibi measure’lar, sağlıklı karar verme sürecinin en temel parçalarıdır.

Bir measure, işletmenin performansının ölçümünde kullanılmak üzere hesaplanan belirli bir konunun toplam değeridir. Measure, aynı zamanda fact olarak da adlandırılır. Measure bilgilerini içeren tablolara fact table ismi verilse de, fact table’lar fact’lerden daha fazlasını barındırırlar.

Dimension
Toplam satış miktarı karar verme sürecinde kullanılabilecek bir measure’dır. Ancak karar vericiler şirketin o güne kadar yaptığı toplam satışı görmek istemezler. Çünkü tüm satış personelinin, tüm ürünlerde, şirket kurulduğu günden o güne kadar yaptıkları toplam satış, tek bir rakamsal değer olarak çok anlamlı değildir. Bunun yerine karar vericiler bu değeri daha ufak parçalar halinde görmek isterler. Dimension’lar bu bölümlendirmede kullanılırlar.

Dimension’lar belirli bir measure ile ilgili kategorizasyon yapmamızı sağlar. Örnek vermek gerekirse toplam satış tutarını tek bir bilgi olarak kabul edelim. Geometride bir noktanın boyutu yoktur.

Picture1

Bir kategorizasyon yaparak (ya da dimension) bu tek bir noktayı temsil eden veriyi bölümlendirebiliriz. Örneğimize eldeki satış verilerini yıllık kategorilendirmeye tabi tutalım.

Picture3

Artık elimizde yıl isimli dimension’da her bir yıl için bir nokta içeren bir çizgi mevcut. Geometride çizgi tek boyutlu bir nesnedir. Bu nedenle elimizdeki measure’a bir dimension ekledik ve 2002, 2003, 2004, 2005, 2006, 2007 değerlerinin her biri Yıl isimli dimension’ın üyeleri (member) oldu.

Bu noktada toplam satış bilgisinin ürün bazında kırılımını elde edebiliriz.

Picture4

Toplam satışa ait measure’lar artık bir kare içinde hizalanmış durumdadır. Kare iki boyutlu bir nesne olduğu için oluşturduğumuz measure’a bir dimension daha ekledik. Ürün isimli bu dimension’ın “Ankara Serisi”, “İstanbul Serisi”, “İstanbul 2010 Kültür Başkenti” ve “Diyarbakır Serisi” isimli üyeleri vardır.

Şimdi toplam satış verisini bir defa daha, bölge bilgisiyle bölümlendirelim. Toplam satış measure’ı artık üç boyutlu bir nesne olan küp halini alacaktır. Görebileceğiniz üzere eklediğimiz her yeni kriter, elimizdeki measure’ın dimensionality oranını arttırmaktadır, bu nedenle ismi dimension’dır.

Picture6

Elimizdeki Measure’ı ek dimensionlar oluşturarak daha detaylı kırılımlar elde edebiliriz. Örneğin pazarlama kampanyası ve müşteri yaş grubu dimensionlarını ekleyerek önce 4 sonrasında ise 5 boyutlu bir nesne elde edebiliriz. Bu durumda nesnemiz bir grafikle görüntülemek için oldukça karmaşık bir hal alır. Bu 4 ve daha çok boyutlu nesneleri küp olarak tanımlarız. İlerleyen bölümlerde küpleri ilgili son derece detaylı olarak ele alıyor olacağız.

Bir sonraki bölümde start schema yapısını ele alıyor olacağız.

Written by Kadir Sümerkent

January 22nd, 2010 at 5:45 pm

Posted in İş Zekası

3 Responses to 'İş Zekası Hakkında Her Şey – 8'

Subscribe to comments with RSS or TrackBack to 'İş Zekası Hakkında Her Şey – 8'.

  1. tesekkurler

    Etibar

    23 Jun 10 at 08:01

  2. Ne demek (:

    Kadir Sümerkent

    23 Jun 10 at 19:47

  3. [...] Zekası Hakkında Her Şey: 1 – 2 – 3 – 4 – 5 – 6 – 7 – 8 – 9 – 10 – 11 – 12 Paylaş var a2a_config = a2a_config || {}; [...]

Leave a Reply