Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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 :ikiboyut 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.
İlk tablo Customer
olarak adlandırılır ve üç sütun içerir: Country-Region
, Customer
ve CustomerCode
. İkinci tablo Product
olarak adlandırılır ve üç sütun içerir: Color
, Product
ve SKU
. Üçüncü tablo Sales
olarak adlandırılır ve dört sütun içerir: CustomerCode
, OrderDate
, Quantity
ve 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.
Üç 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,Customer
Customer-1,Country-Region
Amerika Birleşik Devletleri -
CustomerCode
CUST-02,Customer
Customer-2,Country-Region
Australia
-
-
Product
tablosunun üç satırı vardır:-
SKU
CL-01,Product
T-shirt,Color
Yeşil -
SKU
CL-02,Product
Jeans,Color
Blue -
SKU
AC-01,Product
Hat,Color
Mavi
-
-
Sales
tablosunun üç satırı vardır:-
OrderDate
1 Ocak 2019,CustomerCode
CUST-01,SKU
CL-01,Quantity
10 -
OrderDate
2 Şubat 2019,CustomerCode
CUST-01,SKU
CL-02,Quantity
20 -
OrderDate
3 Mart 2019,CustomerCode
CUST-02,SKU
CL-01Quantity
30
-
Şimdi aşağıdaki rapor sayfasını göz önünde bulundurun.
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.
Ü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.
İ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.
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,
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
İlgili içerik
Bu makaleyle ilgili daha fazla bilgi için aşağıdaki kaynaklara göz atın:
- Power BI Desktop'ta model ilişkileri
- Yıldız şemasını ve Power BI'ın önemini anlama
- Bire bir ilişki kılavuzu
- Çoka çok ilişki kılavuzu
- İlişki sorunlarını giderme kılavuzu
- Sorularınız var mı? Fabric Topluluğu'na danışmayı deneyin
- Öneri? Doku geliştirmek için fikirlere katkıda bulunma