Anlamsal bağlantı kullanarak anlamsal modeldeki ilişkileri bulma

Bu öğreticide, Power BI ile etkileşim kurmak ve SemPy kitaplığıyla tablolar arasındaki ilişkileri algılamak için Jupyter not defterinin nasıl kullanılacağı gösterilmektedir.

Bu öğreticide şunların nasıl yapılacağını öğreneceksiniz:

  • Anlamsal bağlantının Python kitaplığını (SemPy) kullanarak anlamsal modeldeki (Power BI veri kümesi) ilişkileri keşfedin.
  • Power BI ile tümleşen ve veri kalitesi analizini otomatik hale getiren SemPy bileşenlerini kullanın. Bu bileşenler şunlardır:
    • FabricDataFrame - anlamsal bilgilerle geliştirilmiş pandas benzeri bir yapı
    • Doku çalışma alanından not defterinize anlamsal modeller çeken işlevler
    • İşlevsel bağımlılıkları test eden ve anlamsal modellerinizdeki ilişki ihlallerini tanımlayan işlevler

Önkoşullar

  • Gezinti bölmesinde Çalışma Alanları'na gidin ve geçerli çalışma alanı olarak ayarlamak için çalışma alanınızı seçin.

  • Fabric-samples GitHub deposundanCustomer Profitability Sample.pbix ve Customer Profitability Sample (auto).pbix anlam modellerini indirin ve çalışma alanınıza yükleyin.

Not defterini takip edin

birlikte ilerlemek için powerbi_relationships_tutorial.ipynb not defterini kullanın.

  • Bu öğreticiye eşlik eden not defterini açmak için, "Sisteminizi veri bilimi öğreticilerine hazırlama" bölümünde belirtilen "" yönergeleri izleyerek not defterini çalışma alanınıza aktarın.

  • Bu sayfadaki kodu kopyalayıp yapıştırmayı tercih ederseniz, yeni bir not defteri oluşturabilirsiniz.

  • Kod çalıştırmaya başlamadan önce not defterine bir göl evi eklemeye emin olun.

Dizüstü bilgisayarı kur

İhtiyacınız olan modüller ve verilerle bir not defteri ortamı ayarlayın.

  1. Not defterindeki semantic-link satır içi komutunu kullanarak %pip Paketi PyPI'den yükleyin.

    %pip install semantic-link
    
  2. sempy Daha sonra kullanacağınız modülleri içeri aktarın.

    import sempy.fabric as fabric
    
    from sempy.relationships import plot_relationship_metadata
    from sempy.relationships import find_relationships
    from sempy.fabric import list_relationship_violations
    
  3. Kitaplığı içeri aktarın pandas ve çıkış biçimlendirmesi için bir görüntüleme seçeneği ayarlayın.

    import pandas as pd
    pd.set_option('display.max_colwidth', None)
    

## Explore semantic models

This tutorial uses the Customer Profitability Sample semantic model [_Customer Profitability Sample.pbix_](https://github.com/microsoft/fabric-samples/blob/main/docs-samples/data-science/datasets/Customer%20Profitability%20Sample.pbix). Learn about the semantic model in [Customer Profitability sample for Power BI](/power-bi/create-reports/sample-customer-profitability).

- Use SemPy's `list_datasets` function to explore semantic models in your current workspace:

  ```python
  fabric.list_datasets()

Bu not defterinin geri kalanı için Customer Profitability Sample anlam modelinin iki sürümünü kullanın:

  • Müşteri Kârlılığı Örneği: Önceden tanımlanmış tablo ilişkileriyle Power BI örneklerinde sağlanan anlam modeli
  • Müşteri Kârlılığı Örneği (otomatik): aynı veriler, ancak ilişkiler Power BI'ın otomatik olarak algılananlarla sınırlıdır

Örnek semantik modelden önceden tanımlanmış ilişkileri ayıklama

  1. SemPy'nin list_relationships işlevini kullanarak Müşteri Kârlılığı Örneği anlam modeline önceden tanımlanmış ilişkileri yükleyin. İşlev, Tablosal Nesne Modeli'nden (TOM) ilişkileri listeler.

    dataset = "Customer Profitability Sample"
    relationships = fabric.list_relationships(dataset)
    relationships
    
  2. SemPy'nin relationships işlevini kullanarak DataFrame'i grafik olarak görselleştirin plot_relationship_metadata .

    plot_relationship_metadata(relationships)
    

    Anlam modelindeki tablolar arasındaki ilişkiler grafiğinin ekran görüntüsü.

    Bu grafik, bir konu uzmanı tarafından Power BI'da tanımlanan bu anlam modelindeki tablolar arasındaki ilişkileri gösterir.

Ek ilişkileri keşfedin

Power BI'ın otomatik olarak belirlediği ilişkilerle başlarsanız, daha küçük bir kümeniz olur.

  1. Power BI'ın anlam modelinde otomatik olarak algılanan ilişkileri görselleştirin:

    dataset = "Customer Profitability Sample (auto)"
    autodetected = fabric.list_relationships(dataset)
    plot_relationship_metadata(autodetected)
    

    Power BI'ın anlam modelinde otomatik olarak algılanan ilişkilerin ekran görüntüsü.

    Power BI'ın otomatik düzeltmesi birçok ilişkiyi kaçırmaktadır. Ayrıca otomatik olarak algılanan ilişkilerin ikisi de sembolik olarak yanlıştır:

    • Executive[ID] ->Industry[ID]
    • BU[Executive_id] ->Industry[ID]
  2. İlişkileri tablo olarak yazdırın:

    autodetected
    

    3. ve 4. satırlar tabloyla Industry yanlış ilişkiler gösteriyor. Bu satırları kaldırın.

  3. Yanlış tanımlanmış ilişkileri at.

    # Remove rows 3 and 4 which point incorrectly to Industry[ID]
    autodetected = autodetected[~autodetected.index.isin([3, 4])]
    

    Artık doğru ama tamamlanmamış ilişkilere sahipsiniz. kullanarak plot_relationship_metadatabu tamamlanmamış ilişkileri görselleştirin:

    plot_relationship_metadata(autodetected)
    

    Yanlış ilişkileri kaldırdıktan sonra ilişkileri görselleştirmenin ekran görüntüsü.

  4. SemPy'nin list_tables ve read_table işlevlerini kullanarak anlamsal modeldeki tüm tabloları yükleyin ve kullanarak tablolar find_relationshipsarasındaki ilişkileri bulun. Bu işlevin nasıl çalıştığına ilişkin içgörüler elde etmek için günlük çıkışını gözden geçirin:

    suggested_relationships_all = find_relationships(
        tables,
        name_similarity_threshold=0.7,
        coverage_threshold=0.7,
        verbose=2
    )
    
  5. Yeni bulunan ilişkileri görselleştirme:

    plot_relationship_metadata(suggested_relationships_all)
    

    Yeni bulunan ilişkilerin görselleştirmesinin ekran görüntüsü.

    SemPy tüm ilişkileri algılar.

  6. Aramayı daha önce tanımlanmayan ek ilişkilerle sınırlamak için exclude parametresini kullanın:

    additional_relationships = find_relationships(
        tables,
        exclude=autodetected,
        name_similarity_threshold=0.7,
        coverage_threshold=0.7
    )
    
    additional_relationships
    

İlişkileri doğrulama

  1. İlk olarak, Müşteri Kârlılığı Örneği anlam modelinden veri yükleyin.

    dataset = "Customer Profitability Sample"
    tables = {table: fabric.read_table(dataset, table) for table in fabric.list_tables(dataset)['Name']}
    
    tables.keys()
    
  2. Birincil ve yabancı anahtarın işlevle çakışmasını list_relationship_violations denetleyin. işlevinin çıkışını list_relationships öğesine list_relationship_violationsgeçirin.

    list_relationship_violations(tables, fabric.list_relationships(dataset))
    

    Sonuçlar yararlı içgörüler ortaya çıkar. Örneğin, içindeki Fact[Product Key] yedi değerden biri içinde Product[Product Key]yoktur ve eksik anahtar şeklindedir 50.

    Keşif veri analizi ve veri temizleme yinelemelidir. Ne öğreneceğiniz, sorularınıza ve verileri nasıl incelediğinize bağlıdır. Anlamsal bağlantı, verilerinizle daha fazlasını yapmanıza yardımcı olacak araçlar ekler.

Anlamsal bağlantı ve SemPy için diğer öğreticileri keşfedin:

\n\n