OLAP Nedir?

OLAP Nedir? IT departmanları, bir çok şirkette bel kemiği, göz bebeği departmanları arasındaki yerini çoktan aldı. Elbetteki bu artışla birlikte veri yığınları da dağ gibi büyüyor. Bu verilerin sadece depolanan, ihtiyaç duyulduğunda bir bölümüne bakılarak kullanılan veri çöplüklerinden, gerçekten işe yarar, farklı yorumlara açık, gelecek için trend analizlerine uygun önemli bilgiler

        İlişkisel veritabanlarının boyutları artık bir çok orta-büyük seviyeli uygulamalarda onlarca gigabytetan terabyte"lara ulaşan boyutlarıyla raporlamayı imkansız bir hale getiriyor, üstelik bu raporlar genelde "elimizdeki ürünler ve onların satış fiyatları" gibi kolay raporlar olamıyor. Verinin ilişkisel yapısı nedeniyle karışıklığının yanında, boyutunun büyüklüğü nedeniyle doğan performans kaybı tahammül edilemez seviyelere ulaşabiliyor. Bir rapor almak için saatlerce bekleyen firmalar fazlasıyla çok.

        OLAP"ın teknik yapısına bakmadan önce şu soruya cevap verelim:                 İlişkisel veri tabanı mı daha hızlıdır yoksa flat file (düz text metni) mi?

        Bu soruya hemen hepinizin "elbetteki ilişkisel veri tabanı daha hızlıdır" dediğini duyuyorum. Cevap için öncelikle veri tabanlarının tarihine bakalım. Önceden bilgiler ilişkisel olmayan, yapısal text dosyalarında tutuluyordu. (hala bu tarz uygulamalar yazdığımız oluyor). Fakat 1970 yılında IBM de çalışan bir araştırmacı tarafından bulunan ilişkisel yapı ile, çok daha az yere (fiziksel alana) çok daha fazla veri depolamak mümkündü. Fikir hepimizin şuanda fazlasıyla iyi bildiğimiz RDBMS sistemleri. Tekrarlanmayan veriler, key"ler üzerinden kurulan ilişkiler.... vs.. (bu ilk ilişkisel veritabanının adı SEQUEL - Structured English Query Language"tir ve hala doğru ingilizce okunuşu es ku el  olmasına rağmen si qu el olarak okunmasının sebebi de budur.)

        İlişkisel veritabanları yer olarak çok daha küçük boyutlardadır fakat relational engine"in çalışması manuplasyon işlemerinden insert update ve delete"i hızlandırsa da, select için hiç performanslı sayılmaz. Hatta şunu açıkça belirtmeliyim ki, ilişkisel veri tabanlarında select işlemi çok daha yavaş çalışır. Gelin bunu örnekleyerek görelim.

008112 Kivanc    Özüölmez  Computer Engineering998610 Deneme  Deneme     Civil Engineering        ..........

datalarını içeren 1 milyon kayıtlı bir dosyamız olsun, tüm kayıtların fixed length ve bölümler ile tümleşik olduğunu görürüyoruz. Halbuki bunu ilişkisel bir yapıda kurmak isteseydik, bölümler için ayrı bir tablo yapardık, bölümID yi primary key ve foreign key constraintleri üzerinden bağlayarak bu işlemimizi gerçekleştirirdik.

    Bu 1 milyon kayıt içerisinde bizim aradığımız kayıt 500 000. olsun. Bir text dosya içinde 500 000. kayıda ulaştığımızda aradığımız tüm verileri almış oluruz. Fakat benzer bir yapıda ilişkisel veritabanında 500 000. kayıdı bulduktan sonra, o kaydın işaret ettiği diğer tablolara gidip o tablolar uzerinde de arama yapmamız gerekecekti. Dolayısı ile aradığımız kayıt 500 000. sırada olsa da, birlikte gelmesini istediğimiz datalara ulaşmak için ayrı bir çaba sarfedeceğiz.

    Aşağıdaki şekil bu işlemi çok daha açık bir şekilde özetliyor.

        Şekilden de anlayacağınız gibi, ilişkisel veri tabanları select işlemi için çok daha zayıf kalmakta. (bundan bahsederken birçok arkadaşım "indexleme var, bir çok arama algoritması var" diyor. Fakat indexlemeler vs.. gibi işlemler flat filelar üzerinde de yapılabilir!)

    Öyleyse karşımızda yine şu güzel oran var:  performans | storage . Flat File gibi yapılarda storage miktarımız çok ciddi oranlarda artmakta. Bu konuya daha sonra değineceğiz.

    Şu an için kısaca şu şekilde özetleyelim OLAP"ı : İlişkisel veri tabanının aksine veriyi tekrarlayarak, mümkün olduğunca az ilişki ile (dolayısıyla çok daha fazla veri alanı ile) veriyi depolayan, bu şekilde veriye erişim hızımızı cok büyük ölçüde arttıran yapılardır ve de yukarıya baktığımızda, flat file mantığı ile uyuşan yapıdır.

    Bir çok makalede OLAP sözcüğü ile bütünleşmiş küp kelimesi karşımıza çıkar. OLAP yapısının küpler ile ifade edilmesinin sebebi, aynen geometrik bir küp gibi kenarlara, boyutlara, her birim hacminde bir dataya sahip olmasıdır. Dolayısı ile nasıl ki rübik küpünü her çevirişinizde farkli bir yüzey, farklı bir data (aynı verilerden elde edilen farklı sonuclar) ile karşılaşır iseniz, OLAP yapısındaki datanıza da her farklı açıdan bakışınızda çok farklı sonuçlara ulaşırsınız.

    Örneğin, x adlı içeceğimizin yaz aylarındaki turistik bölgelerdeki satış miktarlarının hava sıcaklığı ve gün dağılımlı (hafta içi hafta sonu) olarak gidişatını görmek istiyorsunuz. Ya da y adlı ürünüzü alan kişilerin a ürününü mü daha çok tercih ettiğini yoksa b ürününü mü daha çok tercih ettiğini merak ediyorsunuz. Soru örnekleri çoğaltılabilir. Önemli olan beklentilerinize yönelik olarak kübünüzü kurabilmektir. (aynen rübik kübü gibi, bir tur çevirin tamamen farklı sonuçlarla karşılaşın.)

 Biraz daha gerçek dünyadan örnek verir isek bu teknolojiyi en çok kullanan şirketler büyük alışveriş mağazaları (hatta bu konuda öncü olan ve bu sayede de fazlasıyla büyüyen wallmart ) tır. Alışveriş mağazalarının bizlere dağıttığı üyelik / club / vs.. kartlarının da esas amacı bu tarz datalara ulaşabilmektir.

    Büyük bir veri tabanınızın olması OLAP"a ihtiyacınız var anlamına gelmez. Aksine, yukarıdaki tüm benzetmeleri ve detayları inceledikten sonra şu özet, bizi en doğru noktaya getirir: Database yapınız verilerinizi depolayacağınız, işlemlerinizi yapacağınız, sistemlerinizi çalıştıracağınız tabanınızdır. OLAP ise varolan verilerinizi anlamlandırmanızı, analiz edilebilir hale getirmenizi sağlar.

  OLAP küpü de aynen bir rübik küpü gibidir.Farklı açıdan baktığınız anda çok farklı sonuçlar görürsünüz.

    Biraz daha dışarıdan bakarsak OLAP"ın özellikleri şu şekildedir:

Çok boyutlu inceleme özelliğine sahip olması. Şeffaflık Erişilebilirlik Her seviyede sorgulama için aynı performansı gösterebilme özelliği Server - Client yapısında olması Çoklu kullanıcı desteği Esnek raporlanabilme Boyutlar ve gruplandırmalarda sınırların bulunmaması ve daha bir çok özellik...

    Dolayısıyla işlenmemiş veri ve analize hazır veri arasındaki farklılığı ve genel olarak OLAP mantığını açıklamış olduk. İlerleyen makalelerimizde, OLAP uygulamalarını SQL Server 2005 üzerinde nasıl yapabileceğimizi detaylı bir şekilde inceleyeceğiz.

Döküman Arama

Başlık :

Kapat