Ölçeklenebilir hesaplamalar tasarlama

Tamamlandı

Modeliniz yapılandırılmış. Şimdi, verileriniz ve ekibiniz büyüdükçe performansı ve sürdürülebilirliğini koruyan hesaplamalar tasarlayın. Küçük ölçekte, yinelenen ölçülere ve tutarsız adlandırmaya sahip bir model ideal olmasa bile çalışmaya devam eder. Büyük ölçekte çöker. Yüzlerce ölçüye sahip bir model, yinelenen mantığı önleyen, büyük veri kümelerinde sorgu süresini azaltan ve yeni ekip üyelerinin hata eklemeden modeli anlayıp genişletmesini mümkün hale getiren yapısal tasarım kararlarına ihtiyaç duyar.

Bu ünite üç deseni kapsar: ölçülerin çoğalmasını azaltmaya yönelik hesaplama grupları, ekip tarafından sürdürülebilirlik için DAX okunabilirliği disiplini ve büyük olgu tablolarında sorgu performansı için birleştirmeler.

Hesaplama grupları

Hesaplama grupları, birden çok ölçüye aynı hesaplama desenini uygulayan model nesneleridir. Her çeşitleme için ayrı ölçüler oluşturmak yerine deseni bir kez tanımlar ve dinamik olarak uygularsınız.

Hesaplama gruplarının çözdüğü sorun

50 temel ölçüye (Toplam Satış, Toplam Maliyet, Kar ve Satılan Birimler gibi) sahip bir kuruluşu düşünün. Her ölçü için Yılbaşından Bugüne, Çeyrek Dönem Başından Bugüne ve Aybaşından Bugüne hesaplamaları gereklidir. Hesaplama grupları olmadan 50 × 3 = 150 ek ölçü olur. Önceki yıl karşılaştırmalarını eklediğinizde bakım için 250'den fazla ölçüye bakıyorsunuz.

Hesaplama gruplarıyla, her akıllı zaman gösterimi düzeni için hesaplama öğeleri içeren bir grup oluşturursunuz. Bu öğeler modeldeki herhangi bir ölçüye otomatik olarak uygulanır.

Hesaplama grupları nasıl çalışır?

Hesaplama grubu, her biri SELECTEDMEASURE() kullanarak geçerli ölçüyü değiştiren bir DAX ifadesi tanımlayan hesaplama öğeleri içerir. Zaman zekası hesaplama grubu:

// Year-to-Date
CALCULATE(
    SELECTEDMEASURE(),
    DATESYTD('Date'[Date])
)
// Quarter-to-Date
CALCULATE(
    SELECTEDMEASURE(),
    DATESQTD('Date'[Date])
)
// Month-to-Date
CALCULATE(
    SELECTEDMEASURE(),
    DATESMTD('Date'[Date])
)

Kullanıcı hesaplama grubunu görsele eklediğinde, her birleşim için ayrı ölçüler olmadan herhangi bir ölçü (Toplam Satış, Kar veya Satılan Birim gibi) için YTD, QTD ve MTD arasında geçiş yapabilir.

Dinamik biçim dizeleri

Dinamik biçim dizeleri, hesaplama öğesi bağlamına göre görüntüleme biçimini değiştirir. Örneğin, yüzde hesaplaması yüzde olarak görüntülenirken, aynı temel ölçüye uygulandığında bile para birimi hesaplamaları para birimi olarak görüntülenmelidir.

// In the format string expression for a YoY % calculation item:
"0.0%"

Dinamik biçim dizeleri, ayrı biçimlendirilmiş ölçüler gereksinimini azaltır ve biçimlendirmenin model genelinde tutarlı kalmasını sağlar.

Tip

Power BI'da hesaplama grupları oluşturma hakkında daha fazla bilgi edinin.

Hesaplama grupları ne zaman kullanılır?

Aynı hesaplama deseninin uygulanması gereken üç veya daha fazla ölçüye sahip olduğunuzda hesaplama gruplarını kullanın. Yaygın kullanım örnekleri arasında akıllı zaman gösterimi (YTD, QTD, MTD), para birimi dönüştürme ve varyans hesaplamaları (gerçek ile bütçe) yer alır.

DAX okunabilirlik uzmanlık alanı

Ekibin 200'den fazla ölçüye sahip olmasıyla, okunabilirlik kişisel tercih değil tasarım kararıdır. Tutarlı, okunabilir DAX, bakım hatalarını azaltır ve yeni ekip üyelerinin modeli anlamasını kolaylaştırır.

Değişkenler

Değişkenler ara sonuçları depolar, okunabilirliği artırır ve altyapının aynı ifadeyi birden çok kez değerlendirmesine engel olur:

Profit Margin =
VAR TotalRevenue = SUM(Sales[Revenue])
VAR TotalCost = SUM(Sales[Cost])
VAR ProfitAmount = TotalRevenue - TotalCost
RETURN
    DIVIDE(ProfitAmount, TotalRevenue)

Değişkenler olmadan, aynı SUM(Sales[Revenue]) ifade karmaşık bir ölçüde üç kez görünebilir. Değişkenler ifadeyi bir kez değerlendirir ve sonucu yeniden kullanabilir.

Tip

DAX formüllerini geliştirmek için değişkenleri kullanma hakkında daha fazla bilgi edinin.

Adlandırma kuralları

Modelinizde birden çok kişi tarafından tutulan yüzlerce ölçü olduğunda tutarlı adlandırma kritik önem taşır. Aşağıdakiler için kurallar oluşturun:

  • Ölçü adları: "Total Sales" veya "YoY Revenue Growth" gibi açık ve açıklayıcı adlar kullanın. Yalnızca özgün yazarın anladığı kısaltmalardan kaçının.
  • Değişken adları: TotalRevenue yerine x veya temp gibi ara değeri açıklayan adlar kullanın.
  • Hesaplama grubu öğeleri: Öğeleri çalışma şekillerine göre değil yaptıklarına göre adlandırır ("DATESYTD Sarmalayıcısı" yerine "Year-to-Date" gibi).

Açıklayıcı adlandırma yapay zeka tüketimi için de önemlidir. Copilot veya veri aracısı modelinizi sorguladığında, hangi hesaplamaların dahilleneceğini belirlemek için ölçü adlarını ve açıklamalarını kullanır. "YoY Revenue Growth" adlı bir ölçü, "Calc7_v2" değerinden daha iyi yapay zeka sonuçları üretir.

Tip

Power BI'daki Copilot DAX formüllerinin yazılıp açıklanmasını sağlayabilir. Karmaşık ölçüler üzerinde çalışırken iyileştirmeler önermek veya mevcut mantığı açıklamak için Copilot kullanın.

Yineleyiciler ve toplama işlevleri karşılaştırması

Yineleyici işlevleri (SUMX, AVERAGEX, MAXX) bir tablo üzerinde satır satır ifadesini değerlendirir. Toplama işlevleri (SUM, AVERAGE, MAX) tek bir sütun üzerinde çalışır. Büyük veri hacimlerinde seçim önemlidir:

  • Tek bir sütunu özetlerken toplama işlevlerini kullanın. Motor, önceden oluşturulmuş veri yapılarını kullanabildiği için daha hızlıdır.
  • Hesaplama satır düzeyi bir ifade gerektirdiğinde (satır başına gibi Quantity × UnitPrice ) yineleyicileri kullanın.

Uyarı

Yineleyiciler her satırı işler ve bu da büyük olgu tablolarındaki performansı etkileyebilir.

Savunma desenleri için bilgi işlevleri

Bilgi işlevleri ISBLANK, HASONEVALUE ve ISINSCOPE gibi farklı filtre bağlamlarına sahip birden çok rapor tarafından tüketilen ölçüler için savunma desenleri oluşturur.

Sales per Customer =
IF(
    HASONEVALUE(Customer[CustomerID]),
    DIVIDE(SUM(Sales[Amount]), 1),
    DIVIDE(SUM(Sales[Amount]), DISTINCTCOUNT(Sales[CustomerID]))
)

Bu desenler, ölçüler özgün yazarın öngöremediği bağlamlarda kullanıldığında beklenmeyen sonuçları engeller.

Aggregations

Toplamalar, önceden hesaplanmış toplamları ayrıntı verilerinden daha yüksek bir dilimde depolayan özet tablolardır. Sorgular önce bu tablolara isabet eder ve bu da büyük olgu tablolarında performansı artırır. Bir sorgu bir toplamayla eşleştiğinde, altyapı milyonlarca ayrıntı satırını taramak yerine daha küçük özet tablosundan sonuçlar döndürür.

Tasarım kararı olarak veri toplamaları

Toplamaların ne zaman ekleneceğine ve hangi ayrıntı düzeyinde olduğuna karar vermek bir tasarım kararıdır. Performans izleme ve ayarlama ayrı işletimsel sorunlardır, ancak model tasarımı sırasında yapısal seçim yaparsınız.

Aşağıdaki durumlarda toplamaları göz önünde bulundurun:

  • Olgu tabloları milyonlarca satırı aşıyor ve yaygın olarak kullanılan sorgular verileri daha yüksek bir dilimde özetler (bölgeye göre aylık toplamlar gibi).
  • Kullanıcılar, özet düzeyindeki görsellerde yavaş sorgu yanıt süreleri yaşar.
  • Rapor etkileşimlerinin çoğunun satır düzeyi ayrıntıya ihtiyacı yoktur.

Toplama davranışının depolama moduna göre farkı

İçeri aktarma modunda toplamalar ayrı gizli tablolar olarak depolanır. Altyapı, eşleşen sorguları otomatik olarak toplama tablosuna yönlendirir.

Direct Lake modunda Delta tabloları toplama kaynakları olarak görev yapabilir. Direct Lake sütunlu Parquet dosyalarını okuduğundan, altyapı birçok senaryoda toplamalar olmadan daha büyük veri hacimlerini işleyebilir. Toplamaları yalnızca sorgu desenleri gereksinimi onayladığında ekleyin.

Tip

Power BI'de kullanıcı tanımlı toplamalar hakkında daha fazla bilgi edinin.