Bire bir ilişki kılavuzu

Bu makale, Power BI Desktop ile çalışan bir veri modelleyicisi olarak sizi hedefler. 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:

  • Bozuk boyutlar: Olgu türündeki bir tablodan dejenere bir boyut türetebilirsiniz.

  • Satır verileri tablolara yayılıyor: Tek bir iş varlığı veya konusu, 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 türündeki tablolar için 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 olgu türündeki iki tabloyu bire bir ilişkiyle ilişkilendirmeniz olağan dışı bir durum. Bunun nedeni, olgu türündeki her iki tablonun 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 türündeki tablonun benzersiz sütunlara ihtiyacı olacaktır.

Bozuk boyutlar

Olgu türündeki bir tablodaki 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ı azaltma
  • Model hesaplamalarını basitleştirme
  • Geliştirilmiş sorgu performansına katkıda bulunma
  • Rapor yazarlarınıza daha sezgisel bir Alanlar bölmesi deneyimi sunma

Satış siparişi ayrıntılarını iki sütunda depolayan bir kaynak satış tablosu düşünün.

Table rows for a sales table.

OrderNumber sütunu sipariş numarasını, OrderLineNumber sütunu ise sipariş içindeki bir satır dizisini depolar.

Aşağıdaki model diyagramında sipariş numarası ve sipariş satırı numarası sütunlarının Sales tablosuna yüklenmemiş olduğuna dikkat edin. Bunun yerine, değerleri SalesOrderLineID adlı bir vekil anahtar sütunu oluşturmak için kullanıldı. (Anahtar değeri, sipariş numarası 1000 ile çarpılarak ve ardından sipariş satırı numarası eklenerek hesaplanır.)

A model diagram contains two tables: Sales and Sales Order. A one-to-one relationship relates the SalesOrderLineID columns.

Satış Siparişi tablosu, rapor yazarları için üç sütun içeren zengin bir deneyim sağlar: Satış Siparişi, Satış Siparişi Satırı ve Satır Numarası. Ayrıca bir hiyerarşi de içerir. Bu tablo kaynakları, siparişler ve sipariş satırlarını filtrelemek, gruplandırmak veya detaya gitmek için gereken rapor tasarımlarını destekler.

Satış Siparişi tablosu satış verilerinden türetildiğinden, her tabloda tam olarak aynı sayıda satır olmalıdır. Ayrıca, her SalesOrderLineID sütunu arasında eşleşen değerler olmalıdır.

Satır verileri tablolar arasında yayılımı

Bire bir ilişkili boyut türündeki iki tabloyu içeren bir örnek düşünün: Ürün ve Ürün Kategorisi. Her tablo içeri aktarılan verileri temsil eder ve benzersiz değerler içeren bir SKU (Stok Tutma Birimi) sütununa sahiptir.

burada iki tablonun kısmi model diyagramı yer alır.

A model diagram contains two tables. The design is described in the following paragraph.

İlk tablo Product olarak adlandırılır ve üç sütun içerir: Color, Product ve SKU. İkinci tablo Ürün Kategorisi 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 model diyagramı tablo satırlarını gösterecek şekilde değiştirilmiştir. Bu makaledeki tüm örnekler bu verileri temel alır.

Not

Power BI Desktop model diyagramında tablo satırlarını görüntülemek mümkün değildir. Tartışmayı net örneklerle desteklemek için bu makalede yapılır.

The model diagram now reveals the table rows. The row details are described in the following paragraph.

İ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, Ürün Tişörtü, Renk Yeşili
    • SKU CL-02, Ürün Jeans, Renk Mavisi
    • SKU AC-01, Ürün Şapkası, Mavi Renk
  • Ürün Kategorisi tablosunun iki satırı vardır:
    • SKU CL-01, Kategori Giyim
    • SKU AC-01, Kategori Donatıları

Ürün Kategorisi tablosunun ürün SKU CL-02 için bir satır içermediğini fark edin. Bu eksik satırın sonuçlarını bu makalenin devamında ele alacağız.

Alanlar bölmesinde rapor yazarları ürünle ilgili alanları iki tabloda bulur: Ürün ve Ürün Kategorisi.

The Fields pane shows both tables expanded, and the columns are listed as fields with Product and Product category called out.

Şimdi her iki tablodaki alanlar bir tablo görseline eklendiğinde ne olacağını görelim. Bu örnekte, SKU sütunu Product tablosundan kaynaklanmıştır.

A table visual includes four columns: SKU, Product, Color, and Category. The Category value for product SKU CL-02 is BLANK.

SKU CL-02 ürününün Kategori değerinin BLANK olduğuna dikkat edin. Bunun nedeni, bu ürünün Ürün Kategorisi tablosunda 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 yapabilecekleri:

  • Alanlar bölmesi dağınıklığıyla katkıda bulunma ve gerekenden daha fazla tablo listeleme
  • Rapor yazarlarının birden çok tabloya dağıtıldığı için ilgili alanları bulmasını zorlaştırma
  • 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 bkz . Power BI Desktop'ta model ilişkileri (İlişki değerlendirmesi).

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 yapılır.

Aşağıdaki adımlar, bire bir ilgili verileri birleştirmek ve modellemek için bir metodoloji sunar:

  1. 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şim kullanacak şekilde yapılandırı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.

  2. 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 Alanlar bölmesinin dağınık olmasını sağlar.

    Örneğimizde rapor yazarları artık Alanlar bölmesinde Product adlı tek bir tablo bulur. Ürünle ilgili tüm alanları içerir.

    The Fields pane shows both tables expanded, and the columns are listed as fields with Product called out.

  3. Eksik değerleri değiştirme: İkinci sorguda eşleşmeyen satırlar varsa, bu sorgudan tanıtılan sütunlarda DLL'ler görüntülenir. Uygun olduğunda, DLL'leri 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 tablo görselinde, ürün SKU CL-02 kategorisinin artık [Undefined] okuduğuna dikkat edin. Sorguda null kategoriler bu belirteç metin değeriyle değiştirildi.

    A table visual includes four columns: SKU, Product, Color, and Category. The Category value for product SKU CL-02 is now labeled

  4. 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: Kategori ve Ürün.

    The Fields pane shows both tables expanded, and the columns are listed as fields with Products called out.

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ı, Pazarlama görüntüleme klasöründe kategori alanını bulabilir.

The Fields pane shows the Category field within a display folder named Marketing.

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şkisi olduğunda, veri kaynakları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ılacağı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.

A table visual includes four columns: SKU, Product, Color, and Category. The table has two rows only.

Tabloda yalnızca iki satır görüntülenir. Ürün Kategorisi tablosunda eşleşen satır olmadığından ürün SKU CL-02 eksik.

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