SQL Server Analiz Servisler (SSAS), verilerin bir veri kaynağından çekilerek hızlı veri talebini karşılayabilecek şekilde hazır halde beklemesini sağlayan yapıdır. Veri ambarının sunuma hazır hale getirilmesini sağlar. Yani; raporlama amacıyla kullanılır.
Veriler anlamlı bir şekilde, talep edilebilecek, kullanılabilecek çeşitli veri formatlarında RAM veya Disk’te, çok boyutlu küp halinde hazır halde gelecek talepleri karşılamayı beklerler.
Canlı sistemden sorgu çekmek sistemi yorabileceğinden, ayrı sunucularda bu veriler ile işlemler yapılır.
İş zekası süreçlerinde kullanılan SSAS için önce “İş Zekası”ndan kısaca bahsedelim.
Şekil 1. İş Zekası Süreçleri
Çeşitli veri kaynaklarında bulunan kirli verinin çıkar-dönüştür-yükle (ETL) süreçlerinden (Şekil 1) geçerek, veri ambarında çeşitli ilişkiler ve modeller kurgulanarak son kullanıcıya gösterişli raporlarla sunulması sürecine İş Zekası (Business Intelligence-BI) denir.
Performansı etkilemeden sürekli raporlar alabilmek için ETL/ELT işlemleri yapılmalıdır.
1) İlişkili Terimler
Farklı Veri Kaynakları: Veri tabanları, Excel, Txt dosyaları, canlı sistemlerden çekilecek API’ler veri kaynağı olabilir.
Veri Ambarı: Farklı yerlerden topladığımız verileri tek bir kaynakta toplamaktır. Gerçek manada ambar mantığında bir sistem olarak çalışır.
ETL Süreci: Verinin kaynak sistemden alınıp belirli işlemlerden geçirildikten sonra hedef sisteme yüklenmesidir.
Çıkarma (Extract): Verinin kaynağından okunmasıdır.
Dönüştürme (Transform): Ham verinin sıraya girip düzenlendiği, temizleme ve birleştirme vs. iş kurallarının uygulandığı aşamadır. Bu aksiyonlar sonucu kullanılabilir, değerli, işlenmiş veriye ulaşmış oluruz.
Yükleme (Load): Verilerin veri ambarına (DWH) yüklemesinin yapılmasıdır.
Kimi şirketler ETL süreci olarak çalışma yaparken kimileri ELT olarak çalışmakta; bu ikisi bir arada da kullanılabilmektedir.
ETL sürecinde Extract ➡️ Transform ➡️ Load şeklinde bir yapı varken ELT sürecinde işlemler Extract ➡️ Load ➡️ Transform şeklinde yapılır. İş ihtiyacına göre, Load (hedef sunucuya yükleme) sırası değişiklik gösterebilir.
2) ETL ve ELT Arasındaki Farklar:
- ETL: Veri ara server da dönüştürülür
ELT: Veri hedef sistemde dönüştürülür, maliyet daha uygundur.
- ETL: Çok iş kuralı ve yoğun dönüştümeler için ve küçük miktarda daha uygundur.
ELT: Büyük miktarda datalar için uygundur.
- ETL: Dataya ulaşmak uzun sürer, hata telafisi zor.
ELT: Dataya ulaşmak kolaydır, hata telafisi kolaydır.
- ETL: DBMS lerle performanslı çalışır
ELT: Bulut sistemi, yapısal veya yapısal olmayan veri kaynakları ile uygun çalışır.
- ETL: Veri dizaynı esnasında istenilen veriler harici gelmez.
ELT: Değerli veriye development aşamasından sonra ulaşılır.
- ETL: Küçük ve orta büyüklükteki işletmeler için yüksek maliyetlidir.
ELT: SaaS kullanan işletmeler için düşük maliyetlidir.
- ETL: Kullanılan çoğu parça tekil ve maliyeti yüksektir
ELT: SaaS(Software as a Service)’ın donanımı size ait değildir, hizmeti de uygun fiyatlıdır.
- ETL: Uzun süredir kullanıldığı için güzel alıştırmalar ve doküman bulmak kolaydır.
ELT: Daha yenidir, kurulumu karışıktır.
İki türlü Analiz Servisi Modu vardır:
- Tablosal (Tabular) Model
- Çok Boyutlu (Multidimensional) Model (OLAP Küpü)
3) Analiz Servisi Modelleri
Çok Boyutlu Model (Geleneksel OLAP Küpü):
Çevrimiçi analiz işleme (OLAP), iş verilerini farklı bakış açılarından analiz etmek için kullanabileceğiniz bir yazılım teknolojisidir. Kuruluşlar, web siteleri, uygulamalar, akıllı sayaçlar ve dahili sistemler gibi birden çok veri kaynağından veri toplar ve depolar. OLAP, stratejik planlama için eyleme dönüştürülebilir iç görüler sağlamak için bu verileri birleştirir ve kategoriler halinde gruplandırır.
Çok boyutlu model ise ilişkisel bir veri tabanından çok farklı yapıda olan ve çok hızlı raporlar üretmemizi sağlayan bir OLAP küpüdür. Geçmişte bu model multidimensional veri tabanları oluşturabilmemiz için tek çözümdü. SQL Server 2005’den SQL Server 2016’ya kadar yapısı itibariyle çok değişmedi. SSAS’e yeni eklenen özellikler incelenirse çoğunun tablosal modelle ilgili olduğu görülür.
Tabular (Çizelgesel/Tablosal) Model (İç Bellek Küp):
SSAS’deki iç bellek veri tabanıdır. SQL Server 2012’de tanıtıldı ve her yeni sürümü yeni özellikler içeriyor. Çok boyutlu model’den farklı bir yazılım motoru kullanır. Çok boyutlu model satır bazlı depolama yaparken, Tablosal model verileri daha çok sıkıştırabilmek için sütun bazlı depolama yapar. Veriler RAM’de saklanır. Bu nedenle sunucunuzun, analizler için yeterli RAM’e ve hızlı CPU’lara sahip olması gerekir. Diskler çok önemli bir etmen değildir. Tablosal model, bellek bağımlı bir çözümdür. Daha fazla bellek, daha iyi bir performans sağlar. Yeterli belleğiniz yoksa, tablosal modeli başarısız olur.
Tabular projesi, geliştiriciler için daha kolay gözükür, çünkü nitelikler arasındaki ilişkileri tanımlamanıza gerek yoktur. Bu adım, hiyerarşileri tanımlayabilmek ve böylece performansı optimize edebilmek için çok boyutlu modellerde zorunludur.
4) Boyutsal Küp Mantığı:
Dimension ➡️ Attribute
Fact ➡️ Measure
Boyut ➡️ Nitelik
Gerçek ➡️ Ölçü
Gerçek (fact) tablo asıl rapor çekilecek tablodur.
Nitelikler (attribute), Ürün Adı (ProductName), Müşteri Tipi (CustomerType), Müşteri Kategorisi (CustomerCategory) gibi alanlardan oluşurken;
Ölçüler (measure) rapora yönelik Maliyet (Cost), Miktar (Quantity), Toplam Tutar gibi alanlardan oluşur.
Burada Products ve Customers tabloları (Şekil 2) boyut tablolarıyken, Sales tablosu (Şekil 2) gerçek tablodur. Ancak Sales tablosunun içindeki CustomerName, CustomerType, CustomerCategory, ProductName gibi alanlara gerek yoktur.
En çok kullanılan şema yöntemi yıldız şemadır. (Şekil 3)
Ortada bir gerçek (fact) tablo ve bununla ilişkili birden fazla boyuttan (dimension) oluşur. (Şekil 3)
5) Visual Studio’da Küp Oluşturabilmek İçin Gerekli Adımlar:
Visual Studio 2017’de Analiz Servisleri yüklemek için SSDT (SQL Server Data Tools) setup’ı çalıştırılmalıdır.
Tüm seçenekler işaretlenip yükleme işlemi yapılmalıdır. (Şekil 4)
Düzenle (Modify) dedikten sonra Data Storage and Processing kısmında SQL Server Data Tools’un seçili olduğu görülmelidir. (Şekil 5)