11
SQL Server Analiz Servisleri ve İş Zekası Süreçleri

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:

  1. ETL: Veri ara server da dönüştürülür
    ELT: Veri hedef sistemde dönüştürülür, maliyet daha uygundur.
  1. 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.
  1. ETL: Dataya ulaşmak uzun sürer, hata telafisi zor.
    ELT: Dataya ulaşmak kolaydır, hata telafisi kolaydır.
  1. ETL: DBMS lerle performanslı çalışır
    ELT: Bulut sistemi, yapısal veya yapısal olmayan veri kaynakları ile uygun çalışır.
  1. ETL: Veri dizaynı esnasında istenilen veriler harici gelmez.
    ELT: Değerli veriye development aşamasından sonra ulaşılır.
  1. 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.
  1. 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.
  1. 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.

Tablo 1. Tablosal model ve Çok Boyutlu modelin Kıyaslanması

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.

Şekil 2. Ürün, Müşteriler ve Satış Tabloları

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)

Şekil 3. Yıldız Şema. Gerçek (Fact) ve Boyut (Dimension) Tabloları 

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)

Şekil 4. Microsoft SQL Server Data Tools

Şekil 5. Microsoft Visual Studio Modify

Visual Studio 2019’da ise Manage Extensions kısmından SQL Server Analysis Services ve SQL Server Integration Services kısımları indirilmelidir. (Şekil 6)

Sağ üst kısımdan Analysis Services ve Integration Services olarak aratma yapılabilir. (Şekil 6)

Şekil 6. Microsoft Visual Studio Manage Extensions

Bunlar yüklendikten sonra Visual Studio’da Project ➡️ New Project denir.

Business Intelligence Analysis Services sekmesinden Analysis Services Multidimensional and Data Mining Project seçilir.

Projemiz’in solution kısmında oluştuğu görülür. (Şekil 7)

Şekil 7. Visual Studio Solution Explorer

Sonraki adımlar aşağıdaki görsellerdeki gibidir:

Tablolarımızı alacağımız veri kaynağımızı seçmek için New Data Source tıklanır. (Şekil 8)

Data Source ➡️ New Data Source

Şekil 8. Veri Kaynağı Alma

Next dedikten sonra “Create a data source based on an existing or new connection” seçilir ve New butonuna basılır:

Sunucu ismi girildikten sonra Select or enter a database name kısmında db isimleri otomatik olarak listelenecektir. Çalışmak istediğimiz db’yi seçtikten sonra Test Connection’a basıp bağlantımızın başarılı olduğunu görebiliriz. (Şekil 9)

Şekil 9. Connection Manager

Ok ve Next dedikten sonra Use the credentials of the current user denir.

Next ve finish diyerek projemize Data Source eklemiş oluruz.

Daha sonra raporlama için kullanılacak fact ve dimension tablolarını eklemek amacıyla data source view oluşturulmalıdır.

Next dedikten sonra istediğimiz tabloları sağ tarafa işaretli oklar sayesinde atılabilir. (Şekil 10)

Burada tabloların birbirleriyle aralarındaki ilişkiyi iyi bilmek gerekir. Burada ilişkiyi doğru kurduysak küp tarafında da sonucu doğru alacağız demektir.

Add related tables kısmı otomatik olarak tablolar arasındaki bağlantıyı yakalayarak fact ve dimension tablolarını belirlemektedir. Add Related Tables kısmını kullanmak riskli olacaktır çünkü bu kısım tablolar arasındaki ilişkiyi eğer tablolar doğru bir şekilde modellenmediyse yakalayamayacaktır.

Şekil 10. Tablo Belirleme

En sonda Next ve Finish denilerek Data Source View’ımızı oluşturmuş oluyoruz. (Şekil 11)

Şekil 11. Data Source View-Veri Kaynağı Görüntüsü

Küp oluşturmak için New Cube’e tıklanmalıdır. (Şekil 12)

Şekil 12. Küp Oluşturma

Daha önce oluşturduğumuz tabloları kullanmak için Use Existing Tables kısmı seçilmelidir.

Burada fact tablo işaretlenir.

Measurelerin hepsi seçilebilir.

Dimensionlar seçilir. Fact tablo da seçilmelidir.

Şekil 13. Boyut Seçme

Next ve Finish denilerek küp oluşturulur.

Cube oluştuktan sonra küp yapısı görüntülenecektir.

Yıldız şema şeklinde olan bu yapıda ortada gerçek (fact) tablo, buna bağlı olan boyut tabloları etrafında görülecektir.

Gerçek tablo ile boyut tablolar arasında bir bağlantı olabileceği gibi birden fazla ilişki de olabilir.

Küp Yapısı:

Şekil 14. Küp Yapısı

Küp oluştuktan sonra Boyut Kullanımı (Dimension Usage) kısmından boyutlar ve ilişkili olduğu ölçüler görüntülenebilir.

Parçalama (Partitions) kısmı çok büyük küplerde parçalama işlemini yapmaya yarar.

İki tablo arasındaki ilişkiyi düzenlemek istersek önce Cube Structure kısmında iki tablo arasındaki bağlantıya tıklayarak Edit Data Source View dememiz gerekmektedir.

Açılacak olan ekranda yine iki tablo arasındaki bağlantıda sağ click yaparak Edit Relationship veya Delete Relationship diyebiliriz.

Şekil 15. Tablolar Arasındaki İlişkilerin Düzenlenmesi

Veri tabanında (Analysis Services ➡️ Cubes ➡️ Browse) veya Visual Studio üzerinde “Browse” denildiğinde ölçümleri sağ tarafa atıp rapor olarak görüntüleyebiliriz. Boyut değerlere de kırılım burada yapılabilir.

Burada, istenilen kolonlarla rapor üretilebilir.

“Filter Expression” kısmından filtre yapılabilir.

Boyutlarda ya da alanlarda herhangi bir değişiklik yaptığımızda küpü her seferinde işleme sokmamız gerekmektedir. Solution ➡️ Project ➡️ Process ➡️ Save All

Küpü Excel’de Görüntülemek:

Excel ➡️ Veri Al ➡️ Veritabanından ➡️ Analysis Service’ten ➡️ Sunucu adı gir ➡️ İleri ➡️ Son ➡️ Pivot Tablo Rapor’u oluşturulur.

Dimension Usage’ın altında Add Cube Dimensions kısmından küpümüze boyut eklemesi yapabiliriz.

Küpün otomatik olarak belirli periyotlarla işleme girmesi de mümkün olmaktadır.

Sonuç:

Sonuç olarak, SQL Server Analiz Servisleri (SSAS) ve İş Zekası süreçleri, veri ambarlarını oluşturarak, verileri hızlı ve etkili bir şekilde işleyip kullanıcıların raporlama ihtiyaçlarını karşılamak için önemli bir rol oynamaktadır. ETL süreçleri, veri temizleme ve dönüştürme işlemlerini içerirken, SSAS üzerinde çok boyutlu veya tablosal modeller kullanılarak veriler anlamlı bir şekilde sunulur.

ETL ve ELT arasındaki farklar göz önüne alındığında, iş ihtiyaçlarına ve veri büyüklüğüne bağlı olarak tercih edilecek yöntem belirlenmelidir. Analiz servisi modelleri arasında çok boyutlu ve tablosal modeller bulunurken, her birinin avantajları ve dezavantajları vardır. Boyutsal küp mantığı, gerçek tabloların ve boyut tablolarının etkileşimini düzenler, bu da etkili raporlama için temel bir yapı sağlar.

Visual Studio kullanarak küp oluşturma adımlarıyla, veri kaynaklarını belirleme, boyutları seçme ve ilişkileri düzenleme gibi işlemler gerçekleştirilebilir. Küp oluşturulduktan sonra, boyut kullanımı, parçalama ve ilişki düzenleme gibi özelliklerle küpler özelleştirilebilir ve veri tabanında veya Excel üzerinde raporlamalar yapılabilir.

Sonuç olarak, SQL Server Analiz Servisleri ve İş Zekası süreçleri, organizasyonların verilerini etkili bir şekilde analiz etmelerine ve stratejik kararlar almalarına yardımcı olan önemli araçlardır.

Kaynakça:

İzzet Birden
Mayıs 14 , 2024
Diğer Blog İçerikleri