Κοινή χρήση μέσω


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

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

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

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

Προαπαιτούμενα στοιχεία

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

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

  • Χρησιμοποιήστε την εναλλαγή εμπειρίας στην αριστερή πλευρά της αρχικής σελίδας σας για να μεταβείτε στην εμπειρία Synapse Data Science.

    Στιγμιότυπο οθόνης του μενού εναλλαγής εμπειρίας, που εμφανίζει πού μπορείτε να επιλέξετε Επιστήμη δεδομένων.

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

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

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

Το σημειωματάριο powerbi_relationships_tutorial.ipynb συνοδεύει αυτή την εκμάθηση.

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

Εάν προτιμάτε να αντιγράψετε και να επικολλήσετε τον κώδικα από αυτή τη σελίδα, μπορείτε να δημιουργήσετε ένα νέο σημειωματάριο.

Φροντίστε να επισυνάψετε ένα lakehouse στο σημειωματάριο προτού ξεκινήσετε την εκτέλεση κώδικα.

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

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

  1. Εγκαταστήστε SemPy από το 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)
    

Εξερεύνηση σημασιολογικών μοντέλων

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

  • Χρησιμοποιήστε τη συνάρτηση SemPy list_datasets για να εξερευνήσετε σημασιολογικά μοντέλα στον τρέχοντα χώρο εργασίας σας:

    fabric.list_datasets()
    

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

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

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

  1. Σχέσεις φόρτωσης που έχουν προκαθοριστεί και αποθηκευτεί στο σημασιολογικό μοντέλο "Δείγμα κερδοφορίας πελάτη", χρησιμοποιώντας τη συνάρτηση SemPy list_relationships . Αυτή η συνάρτηση παραθέτει από το Μοντέλο αντικειμένου σε μορφή πίνακα:

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

    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
    

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

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

    autodetected.drop(index=[3,4], inplace=True)
    autodetected
    

    Τώρα έχετε σωστές, αλλά ελλιπείς σχέσεις.

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

    plot_relationship_metadata(autodetected)
    

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

  5. Φόρτωση όλων των πινάκων από το μοντέλο σημασιολογίας, χρησιμοποιώντας τις συναρτήσεις και read_table του list_tables SemPy:

    tables = {table: fabric.read_table(dataset, table) for table in fabric.list_tables(dataset)['Name']}
    
    tables.keys()
    
  6. Βρείτε σχέσεις μεταξύ πινάκων, χρησιμοποιώντας find_relationshipsκαι εξετάστε την έξοδο αρχείου καταγραφής για να λάβετε ορισμένες πληροφορίες σχετικά με τον τρόπο λειτουργίας αυτής της συνάρτησης:

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

    plot_relationship_metadata(suggested_relationships_all)
    

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

    Το SemPy μπόρεσε να εντοπίσει όλες τις σχέσεις.

  8. Χρησιμοποιήστε την 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: