DAX mı Power Query mi? Veri Hazırlama ile Model Hesaplamasının Ayrımı
Karşılaştırma

DAX mı Power Query mi? Veri Hazırlama ile Model Hesaplamasının Ayrımı

Hazırlayan: Mindset Institute EditörlüğüGüncellendi: 6 dk okuma

Power Query veriyi hazırlar, DAX modelin üzerinde hesap yapar. Power BI ve Excel'de hangi işi hangi katmanda yapmanız gerektiğini örneklerle öğrenin.

Kısa yanıt: biri veriyi getirir ve şekillendirir, diğeri hesaplar

Power Query, Microsoft'un veri hazırlama ve dönüştürme motorudur. Veri kaynağına bağlanır, gereksiz sütunları atar, satırları filtreler, tabloları birleştirir, veri tiplerini düzeltir ve sonucu modele yükler. Arkada çalışan dil Power Query M formül dilidir (kısaca M). Arayüzde yapılan her adım M kodu olarak kaydedilir ve veri yenilendiğinde aynı sırayla yeniden çalışır. Power Query kaynak veriyi değiştirmez; yalnızca kendi çıktısını üretir.

DAX (Data Analysis Expressions) ise tablosal veri modelinin üzerinde çalışan bir formül dilidir. Power BI, Analysis Services ve Excel'deki Power Pivot'ta kullanılır. Ölçüler (measure), hesaplanan sütunlar, hesaplanan tablolar ve satır düzeyinde güvenlik kuralları DAX ile yazılır. DAX'ın gücü bağlamdan gelir: aynı ölçü, raporda seçilen ürün, bölge ya da tarih aralığına göre her hücrede yeniden hesaplanır.

Kısaca sıralama şöyledir: Power Query veriyi modele gelmeden önce hazırlar, DAX modele gelmiş veriyi rapor anında analiz eder.

Ölçüt ölçüt karşılaştırma

  • Görev: DAX / hesaplama ve analiz; toplamlar, oranlar, zaman karşılaştırmaları, sıralamalar. Power Query / veri alma, temizleme, birleştirme ve yeniden şekillendirme.
  • Çalışma anı: DAX / ölçüler rapor etkileşime girdikçe her hücre için hesaplanır; hesaplanan sütunlar yenilemede hesaplanıp modelde saklanır. Power Query / yalnız veri yenilendiğinde çalışır.
  • Dil yapısı: DAX / Excel formüllerine benzeyen, tablo ve sütun başvurularıyla çalışan ifade dili. Power Query / adım adım ilerleyen, her adımı bir öncekinin sonucunu alan fonksiyonel M dili.
  • Bağlam farkındalığı: DAX / satır bağlamı ve filtre bağlamını kullanır, kullanıcının seçimlerine tepki verir. Power Query / rapor bağlamını bilmez; her yenilemede aynı sonucu üretir.
  • Arayüz desteği: DAX / formül çubuğunda yazılır, kod bilgisi gerektirir. Power Query / işlemlerin büyük bölümü menülerden kodsuz yapılır, gerekirse gelişmiş düzenleyicide (Advanced Editor) M koduna inilir.
  • Performans etkisi: DAX / kötü yazılmış ölçüler rapor açılışını ve etkileşimi yavaşlatır. Power Query / ağır dönüşümler yenileme süresini uzatır; desteklenen kaynaklarda dönüşümler kaynağa itilebilir.
  • Kullanıldığı yerler: DAX / Power BI, Analysis Services, Excel Power Pivot. Power Query / Excel, Power BI, dataflow'lar ve Power Platform gibi çok sayıda Microsoft ürünü.

Örnek: satış raporunda hangi adım nereye düşer?

Örneğin bir perakende şirketi, şubelerden gelen satış dosyalarını ve ERP'deki ürün listesini Power BI'da birleştirmek istiyor.

Power Query'de yapılması gerekenler:

  • Klasördeki tüm şube dosyalarını tek tabloda birleştirmek
  • Başlık satırlarını, boş satırları ve toplam satırlarını temizlemek
  • Tarih ve tutar sütunlarının veri tipini düzeltmek
  • Ürün kodlarındaki boşlukları ve harf farklarını gidermek
  • Geniş biçimde gelen ay sütunlarını satıra çevirmek (unpivot)
  • Ürün listesinden kategori bilgisini satış tablosuna eklemek ya da ayrı bir boyut tablosu olarak hazırlamak

DAX'ta yapılması gerekenler:

  • Toplam satış, brüt kâr ve kâr marjı ölçüleri
  • Geçen yılın aynı dönemiyle karşılaştırma ve yılbaşından bugüne toplam gibi zaman zekâsı hesapları
  • Seçilen kategori içinde ürünün payı ya da sıralaması
  • Bölge müdürünün yalnız kendi şubelerini görmesini sağlayan satır düzeyinde güvenlik kuralı

Kâr marjı gibi oranları Power Query'de satır bazında hesaplayıp sonra toplamak hatalı sonuç verir; oranın, kullanıcının seçtiği filtreye göre pay ve paydanın ayrı ayrı toplanmasıyla hesaplanması gerekir. Bu, DAX ölçüsünün işidir.

Gri bölge: hesaplanan sütun nerede yazılmalı?

Yaş grubu, fiyat bandı, tam ad ya da müşteri segmenti gibi satır bazında, rapor seçimine göre değişmeyen sütunlar hem Power Query'de hem DAX hesaplanan sütunu olarak üretilebilir. Genel kural, bu tür sütunları mümkün olduğunca veri akışının başında, yani Power Query'de ya da doğrudan kaynakta üretmektir. Bunun nedenleri:

  • Power Query'de üretilen sütun, modele diğer sütunlar gibi yüklenir ve sıkıştırma açısından genellikle daha verimlidir
  • Dönüşüm mantığı tek yerde, adım adım okunabilir biçimde durur
  • Aynı sorgu, dataflow üzerinden başka raporlarda da yeniden kullanılabilir
  • Desteklenen kaynaklarda dönüşüm, sorgu katlama (query folding) ile kaynağın kendisine yaptırılabilir

DAX hesaplanan sütunu ise başka tablolarla model ilişkisi üzerinden değer çekmek ya da model içindeki başka bir hesaplamaya dayanmak gerektiğinde mantıklıdır. Tersi için kural nettir: kullanıcının seçimine göre değişmesi gereken hiçbir değer hesaplanan sütun olarak yazılmaz, ölçü olarak yazılır.

Sık yapılan hatalar

  • Veri temizliğini DAX ile yapmak: Metin düzeltme, tip dönüştürme ve birleştirme işlerini hesaplanan sütunlarla çözmeye çalışmak modeli şişirir ve mantığı dağıtır.
  • Ölçü yerine hesaplanan sütun yazmak: Toplam satış gibi değerleri satır bazında sütun olarak saklamak, filtrelere doğru tepki vermeyen ve modeli büyüten bir yapı üretir.
  • Her şeyi Power Query'de hesaplamak: Ön toplamlı tablolar hazırlayıp raporda dilimleyici kullanmak, kullanıcı farklı bir kırılım istediğinde yanlış ya da eksik sonuç verir.
  • Sorgu katlamayı bozmak: Veritabanı kaynaklarında, kaynağa çevrilemeyen bir adımı erken eklemek sonraki adımların da Power Query motorunda çalışmasına yol açabilir ve yenilemeyi yavaşlatır.
  • Bağlamı anlamadan DAX yazmak: Satır bağlamı ile filtre bağlamı ayrımı oturmadan yazılan ölçüler toplam satırlarında beklenmedik sonuçlar verir.

Bu hataların ortak çözümü, işi doğru katmana koymaktır: şekillendirme veri akışının başında, analiz modelin içinde.

Öğrenme sırası ve birlikte kullanım

Power BI ya da Excel'de raporlamaya yeni başlayan biri için mantıklı sıra, önce Power Query, sonra veri modeli, en son DAX'tır. Temiz ve iyi kurulmuş bir yıldız şema olmadan DAX öğrenmek zorlaşır; kötü hazırlanmış veriyi DAX ile düzeltmeye çalışmak karmaşık formüllere yol açar.

Öğrenme yolu için öneri:

  • Power Query'de bağlantı, temizleme, birleştirme (merge ve append), gruplama ve unpivot işlemleri
  • Veri modelleme: olgu ve boyut tabloları, ilişkiler, tarih tablosu
  • DAX temel toplama ölçüleri ve ölçü ile hesaplanan sütun farkı
  • Filtre bağlamını değiştiren fonksiyonlar ve zaman zekâsı
  • İleri aşamada M kodunu elle düzenleme ve DAX performans iyileştirme

Bu araçlar rakip değil, aynı hattın ardışık parçalarıdır. Güçlü bir rapor geliştirici, bir hesaplamayı hangi katmanda yapacağına bilinçli karar verebilen kişidir.

Mindset programlarında DAX ve Power Query

Excel tarafında Excel Power Query ve Power Pivot eğitimi; Power Query temelleri, veri dönüştürme ve temizleme, ileri Power Query teknikleri, Power Pivot ile veri modeli ve Power Pivot için DAX temelleri modüllerini içerir. Power BI tarafında DAX'ı derinleştirmek isteyenler için Power BI İleri Düzey ve DAX eğitimi; CALCULATE ve filtre bağlamı, zaman zekâsı, hesaplama grupları, performans optimizasyonu ve satır düzeyinde güvenlik başlıklarını kapsar.

Uçtan uca bir program arayanlar için Uygulamalı Power BI ile Veri Analitiği ve Görselleştirme Sertifika Programı, veri analizi ve işleme teknikleri, veri modelleme ve DAX analiz dili modülleriyle bu katmanları birlikte ele alır.

İlgili Mindset programı

Power BI İleri Düzey ve DAX

Sık sorulanlar

Sık sorulan sorular

Power Query öğrenmeden DAX öğrenilebilir mi?

Teknik olarak evet, özellikle veri zaten temiz bir veritabanından ya da hazır bir modelden geliyorsa. Ancak gerçek iş verisi genellikle dağınık gelir ve modelin kalitesi DAX'ın ne kadar sade yazılacağını belirler. Bu yüzden rapor geliştirme hedefleyen biri için Power Query'nin temel dönüşümlerini bilmek pratikte gereklidir.

M dili ile DAX aynı dil mi?

Hayır. M, Power Query'nin veri dönüştürme dilidir ve adım adım ilerleyen, büyük/küçük harfe duyarlı fonksiyonel bir yapıya sahiptir. DAX ise veri modeli üzerinde hesaplama yapan, Excel formüllerine daha yakın görünen bir ifade dilidir. Sözdizimleri, fonksiyon kütüphaneleri ve çalışma zamanları tamamen farklıdır.

Excel'de de DAX ve Power Query kullanılabilir mi?

Evet. Excel'in Veri sekmesindeki veri alma ve dönüştürme deneyimi Power Query'dir. DAX ise Excel'de Power Pivot veri modeli içinde ölçü ve hesaplanan sütun yazmak için kullanılır. Excel'de kurulan bu yapı, Power BI'daki mantıkla büyük ölçüde örtüşür; bu nedenle Excel'de öğrenilen beceriler Power BI'a taşınabilir.

Performans sorunu yaşarsam önce hangisine bakmalıyım?

Yenileme yavaşsa önce Power Query adımlarına ve sorgu katlamanın bozulup bozulmadığına bakın; gereksiz sütun ve satırları erken filtrelemek belirgin fark yaratabilir. Rapor açılışı ya da dilimleyici etkileşimi yavaşsa sorun büyük olasılıkla DAX ölçülerinde ya da model tasarımındadır; yüksek kardinaliteli sütunlar ve gereksiz hesaplanan sütunlar da kontrol edilmelidir.

Hesaplanan tablo mu yoksa Power Query sorgusu mu kullanmalıyım?

Kaynaktan gelen veriyi şekillendirerek yeni bir tablo üretiyorsanız Power Query sorgusu genellikle daha uygundur. Model içindeki başka tablolardan türeyen, örneğin bir tarih tablosunu farklı rollerde kullanmak ya da modelden bir özet çıkarmak gerektiğinde DAX hesaplanan tablosu tercih edilebilir. Hesaplanan tablolar, beslendikleri tablolar yenilendiğinde yeniden hesaplanır.

DAX ile Power Query Farkı: Hangi İş Nerede Yapılır?