SSAS: İki Dünya, İki Dil
SQL Server Analysis Services (SSAS), Microsoft'un OLAP ve analitik modelleme platformudur. İki farklı modda çalışır: Tabular (DAX) ve Multidimensional (MDX). Forumlarda en çok tartışılan konu: _"Yeni projemde hangisini kullanmalıyım?"_
Kısa cevap: Yeni projeler için Tabular. Ama neden olduğunu anlamak önemli.
Mimari Farklar
Tabular Model
- In-memory: Tüm veri bellekte (VertiPaq motoru)
- DAX: Power BI ile aynı formül dili
- Kolon bazlı depolama: Analitik sorgularda çok hızlı
- Power BI uyumu: Mükemmel (aynı motor)
Multidimensional Model
- MOLAP: Önceden hesaplanmış aggregation'lar
- MDX: Karmaşık ama güçlü sorgu dili
- Drillthrough: Detaylı veri erişimi
- Write-back: Kullanıcılar veri yazabilir (bütçeleme)
Karşılaştırma
| Kriter | Tabular | Multidimensional |
|---|---|---|
| Sorgu dili | DAX | MDX |
| Motor | VertiPaq (in-memory) | MOLAP (disk + memory) |
| Performans | Çok hızlı (basit sorgu) | Hızlı (karmaşık sorgu) |
| Power BI uyumu | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ |
| Excel uyumu | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
| Write-back | ❌ | ✅ |
| Many-to-Many | Sınırlı | Doğal destek |
| Partition | ✅ | ✅ |
| Öğrenme eğrisi | Orta (DAX biliyorsanız) | Dik (MDX karmaşık) |
| Azure desteği | Azure AS + Fabric | Sadece on-premises |
| Gelecek | ✅ Aktif geliştirme | ⚠️ Bakım modu |
Ne Zaman Multidimensional?
Multidimensional'ı yalnızca şu durumlarda tercih edin:
- Bütçeleme/planlama: Write-back gerekli
- Karmaşık many-to-many: MDX'in doğal desteği
- Mevcut MDX yatırımı: Çok sayıda MDX sorgusu ve rapor var
DAX vs MDX Örnek Karşılaştırma
// DAX: Yıllık büyüme
YoY Büyüme =
VAR BuYil = [Toplam Satış]
VAR GecenYil = CALCULATE([Toplam Satış], SAMEPERIODLASTYEAR(Takvim[Tarih]))
RETURN DIVIDE(BuYil - GecenYil, GecenYil)-- MDX: Yıllık büyüme (aynı hesaplama)
WITH MEMBER [Measures].[YoY Büyüme] AS
([Measures].[Toplam Satış] -
([Measures].[Toplam Satış], [Zaman].[Yıl].CurrentMember.PrevMember)) /
([Measures].[Toplam Satış], [Zaman].[Yıl].CurrentMember.PrevMember)
, FORMAT_STRING = "Percent"
SELECT {[Measures].[Toplam Satış], [Measures].[YoY Büyüme]} ON COLUMNS,
[Zaman].[Yıl].Members ON ROWS
FROM [SatışKüp]Multidimensional'dan Tabular'a Geçiş
Mevcut Multidimensional modelinizi Tabular'a taşımak istiyorsanız:
- Tabular model oluşturun — aynı veri kaynağı
- DAX measure'ları yazın — MDX calculated member'ları dönüştürün
- Perspektifler tanımlayın — kullanıcı gruplarına göre
- Partition'ları ayarlayın — processing stratejisi
- Test edin — sonuçları Multidimensional ile karşılaştırın
- Excel raporlarını güncelleyin — bağlantı değişikliği
Azure Analysis Services ve Fabric
| Platform | Tabular | Multidimensional |
|---|---|---|
| SSAS On-Premises | ✅ | ✅ |
| Azure Analysis Services | ✅ | ❌ |
| Power BI Premium | ✅ (XMLA endpoint) | ❌ |
| Microsoft Fabric | ✅ (Semantic Model) | ❌ |
Buluta geçiyorsanız Tabular tek seçenek — Multidimensional Azure'da desteklenmiyor.
Sonuç
Yeni SSAS projeleri için Tabular model açık ara doğru seçimdir — Power BI uyumu, Azure desteği, DAX'ın öğrenme kolaylığı ve Microsoft'un yol haritası hep Tabular yönünde. Multidimensional yalnızca write-back veya mevcut MDX yatırımı gibi spesifik senaryolarda değerini korur. Mevcut Multidimensional modellerinizi orta vadede Tabular'a taşımayı planlayın.
