Bire bir ilişki kılavuzu
Bu makalede Power BI Desktop ile çalışan bir veri modelleyicisi olarak hedefleniyorsunuz. Bire bir model ilişkileriyle çalışma konusunda size rehberlik sağlar. Her iki tablo da ortak ve benzersiz değerlerden oluşan bir sütun içerdiğinde bire bir ilişki oluşturulabilir.
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.
Bire bir ilişkileri içeren iki senaryo vardır:
:Degenerate dimensions olgu tablosundan bozuk boyut türetebilirsiniz.Satır verileri tablolar arasındayayılıyor: Tek bir iş varlığı veya konu, büyük olasılıkla verileri farklı veri depolarından kaynaklandığından iki (veya daha fazla) model tablosu olarak yüklenir. Bu senaryo,
boyut tablolarında yaygın olabilir. Örneğin, ana ürün ayrıntıları işletimsel satış sisteminde depolanır ve ek ürün ayrıntıları farklı bir kaynakta depolanır. Ancak iki olgu tablosunu bire bir ilişkiyle ilişkilendirmeniz olağan dışı bir durum. Çünkü her iki olgu tablosunun da aynı boyutsallığa ve ayrıntı düzeyine sahip olması gerekir. Ayrıca, model ilişkisinin oluşturulmasına izin vermek için her olgu tablosunun benzersiz sütunlara ihtiyacı olacaktır.
Bozuk boyutlar
Olgu tablosundaki sütunlar filtreleme veya gruplandırma için kullanıldığında, bunları ayrı bir tabloda kullanılabilir hale getirebilirsiniz. Bu şekilde, filtreleme veya gruplandırma için kullanılan sütunları olgu satırlarını özetlemek için kullanılan sütunlardan ayırırsınız. Bu ayrım şu şekilde olabilir:
- Depolama alanını azaltın.
- Model hesaplamalarını basitleştirin.
- Geliştirilmiş sorgu performansına katkıda bulunun.
- Rapor yazarlarınıza daha sezgisel Veri bölmesi deneyimi sağlayın.
Sales
adlı, satış siparişi satırının başvuru ayrıntılarını iki sütunda depolayan bir kaynak tabloyu düşünün.
Diyagram
OrderNumber
sütunu sipariş numarasını depolar ve OrderLineNumber
sütunu sipariş içinde bir satır dizisi depolar.
Aşağıdaki görüntüde, sipariş numarası ve sipariş satırı numarası sütunlarının Sales
tablosuna yüklenmemiş olduğuna dikkat edin. Bunun yerine, değerleri adlı bir OrderLineNumberID
sütunu oluşturmak için kullanılmıştır. (Anahtar değeri, sipariş numarası 1000 ile çarpılarak ve ardından sipariş satırı numarası eklenerek hesaplanır.)
İki tabloyu gösteren
Sales Order
boyut tablosu, rapor yazarları için iki sütunu olan zengin bir deneyim sağlar: Sales Order
ve Sales Order Line
. Bu belirli sütunlar, siparişler ve sipariş satırlarını filtrelemesi, gruplandırması veya detaya gitmeleri gereken rapor tasarımlarını destekler.
Sales Order
tablosu satış verilerinden türetildiğinden, her tabloda tam olarak aynı sayıda satır olmalıdır. Ayrıca, her OrderLineNumberID
sütun arasında eşleşen değerler olmalıdır.
Satır verileri tablolar arasında yayılımı
bire bir ilişkili iki boyut tablosu içeren bir örneği düşünün: Product
ve Product Category
. Her tablo içeri aktarılan verileri temsil eder ve benzersiz değerler içeren bir SKU
(stok tutma birimi) sütunu vardır.
burada iki tablonun kısmi model diyagramı yer alır.
satır verilerinin tablolar arasında yayıldığı iki tablo içeren modeli gösteren
İlk tablo Product
olarak adlandırılır ve üç sütun içerir: Color
, Product
ve SKU
. İkinci tablo Product Category
olarak adlandırılır ve iki sütun içerir: Category
ve SKU
. Bire bir ilişki iki SKU
sütununu ilişkilendirmektedir. İlişki her iki yönde de filtrelenir ve bu her zaman bire bir ilişkiler için geçerlidir.
İlişki filtresi yayma işleminin nasıl çalıştığını açıklamaya yardımcı olmak için aşağıdaki görüntüde bazı tablo satırları gösterilir. Bu makaledeki tüm örnekler bu verileri temel alır.
Ürün ve Ürün Kategorisi tablolarını ve bazı veri satırlarını gösteren
İki tablonun satır ayrıntıları aşağıdaki madde işaretli listede açıklanmıştır:
-
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
Şapka,Color
Mavi
-
-
Product Category
tablosunun iki satırı vardır:-
SKU
CL-01,Category
Giyim -
SKU
AC-01,Category
Aksesuarlar
-
Veri bölmesinde rapor yazarları ürünle ilgili alanları iki tabloda bulur: Product
ve Product Category
. Şimdi her iki tablodaki alanlar bir tablo görseline eklendiğinde ne olacağını görelim. Bu örnekte, SKU
sütununun kaynağı Product
tablosudur.
İki tablo ve dört sütun içeren bir tablo görseli içeren Veri bölmesini gösteren
ÜRÜN SKU'su Category
için değerinin BLANK olduğuna dikkat edin. Bunun nedeni, bu ürün için Product Category
tablosunda karşılık gelen satır olmamasıdır.
Öneriler
Mümkün olduğunda, satır verileri model tablolarına yayıldığında bire bir model ilişkileri oluşturmaktan kaçınmanızı öneririz. Bunun nedeni, bu tasarımın aşağıdakilere sahip olmasıdır:
- Gerektiğinden daha fazla tablo listeleyerek Veri bölmesi dağınıklığıyla katkıda bulunun.
- Rapor yazarlarının birden çok tabloya dağıtıldığı için ilgili alanları bulmasını zorlaştırabilirsiniz.
- Düzeylerinin aynı tablodaki sütunları temel alması gerektiğinden hiyerarşi oluşturma özelliğini sınırlayın.
- Tablolar arasında satırların tam eşleşmesi olmadığında beklenmeyen sonuçlar elde edin.
Belirli öneriler, bire bir ilişkinin kaynak grubu içi mi yoksa kaynaklar arası mı olduğuna bağlı olarak değişir. İlişki değerlendirmesi hakkında daha fazla bilgi için Power BI Desktop'taki Model İlişkileribölümüne bakın.
Kaynak grubu içi bire bir ilişki
Tablolar arasında bire bir kaynak grubu içi ilişki varsa, verileri tek bir model tablosunda birleştirmenizi öneririz. Power Query sorgularını birleştirerek bunu yapabilirsiniz.
Aşağıdaki adımlar, bire bir ilgili verileri birleştirmek ve modellemek için bir metodoloji sunar.
Sorguları birleştirme: İki sorguyu birleştirirken, her sorgudaki verilerin eksiksizliğini göz önünde bulundurun. Bir sorgu tam bir satır kümesi içeriyorsa (ana liste gibi), diğer sorguyu onunla birleştirin. Birleştirme dönüştürmesini varsayılan birleştirme türü olan sol dış birleştirmekullanacak şekilde ayarlayın. Bu birleştirme türü, ilk sorgunun tüm satırlarını tutmanızı ve bunları ikinci sorgunun eşleşen satırlarıyla birleştirmenizi sağlar. İkinci sorgunun tüm gerekli sütunlarını ilk sorguya genişletin.
Sorgu yüklemesini devre dışı bırak: İkinci sorgunun yükünü devre dışı bırakmayı unutmayın. Bu şekilde, sonucunu bir model tablosu olarak yüklemez. Bu yapılandırma, veri modeli depolama boyutunu azaltır ve Veri bölmesinin dağınık olmasını sağlar.
Örneğimizde rapor yazarları artık
Product
bölmesinde adlı tek bir tablo bulur. Ürünle ilgili tüm alanları içerir.Eksik değerleri değiştirme: İkinci sorguda eşleşmeyen satırlar varsa, bu sorgudan tanıtılan sütunlarda null değerler görünür. Uygun olduğunda null değerleri bir belirteç değeriyle değiştirmeyi göz önünde bulundurun. Rapor yazarları sütun değerlerine göre filtrelediğinde veya gruplandırdığında eksik değerlerin değiştirilmesi özellikle önemlidir çünkü rapor görsellerinde BOŞLUKlar görünebilir.
Aşağıdaki görsele dikkat edin, ürün SKU'su CL-02 için kategori artık [Tanımsız]olarak görünüyor. Sorguda null kategoriler bu belirteç metin değeriyle değiştirildi.
Hiyerarşi oluşturma: Şimdi birleştirilmiş tablonun sütunları arasında ilişkiler varsa, hiyerarşiler oluşturmayı göz önünde bulundurun. Bu şekilde rapor yazarları rapor görseli detaylandırma fırsatlarını hızla belirler.
Örneğimizde rapor yazarları artık iki düzeyi olan bir hiyerarşi kullanabilir:
Category
veProduct
.Veri bölmesini gösteren
Ayrı tabloların alanlarınızı düzenlemeye nasıl yardımcı olduğunu beğendiyseniz, yine de tek bir tabloda birleştirmenizi öneririz. Yine de alanlarınızı düzenleyebilirsiniz, ancak bunun yerine görüntüleme klasörlerini kullanabilirsiniz.
Örneğimizde rapor yazarları Category
görüntüleme klasöründeki Marketing
alanını bulabilir.
Yine de modelinizde bire bir kaynak grubu içi ilişkiler tanımlamaya karar verdiyseniz, mümkün olduğunda, ilişkili tablolarda eşleşen satırlar olduğundan emin olun. Bire bir kaynak grubu içi ilişki normal bir ilişki olarak değerlendirildiğinden, veri bütünlüğü sorunları rapor görsellerinizde BLANK olarak ortaya çıkabilir. (Bu makalede sunulan ilk tablo görselinde BLANK gruplandırma örneğini görebilirsiniz.)
Kaynak grupları arasında bire bir ilişki
Tablolar arasında bire bir çapraz kaynak grubu ilişki varsa, veri kaynağınızdaki verileri önceden birleştirmediğiniz sürece alternatif model tasarımı olmaz. Power BI, bire bir model ilişkisini sınırlı bir ilişki olarak değerlendirir. Bu nedenle, eşleşmeyen satırlar sorgu sonuçlarından kaldırıldığından, ilişkili tablolarda eşleşen satırlar olduğundan emin olun.
Şimdi her iki tablodaki alanlar bir tablo görseline eklendiğinde ve tablolar arasında sınırlı bir ilişki olduğunda ne olacağını görelim.
Kaynaklar arası grup ilişkisi kullanan ilk tablo görselinde yalnızca iki satır görüntülenir.
tablosunda eşleşen satır olmadığından ürün SKU Product Category
eksik. Modeldeki tek bir birleştirilmiş tabloyu temel alan ikinci tablo görseli üç satır görüntüler.
İ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
- İlişki sorunlarını giderme kılavuzu
- Sorularınız var mı? Fabric Topluluğu'na sormayı deneyin
- Öneri? Doku geliştirmek için fikirlere katkıda bulunma