Rastgele Yazılar : Tekrarlanan Kayıtları Silmek
Rastgele Yazılar : Oracle eksiksiz bir bulut resmi çiziyor
Rastgele Yazılar : Data Guard Broker Konfigurasyonu ve Switchover Operasyo...
Rastgele Yazılar : Oracle Veritabanı Deployment Analizi
Rastgele Yazılar : Oracle 11g Enterprise Manager Konsol ve Internet Explor...
Rastgele Yazılar : Oracle Alert ve Trace Dosyaları
Rastgele Yazılar : Veri Tipleri ve Temel SQL Queryleri
Rastgele Yazılar : Oracle Hata Kodları
Rastgele Yazılar : SQL NEDİR ?
Rastgele Yazılar : Rman Backup' ın Kaldığı Yerden Tekrar Başlatılması (Bac...
Veri ambarı ile uğraşan kişilerin sıkça duyduğu bir kavramdır.Mutlaka oltp sistemleriyle karşılaştırılması ve küp yapılmaya çalışılması ile meşhurdur J Veri ambarı yapısını yeni kuracak bir şirketteki yöneticilerle konuştuğumda tek amaçlarının küp yapmak olduğunu söylüyorlardı.Veri ambarı = Olap küpleri , algısının olması garip ve düşündürücü ?
Peki bu OLAP nedir ?
Açılımı “online analytical processing “ Türkçesi “çevrimiçi analitik işleme” dir.
Online : Canlı,hazır,gerçek veriye ulaşırsınız.
Analytical Processing: Verileri analiz etmektir.Anlık sorgular,çok boyutlu,zaman tabanlı..vb
OLAP raporlar ile geleceğe yönelik analizler çıkarmak mümkün(iyi bir istatistikçi olduğunuzu varsayıyorum) fakat biz yaptığımız veya yapıyor olduğumuz şeylerin raporlarını oluşturuyoruz. Örneğin ; geçen bir ay içinde(dün de dahil) şu üründen şu bölgede şu zaman aralıklarında şu profildeki insanlara ne kadar sattık ? Veya , geçen sene şu şu markalı ürünlerimizin geçmiş 5 seneye göre üretim oranları nedir ?
Yukardaki sorularda gördüğümüz şey bir ürün ve o ürüne ait alt özellikler.Satış yeri,zamanı,miktarı,biçimi..vb Yani bunların herbirisi için bir dimensional model vardır.Yani boyutsal yapılar vardır.Peki bir OLAP küpündeki bu yapılar nedir kısaca bunlara bakalım;
Measures ; Bu ölçüler sayısal bir veriyi temsil ederler.Yani bir küp yapımızdaki somut ifadelerdir.Herbir boyut yapısına göre yeni bir değer oluşturulur. Aşağıdaki şekildeki kırmızı çizgiler bir somut değeri ifade eder.Sayı,metin,tarih..vb ifadelerdir.
Bu veriler değerleriyle veya belli bir formülasyondan geçmiş şekilde ,tablolarımızda tutulur.
Dimensions; Bir küp düşünürsek herbir kenarı bir dimension’dır.Her bir hücrenin birleşiminden oluşmuşlardır.Aşağıdaki şekilde ürün ,şehir ve zaman bilgisi bir dimension yani boyuttur.
Her dir dimension’ı oluşturan 3 farklı yapı vardır.Bunlar; hierarchies,levels,attributes lardan oluşur.Şimdi bu yapılara bakalım;
Hierarchies: Bu hiyerarşiler aslında bizim navigasyonumuz gibidir.Parent-child ilişkisine dayalı olarak verileri indexlemek ve ölçülerin (measures) toplamlarını gerçekleştirdiğimiz yapılardır.Bir veya birden fazla kırılımları olabilir.
Levels: Yukardaki şekilde görüldüğü gibi bu hiyerarşideki her bir adım bir level’i temsil eder.
Attributes: Öznitelikler anlamına gelen bu yapılarda herbir dimension elemanı hakkında açıklayıcı bilgiler verilir.Aşağıdaki şekilde görüldüğü gibi ürünler ve onlara özgü bilgiler açıklanmaktadır.
Buraya kadar bir OLAP küpünün içini görmeye çalıştık.Peki bu olap küpleri hangi yapılardan oluşturulabilir ?
Bunun için 2 türlü yapımız vardır.Multidimensional form ve RDBMS yapıları.
1.Multidimensional Database
Kullanıcılar tarafından tercih edilen mantıksal modelleme tipidir.Hızlı geliştirilmesi ve depolama yeteneği vardır.Güçlü analitik hesapları daha kolay şekilde yapabilir.Dezavantajları ise extra maliyet,öğrenme süreci ve ölçebilirliğin sınırlı olmasıdır.
2.RDBMS Yapıları
Daha geniş hacimli verileri barındırı.İlişkisel yapılar sayesinde öğrenme süreci kısadır.Her bir sisteme göre extra maliyeti yoktur. 1. Seçeneğe göre yüksek kapasitedeki hesaplamaları yapmak daha zordur.
Şimdi bu yapıların performanslarını grafiksel olarak görelim;
Yukardaki grafik sorgu performanslarını karşılaştırmaktadır.Görüldüğü gibi RDBMS te karmaşık sorgular arttıkça sorgu performansı düşmektedir.Buna karşın MD yapılarında artış vardır. Sorgular çok karmaşık olsada sorguların analiz edilme ve sonuçlanma süresinde çok az bir düşüş vardır.
Aşağıdaki şekil ise verilerin zaman göre sorgu hazırlanma grafiğini göstermektedir.Burda dikkat edilmesi gereken Relational data types da 0 dan başlayan bir geliştirme süreci olması.Yani Relation yapılarında kullandığımız ,star veya snowflake şema yapılarında oluşturulan bir küp yapısı bize performans olarak geri dönecektir.Fakat bunları hazırlama süreci uzun olacaktır.Bu yapıyı kurduktan sonra karmaşık sorgulardaki performansımız bir nebze daha iyi olur ve karmaşık hesapları daha kolay hale getirebiliriz.
Olap raporları nasıl olmalı?
Olap küplerini oluşturdunuz ( hangi tipteki olap ama ? bunları anlatan birçok makale mevcut o yüzden çeşitlerini ayrıntılı olarak başka bir yazımda anlatacağım) ve şimdi raporlarını almaya başlayacaksınız.Bu aşamaya kadar geçtiğiniz süreçleri sıralarsak; (istisnalardan bahsetmiyorum)
Kaynak sistemden verileri aldınız – Staging alanında topladınız- Buraya aktarılırken veya buradan veri ambarına aktarılırken ETL aşamasında tüm cleaning-conforming ve quality problemlerini çözdünüz-Data martlar sayesinde verilerinizi bölümlendirdiniz.
İşte şimdi rapor alma zamanınız geldi.Eğer bu yapılardan geçerken küp yapısına uygun bir modelleme yapmadıysanız ve verilerinizde sorun varsa asla sağlıklı bir rapor alamazsınız.Son kullanıcının üst yönetime doğru raporları vermesi için doğru ve güvenilir bir akışı takip etmemiz gerekmektedir.
Günümüzde olap küplerini oluşturacağınız birçok araç mevcuttur.Bu konuda hangisini tercih edeceğiniz sizin yapınıza ve şirketinizin parasına göre değişir.Fakat open source olan veya sadece bakım ücreti talep eden araçlarda mevcut.
Zamanımız olduğu sürece olap küplerine devam edeceğiz.Görüşmek üzere.
Kaynaklar;
http://www.oracle.com/technetwork/database/options/olap/index.html
http://www.olapcube.com/