İnsanoğlu hala tüm bilgisayarların en alışılmadık olanıdır. Jhon F.Kennedy
17 Eylül 2018 Pazartesi
OLTP ve OLAP Küpü
OLTP (On Line Transactional Processing ) Nedir:
OLTP, verilerin ilişkisel veritabanı kurallarına göre saklanarak verilere paralel ve hızlı erişim sağlanabilmesi açısından oluşturulan bir tasarım örüntüsüdür, bu tasarım örüntüsü aynı zamanda OLTP'nin adından anlaşılacağı üzere verilerin tutarlılığını sağlamak için transaction yapılarını barındırması gerekir. OLTP yapılarının kullanılması gereken sistemler hakkında örnek verecek olursak, aynı banka hesabına bağlı 2 kopya ATM kartının aynı anda kullanımı söz konusu olduğunda sistem, hangi kartın işlemlerine cevap vermek için öncelik vermeli? İşte bu tür anlık veri erişimlerinde oluşabilecek sorunlar için veritabanı yönetim sistemlerinde transaction mantığını en iyi şekilde bağlayacak OLTP yapıları düşünülmüştür. OLTP kavramı aslında Oracle, SQL Server, IBM DB2, PostgreSQL, MySql, SQLite, DBeaver gibi ilişkisel veritabanlarının genel mantığını oluşturur.
OLTP bir anlamda verilere paralel erişimi sağlamak ve verilerin tutarlılığını saplamak için oluşturulmuş bir standarttır. OLTP kavramı günümüzde ilişkisel veritabanı tanımları ile hemen hemen aynıdır. Tek farkı ilişkisel veritabanı tablolar arasındaki ilişkileri tanımlarken, OLTP verileri barındırma, verilere erişim ve bu verilerin tutarlılığını sağlama standartlarıdır diyebiliriz.
OLAP (On Line Analytical Processing) Nedir ve OLAP Küpleri:
OLAP nedir; ilişkisel veritabanlarının yaygınlığı ve sonrasında ortaya çıkan veri ambarlarının gelişmesi ile beraber verilere daha hızlı erişime ve çok boyutlu (zamansal) analiz ihtiyaçları açısından düşünülmüş bir veri yönetim teknolojisidir.
Bir veri yapısının OLAP olarak nitelendirilebilmesi için 12 kural belirlenmiştir. Bu kurallar şöyle:
- Çok boyutlu inceleme özelliğine sahip olması,
- Şeffaflık,
- Erişilebilirlik,
- Her seviyede sorgulama için aynı performansı gösterebilme özelliği,
- İstemci - Sunucu yapısında olması,
- Sınırsız şekilde çapraz sorgulama olanağının olması,
- En alt seviyedeki verilerin otomatik olarak ayarlanması,
- Her şartta uygun boyutlandırılabilirlik,
- Çok kullanıcı desteğinin olması,
- Esnek raporlama özelliğinin olması,
- Boyut ve gruplamalarda sınır olmaması.
şeklindedir.
OLAP’ın özellikleri
Zaman kazancının dışında, OLAP 3 çok önemli özelliği de beraberinde getirmektedir :
· Verilere çok boyutlu bakabilme özelliği :
Analizler sırasında kullanmış olduğumuz, her türlü kırılıma boyut adını verebiliriz. Örneğin demografik veriler (yaş, cinsiyet, eğitim durumu), sayısal veriler, adetler, işlem miktarları, gerçekleşen ve bütçelenen değerler, ürün tipleri, ürün özellikleri ve zaman. Yöneticiler ve analistler, çalışmaları sırasında, tüm bu tanımlanan verileri yatay veya düşey eksenlerde çakıştırarak görmek isteyebilirler.
İlişkisel veri tabanları, bu şekilde raporlara izin vermezler, fakat raporlama araçlarının yetenekleri ile, belirli bir noktaya kadar tolere edilebilir. Fakat daha karmaşık analizler işin içine girdiğinde, bir OLAP yapısı kurmadan bu raporları almak imkansız hale gelebilir.
İlişkisel veri tabanları üzerinde karmaşık SQL kodları yazmak, ya da raporlama aracının sahip olduğu programlama dili üzerinde uğraşmak gerekebilir. Bu da, analizi yapan kişilerin, işin özünden çıkarak, analiz gerektirebilecek verilere değil, teknik olanaklara, daha kolay şekilde alabilecekleri verilere kanalize olmaları sonucunu doğurur. Bu nedenle, iş zekası programlarının pratik olmasının yanında, fazla teknik bilgi kullanmadan raporların alınabilir olması, farklı kaynakları bir arada kullanabilecek, konsolide edebilecek yapıda olmaları gerekir.
Boyutların başka bir özelliği de hiyerarşilerin tanımlanabilmesidir. Hiyerarşiler sayesinde, hem toplamlara ulaşmak kolaylaşmakta, hem de farklı gruplar için, farklı senaryolar hazırlayabilme şansı doğmaktadır.
· Karmaşık Hesaplamalar:
Bir OLAP sisteminin gerçek performansı, karmaşık hesaplamaları yapma gücü ile ölçülebilir. OLAP sistemleri, sadece toplama işleminden başka işlemler de yapabilecek güçte olmalıdırlar. Gerçek hayat, her zaman daha karışıktır. Analiz yapanlar için, asıl rakamlardan çok, yüzdesel dağılımlar çok daha önemlidir. Birkaç yıllık satış içerisinde, binlerce ürün türü için günlük bazda satışları yüzdesel olarak analiz edip, sıraya dizebilmek bir RDBMS ile saatler sürecek bir raporun çalışmasını gerektirebilir. Oysa uygun bir OLAP sistem ile, bir günlük satışlar ve birkaç yıllık satış rakamı arasında bir fark olmamalıdır. Satış tahminlerinde, genellikle “moving average” ve “yüzde artış” gibi trend analizleri kullanılır. Finansal analizlerde, envanter hesaplarında ve portföy performans hesaplarında, zamana göre ürünlerin toplanma sırası, sonucu tamamen değiştirebilir. (yukarıdan aşağıya, ya da aşağıdan yukarıya, LIFO-FIFO) Kullanılacak OLAP yapısında, bu şekilde hesaplamalara da izin verir bir yapısının olması gerekir.
· Zaman kavramları:
Zaman boyutu, neredeyse her analizin temel bileşenidir. Zaman, diğer boyutlardan farklı olarak, kendine has bir sıralama içerisine gider. Alfabetik (Ocak her zaman Şubat’tan önce gelmelidir) veya nümerik sıralamalardan (12/31, 01/01’den önce gelmelidir) her zaman farklıdır. Gerçek OLAP sistemleri, zamanın bu şekilde sıralanmasını sağlarlar.
OLAP’ın yararları:
Analiz yapan kişiler, daha kendine yeterli, IT’den bağımsız ve çok daha hızlı hale gelebilmektedirler.
Düşük kapasiteli sistemlerde yaşanan, zaman sıkıntısı problemleri ortadan kalkmaktadır. Üretim sistemini rapor için hızlandıracak büyük yatırımlar yerine, çok daha düşük maliyetli bir rapor sistemi kurmak bir çözüm olabilir. Yeni dönemde çıkan, tümleşik OLAP yapılarında, ilişkisel veri tabanı ve OLAP iç içe bir yapıda olduklarından, üretim sistemleri ya da veri ambarları üzerinde, toplamlar gerektiğinde, ilgili sorgulama OLAP küplerine yönlendirilerek, çok yüksek ölçüde performans getirisi sağlanabilmektedir.
Ayrıca bu yapılar sayesinde, OLAP sistemi için, hem yazılım hem de güncelleme anlamında, ikinci kez masraf yapmak zorluğu da ortadan kalkmaktadır.
Bu şekilde bir yatırımla, var olan IT sistemi de rahatlamakta, üretim sistemi üzerinde yer alan raporlar ortadan kalkmaktadır.
Farklı kaynaklardan alınan kaynaklar konsolide edilmekte ve veri güvenliği sağlanmaktadır.
Veriler toplamları alınmış şekilde bulunduklarından, toplam verilerin bulunması için gerekli raw-data, analistin makinesine aktarılması gerekmediğinden, network üzerinde büyük ölçüde bir trafik kazancı sağlanmaktadır.
Zaman kazancı, aynı zamanda kaynakların etkin kullanımı ve para kazancı anlamına da gelmektedir.
OLTP ve OLAP Arasındaki Farklar:
OLTP veri tabanlarında transaction sayısı diğer veritabanı yapılarına göre çok fazladır,
OLTP veri tabanlarında transaction’lar günün her anında düzensiz olarak gerçekleşebilirken OLAP'ta bu, veri aktarım zamanlarında daha düzenli bir yapı içerisinde gerçekleşmektedir. İş gereksinimlerine göre günlük, saatlik, aylık, haftalık aktarımlar ile veri ambarındaki transaction’lar düzenli bir şekilde oluşturulabilirler.
OLTP veri tabanlarında indeksler sıklıkla kullanılmaktadırlar. OLAP'ta indeksler veri aktarımlarını yavaşlattıkları gerekçesiyle sıklıkla tercih edilmezler.
OLTP veri tabanları normalize tablo yapılarında oluşturulduklarından veriler çok sayıda tabloya dağıtılmıştır. OLAP'ta ise farklı tablolardaki veriler bir araya getirilerek oluşturulurlar. Dolayısıyla OLAP'ta tablo join’lerinin sayısı daha az olması hedeflenmektedir.
OLTP veri tabanlarında veri tekrarından olabildiğince kaçınılmaktadır. OLAP'ta ise SQL sorgularının daha hızlı gelebilmesi için veri tekrarı çok daha fazla yapılmaktadır. OLAP denormalize olarak tasarlanırlar.
OLTP veri tabanlarında satır satır detay bilgiler mevcuttur. OLAP'ta ise özet tablolara sıklıkla rastlanmaktadır.
OLAP verileri yalnızca aktarım süreçleriyle güncellenmelidirler. Sql sorguları yazılarak dışarıdan veri güncellemesinden kaçınılmalıdır. OLTP veri tabanlarına ise kullanıcılar sürekli veri güncellemeleri yapabilmektedirler.
Bir OLAP sorgusunda genellikle binlerce satırlık veri işlenmektedir. Örneğin 2013 yılındaki toplam satışlar. OLTP veri tabanında ise genellikle daha sınırlı sayıda veri ile sorgulama yapılmaktadır. Örneğin 150 id’li müşterinin bilgileri.
Kaydol:
Kayıtlar (Atom)