Aracılığıyla paylaş


çift yönlü ilişki kılavuzu

Bu makalede Power BI Desktop ile çalışan bir veri modelleyicisi olarak hedefleniyorsunuz. İki yönlü model ilişkilerinin ne zaman oluşturulacağı konusunda size rehberlik sağlar. çift yönlü ilişki, her iki yönde de filtreleyen ilişkidir.

Not

Model ilişkilerine giriş bu makalede ele alınmamıştır. İlişkiler, özellikleri veya bunların nasıl yapılandırıldığını tam olarak bilmiyorsanız, önce Power BI Desktop'ta Model ilişkileri makalesini okumanızı öneririz.

Yıldız şeması tasarımını anlamanız da önemlidir. Daha fazla bilgi için bkz . Yıldız şemasını ve Power BI'ın önemini anlama.

Genellikle, çift yönlü ilişkilerin kullanımını en aza indirmenizi öneririz. Bunun nedeni, model sorgusu performansını olumsuz etkileyebilecekleri ve rapor kullanıcılarınız için kafa karıştırıcı deneyimler sunabilecekleridir.

Ancak, çift yönlü filtrelemenin belirli gereksinimleri çözebileceği üç senaryo vardır:

Özel model ilişkileri

Aşağıdaki iki özel model ilişkisi türü oluşturulurken çift yönlü ilişkiler önemli bir rol oynar:

  • Bire bir: Bire bir ilişkilerin tümü çift yönlü olmalıdır; aksi takdirde yapılandırmak mümkün değildir. Genel olarak, bu tür ilişkiler oluşturmanızı önermeyiz. Eksiksiz bir tartışma ve alternatif tasarım desenleri için bkz.Bire bir ilişki kılavuzu.
  • Çoka çok:iki boyut tablosu ilişkilendirirken, bir köprü oluşturma tablosu gerekir. Filtrelerin köprü oluşturma tablosuna yayılmasını sağlamak için çift yönlü bir filtre gereklidir. Daha fazla bilgi için bkz. Çoka çok ilişki kılavuzu.

Dilimleyici seçenekleri "veri ile"

çift yönlü ilişkiler, seçenekleri verilerin bulunduğu konumla sınırlayan dilimleyiciler sunabilir. (Excel PivotTable'ları ve dilimleyicilerini biliyorsanız, Power BI anlam modeli veya Analysis Services modelinden veri kaynağını alırken varsayılan davranış budur.) Ne anlama geldiğini açıklamaya yardımcı olmak için önce aşağıdaki model diyagramını göz önünde bulundurun.

Üç tablo içeren bir modeli gösteren diyagram. Tasarım aşağıdaki paragrafta açıklanmıştır.

İlk tablo Customerolarak adlandırılır ve üç sütun içerir: Country-Region, Customerve CustomerCode. İkinci tablo Productolarak adlandırılır ve üç sütun içerir: Color, Productve SKU. Üçüncü tablo Salesolarak adlandırılır ve dört sütun içerir: CustomerCode, OrderDate, Quantityve SKU. Customer ve Product tabloları boyut tablolarıdır ve her birinin Sales tablosuyla bire çok ilişkisi vardır. Her ilişki tek bir yönde filtrelenir.

Çift yönlü filtrelemenin nasıl çalıştığını açıklamaya yardımcı olmak için model diyagramı tablo satırlarını ortaya çıkaracak şekilde değiştirilmiştir. Bu makaledeki tüm örnekler bu verileri temel alır.

Modelin artık tablo satırlarını ortaya çıkardığını gösteren diyagram. Satır ayrıntıları aşağıdaki paragrafta açıklanmıştır.

Üç tablonun satır ayrıntıları aşağıdaki madde işaretli listede açıklanmıştır:

  • Customer tablosunun iki satırı vardır:
    • CustomerCode CUST-01, CustomerCustomer-1, Country-RegionAmerika Birleşik Devletleri
    • CustomerCode CUST-02, CustomerCustomer-2, Country-RegionAustralia
  • Product tablosunun üç satırı vardır:
    • SKU CL-01, ProductT-shirt, ColorYeşil
    • SKU CL-02, ProductJeans, ColorBlue
    • SKU AC-01, ProductHat, ColorMavi
  • Sales tablosunun üç satırı vardır:
    • OrderDate 1 Ocak 2019, CustomerCodeCUST-01, SKUCL-01, Quantity10
    • OrderDate 2 Şubat 2019, CustomerCodeCUST-01, SKUCL-02, Quantity20
    • OrderDate 3 Mart 2019, CustomerCodeCUST-02, SKUCL-01Quantity30

Şimdi aşağıdaki rapor sayfasını göz önünde bulundurun.

Üç görsel içeren rapor sayfasını gösteren diyagram. Ayrıntılar aşağıdaki paragrafta açıklanmıştır.

Sayfada iki dilimleyici ve bir kart görseli yer alır. İlk dilimleyici Country-Region alanını temel alır ve iki seçeneği vardır: Avustralya ve ABD. Şu anda Avustralya'ya göre dilimler. İkinci dilimleyici Product alanına dayanmaktadır ve üç seçeneği vardır: Şapka, Kot pantolon ve tişört. Hiçbir öğe seçilmez (yani hiçbir ürün filtrelenmez). Kart görselinde 30 miktarı görüntülenir.

Rapor kullanıcıları Avustralya'ya göre kesim yaptığında, veri Avustralya satışlarıyla ilişkilendirildiği seçenekleri görüntüleyebilmek için ürün dilimleyicisini sınırlamak isteyebilirsiniz. Dilimleyici seçeneklerini "verilerle" göstermenin amacı budur. Product ile Sales tabloları arasındaki ilişkiyi her iki yönde de 'i filtreleyecek şekilde ayarlayarak bu davranışı elde edebilirsiniz.

Product ve Sales tabloları arasındaki ilişkinin artık çift yönlü olduğunu gösteren bir modeli açıklayan diyagram.

Ürün dilimleyicide artık tek bir seçenek listelenir: tişört. Bu seçenek, Avustralyalı müşterilere satılan tek ürünü temsil eder.

Product öğesinin vurgulanmasıyla birlikte üç görsel içeren rapor sayfasını gösteren diyagram. Ayrıntılar aşağıdaki paragrafta açıklanmıştır.

İlk olarak, bu tasarımın rapor kullanıcılarınız için çalışıp çalışmadığını dikkatle değerlendirmenizi öneririz. Bazı rapor kullanıcıları, dilimleyici seçeneklerinin diğer dilimleyicilerle etkileşime geçtiğinde neden dinamik olarak göründüğünü veya kaybolduğunu anlamadıkları için bu deneyimi kafa karıştırıcı buluyor.

Dilimleyici seçeneklerini "verilerle" göstermeye karar verirseniz, çift yönlü ilişkiler kurmanızı önermiyoruz. çift yönlü ilişkiler daha fazla işleme gerektirir ve bu nedenle sorgu performansını olumsuz yönde etkileyebilirler; özellikle modeldeki çift yönlü ilişkilerin sayısı arttıkça.

Aynı sonucu elde etmenin daha iyi bir yolu vardır: Çift yönlü filtreler kullanmak yerine, ürün dilimleyicinin kendisine görsel düzeyinde bir filtre uygulayabilirsiniz.

Şimdi Product ve Sales tabloları arasındaki ilişkinin artık her iki yönde de filtrelenmediğini düşünelim. Ayrıca, Sales tablosuna aşağıdaki ölçü tanımı eklenmiştir.

Total Quantity = SUM(Sales[Quantity])

Ürün dilimleyici seçeneklerini "verilerle" göstermek için yalnızca "boş değil" koşulu kullanılarak Total Quantity ölçüsüne göre filtrelenmesi gerekir.

Ürün dilimleyicisinin Filtreler bölmesinin artık Toplam Miktara göre filtrelendiğini gösteren diyagram boş değil.

Boyut-boyut analizi

çift yönlü ilişkileri içeren farklı bir senaryo, olgu tablosunuköprü oluşturma tablosugibi ele alır. Bu şekilde, farklı bir boyut tablosunun filtre bağlamında boyut tablosu verilerinin çözümlenmesini destekler.

Bu makaledeki örnek modeli kullanarak aşağıdaki soruların nasıl yanıtlanabilir olduğunu göz önünde bulundurun:

  • Avustralyalı müşterilere kaç renk satıldı?
  • Kaç ülke/bölge kot pantolon satın almış?

Her iki soru da köprüleme olgu tablosundaki verileri özetlemeden yanıtlanabilir. Ancak bu, filtrelerin bir boyut tablosundan diğerine yayılmasını gerektirir. Filtreler olgu tablosu aracılığıyla yayıldığında, boyut tablosu sütunlarının özetlenmesi, DISTINCTCOUNT DAX işlevi ve muhtemelen MIN ve MAX DAX işlevleri kullanılarak gerçekleştirilebilir.

Olgu tablosu köprü oluşturma tablosu gibi davrandıkça, iki boyut tablosunu ilişkilendirmek için çoka çok ilişki kılavuzunu uygulayabilirsiniz. Her iki yönde de filtrelemek için en az bir ilişki ayarlamayı gerektirir. Daha fazla bilgi için bkz. Çoka çok ilişki kılavuzu.

Ancak, bu makalede daha önce açıklandığı gibi, bu tasarım büyük olasılıkla performans üzerinde olumsuz bir etkiye neden olur ve dilimleyici seçenekleriyle ilgili kullanıcı deneyimi sonuçları "verilerle". Bu nedenle, bunun yerine CROSSFILTER DAX işlevini kullanarak ölçü tanımında çift yönlü filtrelemeyi etkinleştirmenizi öneririz. bir ifadenin değerlendirmesi sırasında filtre yönlerini değiştirmek ve hatta ilişkiyi devre dışı bırakmak için CROSSFILTER işlevini kullanabilirsiniz.

Sales tablosuna eklenen aşağıdaki ölçü tanımını göz önünde bulundurun. Bu örnekte, ve tabloları arasındaki model ilişkisi,tek yönde filtre uygulamak üzere ayarlanmıştır.

Different Countries Sold =
CALCULATE(
    DISTINCTCOUNT(Customer[Country-Region]),
    CROSSFILTER(
        Customer[CustomerCode],
        Sales[CustomerCode],
        BOTH
    )
)

Different Countries Sold ölçüsünün değerlendirilmesi sırasında, Customer ve Sales tabloları arasındaki ilişki her iki yönde de filtrelenir.

Aşağıdaki tablo görselinde satılan her ürün için istatistikler yer alır. Quantity sütunu yalnızca miktar değerlerinin toplamıdır. Different Countries Sold sütunu, ürünü satın alan tüm müşterilerin ülke-bölge değerlerinin ayrı sayısını temsil eder.

tablo görselinde iki ürünün listelendiğini gösteren Diyagramı. Satılan Farklı Ülkeler sütununda Jeans 1, T-shirt ise 2'dir.

Bu makaleyle ilgili daha fazla bilgi için aşağıdaki kaynaklara göz atın: