Κοινοποίηση μέσω


Ανακαλύψτε σχέσεις σε ένα σημασιολογικό μοντέλο χρησιμοποιώντας σημασιολογική σύνδεση

Αυτή η εκμάθηση δείχνει πώς μπορείτε να χρησιμοποιήσετε ένα σημειωματάριο Jupyter για να αλληλεπιδράσετε με το Power BI και να εντοπίσετε σχέσεις μεταξύ πινάκων με τη βιβλιοθήκη SemPy.

Σε αυτή την εκμάθηση, θα μάθετε πώς μπορείτε να κάνετε τα εξής:

  • Ανακαλύψτε σχέσεις σε ένα μοντέλο σημασιολογίας (σύνολο δεδομένων Power BI) χρησιμοποιώντας τη βιβλιοθήκη Python της σημασιολογικής σύνδεσης (SemPy).
  • Χρησιμοποιήστε στοιχεία SemPy που ενοποιούνται με το Power BI και αυτοματοποιήστε την ανάλυση ποιότητας δεδομένων. Αυτά τα στοιχεία περιλαμβάνουν:
    • FabricDataFrame - Μια δομή που μοιάζει με πάντα ενισχυμένη με σημασιολογικές πληροφορίες
    • Συναρτήσεις που αντλούν σημασιολογικά μοντέλα από ένα χώρο εργασίας Fabric στο σημειωματάριό σας
    • Συναρτήσεις που δοκιμάζουν λειτουργικές εξαρτήσεις και εντοπίζουν παραβιάσεις σχέσεων στα σημασιολογικά μοντέλα σας

Προϋποθέσεις

  • Λάβετε μια συνδρομής Microsoft Fabric . Εναλλακτικά, εγγραφείτε για μια δωρεάν δοκιμαστική έκδοση microsoft Fabric.

  • Εισέλθετε για να το Microsoft Fabric.

  • Μεταβείτε στο Fabric χρησιμοποιώντας την εναλλαγή εμπειριών στην κάτω αριστερή πλευρά της αρχικής σελίδας σας.

    Στιγμιότυπο οθόνης που εμφανίζει την επιλογή του Fabric στο μενού εναλλαγής εμπειριών.

  • Μεταβείτε στην ενότητα Χώροι εργασίας στο παράθυρο περιήγησης και, στη συνέχεια, επιλέξτε τον χώρο εργασίας σας για να τον ορίσετε ως τον τρέχοντα χώρο εργασίας.

  • Κάντε λήψη των σημασιολογικών μοντέλων Customer Profitability Sample.pbix και Customer Profitability Sample (auto).pbix από το αποθετήριο δειγμάτων υφασμάτων GitHub και, στη συνέχεια, ανεβάστε τα στον χώρο εργασίας σας.

Ακολουθήστε τις οδηγίες στο σημειωματάριο

Χρησιμοποιήστε το σημειωματάριο powerbi_relationships_tutorial.ipynb για να ακολουθήσετε.

Ρύθμιση του σημειωματάριου

Ρυθμίστε ένα περιβάλλον σημειωματαρίου με τις λειτουργικές μονάδες και τα δεδομένα που χρειάζεστε.

  1. Εγκαταστήστε το πακέτο από το semantic-link PyPI χρησιμοποιώντας την %pip ενσωματωμένη εντολή στο σημειωματάριο.

    %pip install semantic-link
    
  2. Εισαγάγετε τις sempy λειτουργικές μονάδες που θα χρησιμοποιήσετε αργότερα.

    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. Εισαγάγετε τη pandas βιβλιοθήκη και ορίστε μια επιλογή εμφάνισης για μορφοποίηση εξόδου.

    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()

Για το υπόλοιπο αυτού του σημειωματαρίου, χρησιμοποιήστε δύο εκδόσεις του μοντέλου σημασιολογίας δείγματος κερδοφορίας πελάτη:

  • Δείγμα κερδοφορίας πελάτη: το σημασιολογικό μοντέλο όπως παρέχεται στα δείγματα Power BI, με προκαθορισμένες σχέσεις πινάκων
  • Δείγμα κερδοφορίας πελάτη (αυτόματο): τα ίδια δεδομένα, αλλά οι σχέσεις περιορίζονται σε αυτά που εντοπίζει αυτόματα το Power BI

Εξαγωγή προκαθορισμένων σχέσεων από το σημασιολογικό μοντέλο δείγματος

  1. Φορτώστε τις προκαθορισμένες σχέσεις στο σημασιολογικό μοντέλο δείγματος κερδοφορίας πελάτη χρησιμοποιώντας τη συνάρτηση SemPy list_relationships . Η συνάρτηση παραθέτει σχέσεις από το μοντέλο αντικειμένου σε μορφή πίνακα (TOM).

    dataset = "Customer Profitability Sample"
    relationships = fabric.list_relationships(dataset)
    relationships
    
  2. Απεικονίστε το DataFrame ως γράφημα χρησιμοποιώντας τη relationships συνάρτηση SemPy plot_relationship_metadata .

    plot_relationship_metadata(relationships)
    

    Στιγμιότυπο οθόνης του γραφήματος σχέσεων μεταξύ πινάκων στο σημασιολογικό μοντέλο.

    Αυτό το γράφημα εμφανίζει τις σχέσεις μεταξύ πινάκων σε αυτό το μοντέλο σημασιολογίας, όπως ορίζονται στο Power BI από έναν ειδικό σε θέματα.

Ανακαλύψτε επιπλέον σχέσεις

Εάν ξεκινήσετε με σχέσεις που εντοπίζει αυτόματα το Power BI, έχετε ένα μικρότερο σύνολο.

  1. Απεικονίστε τις σχέσεις που το Power BI ανιχνεύθηκε αυτόματα στο μοντέλο σημασιολογίας:

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

    Στιγμιότυπο οθόνης των σχέσεων που εντόπισε αυτόματα το Power BI στο μοντέλο σημασιολογίας.

    Ο αυτόματος εντοπισμός του Power BI χάνει πολλές σχέσεις. Επίσης, δύο από τις σχέσεις αυτόματου εντοπισμού είναι σημασιολογικά εσφαλμένες:

    • Executive[ID] ->Industry[ID]
    • BU[Executive_id] ->Industry[ID]
  2. Εκτυπώστε τις σχέσεις ως πίνακα:

    autodetected
    

    Οι γραμμές 3 και 4 εμφανίζουν εσφαλμένες σχέσεις με τον Industry πίνακα. Καταργήστε αυτές τις γραμμές.

  3. Απορρίψτε τις σχέσεις που έχουν προσδιοριστεί εσφαλμένα.

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

    Τώρα έχετε σωστές αλλά ελλιπείς σχέσεις. Απεικονίστε αυτές τις ατελείς σχέσεις χρησιμοποιώντας plot_relationship_metadata:

    plot_relationship_metadata(autodetected)
    

    Στιγμιότυπο οθόνης μιας απεικόνισης σχέσεων μετά την κατάργηση εσφαλμένων.

  4. Φορτώστε όλους τους πίνακες από το σημασιολογικό μοντέλο, χρησιμοποιώντας συναρτήσεις SemPy list_tables και read_table και, στη συνέχεια, βρείτε σχέσεις μεταξύ πινάκων χρησιμοποιώντας find_relationshipsτο . Εξετάστε την έξοδο του αρχείου καταγραφής για να λάβετε πληροφορίες σχετικά με τον τρόπο λειτουργίας αυτής της συνάρτησης:

    suggested_relationships_all = find_relationships(
        tables,
        name_similarity_threshold=0.7,
        coverage_threshold=0.7,
        verbose=2
    )
    
  5. Απεικόνιση σχέσεων που ανακαλύφθηκαν πρόσφατα:

    plot_relationship_metadata(suggested_relationships_all)
    

    Στιγμιότυπο οθόνης μιας απεικόνισης σχέσεων που ανακαλύφθηκαν πρόσφατα.

    Το SemPy ανιχνεύει όλες τις σχέσεις.

  6. Χρησιμοποιήστε την παράμετρο exclude για να περιορίσετε την αναζήτηση σε πρόσθετες σχέσεις που δεν αναγνωρίστηκαν προηγουμένως:

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

Επικύρωση σχέσεων

  1. Αρχικά, φορτώστε δεδομένα από το σημασιολογικό μοντέλο δείγματος κερδοφορίας πελάτη .

    dataset = "Customer Profitability Sample"
    tables = {table: fabric.read_table(dataset, table) for table in fabric.list_tables(dataset)['Name']}
    
    tables.keys()
    
  2. Ελέγξτε την επικάλυψη πρωτεύοντος και εξωτερικού κλειδιού με τη list_relationship_violations συνάρτηση. Περάστε την list_relationships έξοδο της συνάρτησης στο list_relationship_violations.

    list_relationship_violations(tables, fabric.list_relationships(dataset))
    

    Τα αποτελέσματα αποκαλύπτουν χρήσιμες πληροφορίες. Για παράδειγμα, μία από τις επτά τιμές στο Fact[Product Key] δεν υπάρχει στο Product[Product Key], και το κλειδί που λείπει είναι 50.

    Η διερευνητική ανάλυση δεδομένων και ο καθαρισμός δεδομένων είναι επαναληπτικοί. Αυτό που μαθαίνετε εξαρτάται από τις ερωτήσεις σας και τον τρόπο με τον οποίο εξερευνάτε τα δεδομένα. Η σημασιολογική σύνδεση προσθέτει εργαλεία που σας βοηθούν να κάνετε περισσότερα με τα δεδομένα σας.

Εξερευνήστε άλλα μαθήματα για σημασιολογική σύνδεση και SemPy:

\n\n