Uçtan Uca Power BI Eğitimi ön siparişte!

Şimdi üye ol, eğitim yayınladığında öde, %50 indirimli al!
ön sİpARİŞ VER

Veri Modelinde Hesaplanmış Sütun Kullanımı?

DAX 101Veri Modeli

Power BI ‘da hesaplanmış sütunlarla ilgili ilk yazıyı neredeyse 6 yıl önce yazmışım ! Veri modelinde hesaplanmış sütunlar kullanmak –genellikle– önerilmeyen bir yöntemdir. Eksileri -genellikle- artılarından daha fazladır çünkü. Fakat en iyi opsiyonun hesaplanmış sütun olduğu bazı durumlar var. Bu durumda açmamız gereken konu şu: Hesaplanmış sütun kullanımı ne zaman tercih edilmeli, hesaplanmış sütunları ne zaman kullanalım, ne zaman kullanmayalım?

Eğer İngilizce kaynakları takip ediyorsanız, hesaplanmış sütun kavramı “calculated column” olarak geçiyor terminolojide.

Hesaplanmış Sütun Ne Demek?

Hesaplanmış sütunu tariflemek gerekirse: Orijinal veride olmayan, ama orijinal veriden türetebileceğimiz, veri modeli tarafında DAX kullanarak oluşturulmuş sütunlardır. Bir kez oluşturulduktan sonra, işlev olarak orijinal verideki orijinal sütunlardan hiçbir farkı yoktur.

Veri modeli tarafında sütunu ekleyeceğimiz tabloyu seçtik, “New Column” dedik, formülümüzü yazdık, tablonun orijinalinde olmayan bir hesaplanmış sütun oluştu! Hesaplanmış sütunların yanındaki ikon da farklıdır.

Bize ne zaman bir sütun lazım?

Cevaplamamız gereken ilk soru her zaman için bu: Bize, yapmak istediğimiz işi yapabilmek için ne zaman mutlaka bir sütun lazım? Sütun kullanmadan da ihtiyacımızı karşılayabilir miyiz?

Yukarıdaki örnekten devam edersek: Bize satış tutarını hesaplayan bir metrik (measure) lazım, bu metriği de boyut değerlerine göre, yıl-ay gibi farklı dönemlere göre görsellerde göstermek istiyoruz, tüm ihtiyacımız bu kadar ! Eğer durum buysa, ekstradan bir sütuna ihtiyacımız yok!

Metriğimizi yazar geçeriz:

Satışlar = SUMX( 'Satışlar', 'Satışlar'[Fiyat] * 'Satışlar'[Miktar] )

Ama satış tutarlarını kendi içinde gruplamak istiyoruz diyelim: Acaba satışlarımız hangi tutar aralığında gerçekleşiyor daha çok? 0-1000 arası mı, 1000-2000 arası mı? Soru bu ve aşağıdaki gibi bir görsel oluşturmak istiyoruz.

Bu durumda bize mutlaka bir sütun lazım! Metrikleri eksenlere düşürüp kendi içinde gruplayamayız. Bunu -mevcut durumda- sadece sütun kullanarak yapabiliriz.

Ya da, satış tutarı 1000’in üzerinde olan kaç satış yaptık gibi bir soruya cevap vermek istiyoruz ve komplesk formül yazmayalım istiyoruz.

Bu formül synxtax hatası verip çalışmaz!

Çalışmaz! = 
CALCULATE( COUNTROWS( 'Satışlar') ,
 [Satışlar] > 1000
)

Ama bu formül çalışır!

Çalışır = 
CALCULATE( COUNTROWS( 'Satışlar') ,
 'Satışlar'[Tutar] > 1000
)

Mevcut durumda CALCULATE -‘in filtre koşullarında metrikleri TRUE/FALSE condition’lar için kullanmak mümkün değil! ( Metrikleri filtre koşullarında kullanmanın istisnaları var ama detaya girip konuyu dağıtmayayım!)

Eğer ihtiyaç bu yukarıdaki iki örnek benzeriyse, modelde bize mutlaka bir sütun lazım. Dikkatinizi çekerim, “sütun” dedim, “hesaplanmış sütun” demedim!

Sütun Oluşturma Yöntemleri Neler?

Power BI veri modelinde bir tabloya sütun eklemenin tek yolu hesaplanmış sütun değil: Herhangi bir sütunu modelinize

  • Veri kaynağı tarafında
  • Power Query tarafında
  • bu örnekte olduğu gibi veri modeli tarafında ekleyebilirsiniz.

Hesaplanmış sütun derken sadece bu son opsiyonu kastediyoruz.

Bu üç alternatiften hangisini seçmek daha doğru? Cevap: Duruma bağlı!

Sütunu orijinal veri kaynağı tarafında eklemek -genellikle- en ideali, sonra -genellikle- Power Query, en son hesaplanmış sütun yapısını kullanmak lazım. Bu genel kural, yani 100% her durum için geçerli değil.

Peki hangi durumlarda hesaplanmış sütunu tercih edelim?

Misal, size lazım olan sütunu Power Query’de eklediğinizde eğer query folding‘i bozuyorsa, hesaplanmış sütun daha mantıklı olacaktır.

Ya da, PATH, PATHITEM gibi hiyerarşileri bulmaya yönelik spesifik DAX fonksiyonları var, ama bunların Power Query karşılıkları -mevcut durumda- yok! Misal, finansal hesaplar arasındaki hiyerarşiyi veri kaynağında yaratmak ciddi hüner ister! Ama bu fonksiyonlarla kolaylıkla hesaplanmış sütun olarak buluruz!

hesaplanmış sütun kullanımı

Eğer ihtiyacınız buna benzer bir durumsa, hesaplanmış sütun en mantıklı ve en kolay çözüm olacaktır.

Bu durumların haricinde bize hesaplanmış sütun lazım değil, işimizi metriklerle çözmemiz lazım.

Hesaplanmış Sütunların Dezavantajları Neler?

Modelinize gereksiz yere hesaplanmış sütun(lar) eklerseniz etkileri az veya çok ama mutlaka aşağıdaki durumlar olacaktır:

  • Modeli refresh etme süreniz uzar. Basit formüllü hesaplanmış sütunlar abartı uzatmaz refresh süresini ama olumsuz etki eder. Çünkü hesaplanmış sütunlar her refresh esnasında tekrar hesaplanır.
  • Model büyüklüğünüz artar. Kardinalitesi düşük bir sütun ekliyorsanız bu etki o kadar da büyük olmaz ama illaki dosya büyüklüğünüz artacaktır. Çünkü modele fiziksel bir sütun ekliyoruz. + Hesaplanmış sütunlar, veri kaynağındaki orijinal sütunlar kadar iyi sıkıştırılamıyor.

Performanslı, hızlı güncelleyen veri modelleri dilerim!

Bloga sosyal medya hesabınızla hızlı üye olmak için ilgili ikonu tıklayabilirsiniz.

Yorum yapın

PowerBI İstanbul

Power BI, Power Query, DAX, Azure servisleri, SSAS, DW, R, veri madenciliği, veri modelleme ve veri görselleştirme üzerine Türkçe bilgi içeriğine katkı sağlamayı amaçlar.

Intellect BI blog sitesidir.

Intellect BI & PowerBI İstanbul, Microsoft Data Analytics ve Power BI Partneri 'dir.

Blog Yazılarına Üye Olun

Blog yazıları, eğitim ve meetup duyuruları posta kutunuza gelsin!

7,3K Üye