Σχεδίαση σχήματος γραφήματος στο Microsoft Fabric

Σημείωμα

Αυτή η δυνατότητα βρίσκεται αυτήν τη στιγμή σε δημόσια προεπισκόπηση. Αυτή η προεπισκόπηση παρέχεται χωρίς σύμβαση παροχής υπηρεσιών και δεν συνιστάται για φόρτους εργασίας παραγωγής. Ορισμένες δυνατότητες ενδέχεται να μην υποστηρίζονται ή να έχουν περιορισμένες δυνατότητες. Για περισσότερες πληροφορίες, ανατρέξτε στην ενότητα Συμπληρωματικοί Όροι Χρήσης για Microsoft Azure Προεπισκοπήσεις.

Ένα σχήμα γραφήματος είναι η συλλογή τύπων κόμβων, τύπων ακμών και των ιδιοτήτων τους που καθορίζουν τη δομή του γραφήματος σας. Ένα καλά σχεδιασμένο σχήμα γραφήματος διευκολύνει την αναζήτηση, τη διατήρηση και την επέκταση των δεδομένων σας. Αυτό το άρθρο παρέχει βέλτιστες πρακτικές για τη μετατροπή δεδομένων σε μορφή πίνακα σε μια λίμνη σε ένα αποτελεσματικό γράφημα ιδιοτήτων labeled σε Microsoft Fabric.

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

Σημαντικό

Το Graph προς το παρόν δεν υποστηρίζει την εξέλιξη του σχήματος. Αφού μοντελοποιήσετε τα δεδομένα σας, η δομή των κόμβων, των ακμών και των ιδιοτήτων είναι σταθερή. Οι δομικές αλλαγές, όπως η προσθήκη ιδιοτήτων, η τροποποίηση ετικετών ή η αλλαγή τύπων σχέσεων, απαιτούν από εσάς να δημιουργήσετε ένα νέο μοντέλο γραφήματος και να φορτώσετε ξανά όλα τα δεδομένα. Αυτή η διαδικασία απαιτεί χρόνο και καταναλώνει χωρητικότητα, επομένως σχεδιάστε προσεκτικά το σχήμα σας πριν ξεκινήσετε τη μοντελοποίηση.

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

Κατανόηση τύπων κόμβων και τύπων ακμών

Πριν σχεδιάσετε ένα σχήμα, κατανοήστε αυτές τις βασικές έννοιες:

Ένας τύπος κόμβου ορίζει ένα είδος οντότητας στο γράφημά σας, όπως έναν πελάτη, ένα προϊόν ή μια παραγγελία. Αποτελείται απο:

  • Μια ετικέτα, η οποία είναι το όνομα που προσδιορίζει αυτήν την κατηγορία κόμβου. Για παράδειγμα, Customer. Χρησιμοποιείτε την ετικέτα σε ερωτήματα για να αναφερθείτε σε κόμβους αυτού του τύπου.
  • Ένας πίνακας αντιστοίχισης, ο οποίος είναι ο πίνακας lakehouse που παρέχει τα δεδομένα προέλευσης για τον τύπο κόμβου. Για παράδειγμα, ο πίνακας adventureworks_customers .
  • Μια στήλη κλειδιού που προσδιορίζει μοναδικά κάθε κόμβο (με την ένδειξη ID στο πρόγραμμα επεξεργασίας μοντέλου γραφήματος). Για παράδειγμα, CustomerID_K.
  • Ιδιότητες, οι οποίες είναι στήλες από τον πίνακα που γίνονται χαρακτηριστικά σε κάθε κόμβο. Για παράδειγμα, FirstName, LastName, και EmailAddress.

Ένας κόμβος είναι μια μεμονωμένη παρουσία ενός τύπου κόμβου - μία σειρά στον πίνακα αντιστοίχισης. Για παράδειγμα, κάθε γραμμή στο adventureworks_customers γίνεται Customer κόμβος.

Ένας τύπος ακμής ορίζει ένα είδος σχέσης μεταξύ δύο τύπων κόμβων. Αποτελείται απο:

  • Μια ετικέτα, η οποία είναι το όνομα που προσδιορίζει αυτήν την κατηγορία σχέσης. Για παράδειγμα, purchases.
  • Ένας πίνακας αντιστοίχισης που περιέχει τα δεδομένα σχέσης μεταξύ των κόμβων προέλευσης και προορισμού. Για παράδειγμα, ο πίνακας adventureworks_orders .
  • Ένας τύπος κόμβου προέλευσης και ένας τύπος κόμβου προορισμού που συνδέει η άκρη. Για παράδειγμα, Customer ως πηγή και Order ως στόχος.

Μια ακμή είναι μια μεμονωμένη παρουσία ενός τύπου ακμής - μία γραμμή στον πίνακα αντιστοίχισης που συνδέει δύο συγκεκριμένους κόμβους.

Σημείωμα

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

Προσδιορισμός οντοτήτων και σχέσεων

Ξεκινήστε προσδιορίζοντας τις οντότητες (πράγματα) και τις σχέσεις (συνδέσεις) στα δεδομένα σας. Οι οντότητες γίνονται τύποι κόμβων. Οι συνδέσεις μεταξύ οντοτήτων γίνονται τύποι άκρων.

Κάντε αυτές τις ερωτήσεις σχετικά με τους πίνακες προέλευσης:

  • Ποιες είναι οι κύριες οντότητες; Οι σειρές που αντιπροσωπεύουν διαφορετικά πράγματα του πραγματικού κόσμου είναι υποψήφιες για τύπους κόμβων. Για παράδειγμα, πελάτες, προϊόντα, παραγγελίες και εργαζόμενοι.
  • Πώς σχετίζονται αυτές οι οντότητες μεταξύ τους; Οι στήλες που παραπέμπουν σε γραμμές σε άλλο πίνακα (ξένα κλειδιά) προτείνουν τύπους άκρων. Για παράδειγμα, CustomerID_FK σε έναν orders πίνακα δείχνει τον customers πίνακα, κάτι που προτείνει τη μοντελοποίηση μιας purchases ακμής.
  • Υπάρχουν ενσωματωμένες οντότητες; Μια στήλη μέσα σε έναν πίνακα μπορεί να αντιπροσωπεύει μια ξεχωριστή οντότητα που αξίζει να εξαχθεί στον δικό της τύπο κόμβου. Για παράδειγμα, δείτε την ενότητα Επιλογή τύπων κόμβων. Για μια αναλυτική παρουσίαση, ανατρέξτε στην ενότητα Προσθήκη πολλών τύπων κόμβων και άκρων από έναν πίνακα αντιστοίχισης.

Επιλέξτε τύπους κόμβων

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

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

Παράδειγμα: Στο σύνολο δεδομένων Adventure Works, Country ξεκινά ως στήλη στον employees πίνακα. Εάν πρέπει να ρωτήσετε "ποιοι εργαζόμενοι ζουν στην ίδια χώρα;" ή "ποιες χώρες έχουν τους περισσότερους υπαλλήλους;", εξαγωγή Country στον δικό του τύπο κόμβου. Εάν χρειάζεται να εμφανίσετε μόνο τη χώρα ενός υπαλλήλου ως ετικέτα, αφήστε την ως ιδιοκτησία.

Επιλογή στηλών κλειδιών

Κάθε τύπος κόμβου απαιτεί μια στήλη κλειδιού (ή σύνθετο κλειδί) που προσδιορίζει μοναδικά κάθε κόμβο. Επιλέξτε προσεκτικά τα κλειδιά:

  • Χρησιμοποιήστε υπάρχοντα μοναδικά αναγνωριστικά από τους πίνακες προέλευσης. Για παράδειγμα, CustomerID_K ή ProductID_K.
  • Αποφύγετε τα υποκατάστατα κλειδιά που δεν έχουν επιχειρηματικό νόημα , εκτός εάν δεν υπάρχει φυσικό κλειδί. Για παράδειγμα, προτιμήστε CustomerID έναν αριθμό γραμμής που αυξάνεται αυτόματα.
  • Χρησιμοποιήστε σύνθετα κλειδιά όταν μία στήλη δεν εγγυάται τη μοναδικότητα. Για παράδειγμα, ένας κόμβος ProductVersion μπορεί να χρειάζεται και τα δύο ProductID και VersionNumber ως κλειδί του.
  • Αντιστοιχίστε τους τύπους δεδομένων μεταξύ των στηλών κλειδιών και των στηλών ξένων κλειδιών που χρησιμοποιούνται στις αντιστοιχίσεις άκρων. Οι αναντιστοιχίες τύπων προκαλούν αποτυχίες δημιουργίας άκρων.

Συμβουλή

Ορίστε περιορισμούς κλειδιού κόμβου για να επιτρέψετε στη μηχανή ερωτημάτων να εκτελεί άμεσες αναζητήσεις σε ιδιότητες κλειδιού. Αυτή η βελτιστοποίηση επιταχύνει τα ερωτήματα που αναζητούν συγκεκριμένους κόμβους ανά κλειδί.

Επιλέξτε τύπους άκρων

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

Ακολουθήστε αυτές τις οδηγίες:

  • Χρησιμοποιήστε περιγραφικές ετικέτες που διαβάζονται ως ρήματα ή ρηματικές φράσεις. Για παράδειγμα, purchases, sells, livesIn, και belongsTo. Μια καλά ονομαζόμενη άκρη κάνει τα ερωτήματα πιο ευανάγνωστα.
  • Εξετάστε προσεκτικά την κατεύθυνση. Οι ακμές στο γράφημα κατευθύνονται. Επιλέξτε την κατεύθυνση που αντιπροσωπεύει καλύτερα τη σχέση του πραγματικού κόσμου. Για παράδειγμα, Customer --το purchases-->Order διαβάζεται πιο φυσικά από το Order --purchasedBy-->Customer.
  • Δώστε διακριτά ονόματα σε τύπους ακμών που συνδέουν διαφορετικά ζεύγη τύπων κόμβων. Εάν και οι δύο "ο υπάλληλος πουλάει παραγγελία" και "παραγγελία αγορών πελάτη" συνδέονται με Orderτο , ονομάστε τα sells και purchases αντί να δώσετε και στα δύο την ίδια ετικέτα. Για περισσότερες πληροφορίες, ανατρέξτε στην ενότητα Περιορισμοί δημιουργίας άκρων.

Προσθήκη ιδιοτήτων σε τύπους άκρων

Σε αντίθεση με τους τύπους κόμβων, οι τύποι ακμών ξεκινούν χωρίς ιδιότητες. Μπορείτε προαιρετικά να προσθέσετε ιδιότητες όταν τα δεδομένα περιγράφουν την ίδια τη σχέση και όχι οποιοδήποτε τελικό σημείο. Οι ιδιότητες Edge είναι πιο χρήσιμες όταν συντάσσετε ερωτήματα GQL που πρέπει να φιλτράρουν, να συναθροίσουν ή να επιστρέψουν δεδομένα σχετικά με την ίδια τη σχέση.

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

Πότε να προσθέσετε ιδιότητες ακμής: Εάν μια στήλη απαντήσει "πόσο;", "πότε;" ή "με ποιον τρόπο;" σχετικά με τη σύνδεση μεταξύ δύο κόμβων, ανήκει στην άκρη - όχι σε κανέναν κόμβο.

Παράδειγμα: Στο σύνολο δεδομένων Adventure Works, το contains άκρο συνδέεται OrderProduct μέσω του πίνακα adventureworks_orders . Στήλες όπως OrderQty, UnitPrice, και LineTotal περιγράφουν τη σχέση - πόσα από ένα προϊόν ήταν σε συγκεκριμένη σειρά, σε ποια τιμή. Οι στήλες όπως OrderDate ή ShipDate περιγράφουν την ίδια τη σειρά και ανήκουν στον Order τύπο κόμβου, όχι στην άκρη.

Σημαντικό

Ο πίνακας αντιστοίχισης για ένα Edge πρέπει να περιέχει στήλες που ταιριάζουν με τις στήλες-κλειδιά τόσο του τύπου κόμβου προέλευσης όσο και του τύπου κόμβου προορισμού σε τιμές και τύπο δεδομένων. Οι πίνακες που χρησιμοποιείτε για τη δημιουργία τύπων κόμβων μπορούν επίσης να χρησιμεύσουν ως πίνακες αντιστοίχισης άκρων, εάν πληρούν αυτήν την απαίτηση.

Αφαιρέστε τις περιττές ιδιότητες

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

Σημείωμα

Οι τύποι ακμών λειτουργούν διαφορετικά - ξεκινούν χωρίς ιδιότητες. Μπορείτε να προσθέσετε με μη αυτόματο τρόπο μόνο τις ιδιότητες που χρειάζεστε χρησιμοποιώντας το κουμπί Προσθήκη ιδιότητας στο παράθυρο διαλόγου Επεξεργασία σχήματος άκρης (Edit edge schema ).

Για κάθε τύπο κόμβου, διατηρήστε μόνο τις ιδιότητες που είναι:

  • Απαιτείται για τη μοναδικότητα του κόμβου (στήλες κλειδιών)
  • Χρησιμοποιείται σε WHERE φίλτρα ή RETURN προβολές στα ερωτήματά σας
  • Απαιτείται για κατάντη ανάλυση ή οπτικοποίηση

Για περισσότερες πληροφορίες σχετικά με τον τρόπο με τον οποίο το πλήθος ιδιοτήτων επηρεάζει την απόδοση του ερωτήματος, ανατρέξτε στο θέμα Επιστροφή μόνο των ιδιοτήτων που χρειάζεστε.

Επιλογή τύπων δεδομένων

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

  • Χρησιμοποιήστε INT ή UINT64 για αριθμητικά αναγνωριστικά και μετρήσεις. Οι αριθμητικές συγκρίσεις είναι ταχύτερες από τις συγκρίσεις συμβολοσειρών.
  • Χρησιμοποιήστε το ZONED DATETIME για χρονικές σημάνσεις αντί για ημερομηνίες με μορφοποίηση συμβολοσειράς.
  • Χρησιμοποιήστε το BOOLEAN για σημαίες true/false αντί για τιμές συμβολοσειράς όπως "yes" ή "no".

Για την πλήρη λίστα των υποστηριζόμενων τύπων, ανατρέξτε στην ενότητα Τρέχοντες περιορισμοί — Τύποι δεδομένων.

Κοινά μοτίβα πίνακα σε γράφημα

Ο παρακάτω πίνακας συνοψίζει τον τρόπο με τον οποίο ορισμένες κοινές δομές δεδομένων σε μορφή πίνακα μεταφράζονται σε στοιχεία γραφήματος:

Δομή πίνακα Αποτέλεσμα γραφήματος Παράδειγμα
Ένα προς πολλά: Γονικός πίνακας + θυγατρικός πίνακας με ξένο κλειδί Δύο τύποι κόμβων που συνδέονται με έναν τύπο ακμής. Customer -- αγορές-->Order
Πολλά-προς-πολλά: Πίνακας διακλάδωσης που συνδέει δύο πίνακες Τύπος ακμής μεταξύ δύο τύπων κόμβων. Vendor -- παράγει-->Product
Ενσωματωμένη οντότητα: Στήλη που αντιπροσωπεύει μια κοινόχρηστη οντότητα Εξαγόμενος τύπος κόμβου με ακμή. Employee -- ζει-->Country
Ιεραρχία: Αλυσίδα γονικών-θυγατρικών πινάκων Τύποι κόμβων που συνδέονται με ακμές σε κάθε επίπεδο. Product -- isOfType-->Subcategory --ανήκει-->Category

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

Αλλαγή του σχήματος γραφήματος

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

Για να αλλάξετε το σχήμα γραφήματος:

  1. Στον χώρο εργασίας σας, δημιουργήστε ένα νέο στοιχείο γραφήματος που συνδέεται με την ίδια λίμνη.
  2. Στον επεξεργαστή μοντέλου γραφήματος, προσθέστε τους τύπους κόμβων και τους τύπους ακμών που χρειάζεστε, συμπεριλαμβανομένων τυχόν νέων ή τροποποιημένων ιδιοτήτων.
  3. Διαμορφώστε τις στήλες κλειδιών και τις αντιστοιχίσεις άκρων. Βεβαιωθείτε ότι οι τύποι δεδομένων ταιριάζουν μεταξύ στηλών κλειδιών και στηλών ξένων κλειδιών.
  4. Επιλέξτε Αποθήκευση για να απορροφήσετε δεδομένα και να δημιουργήσετε το νέο γράφημα.
  5. Ενημερώστε τυχόν σύνολα ερωτημάτων ώστε να οδηγούν στο νέο γράφημα.
  6. Αφού επαληθεύσετε ότι το νέο γράφημα λειτουργεί όπως αναμένεται, διαγράψτε το αρχικό στοιχείο γραφήματος εάν δεν το χρειάζεστε.