Οδηγίες για τις σχέσεις ένα προς ένα

Αυτό το άρθρο απευθύνεται σε εσάς ως δημιουργός μοντέλων δεδομένων που εργάζεται με το Power BI Desktop. Σας παρέχει οδηγίες για την εργασία με σχέσεις μοντέλων ένα προς ένα. Μια σχέση ένα προς ένα μπορεί να δημιουργηθεί όταν και οι δύο πίνακες περιέχουν μια στήλη κοινών και μοναδικών τιμών.

Σημείωμα

Η εισαγωγή στις σχέσεις μοντέλου δεν καλύπτεται σε αυτό το άρθρο. Εάν δεν είστε πλήρως εξοικειωμένοι με τις σχέσεις, τις ιδιότητές τους ή τον τρόπο ρύθμισης των παραμέτρων τους, συνιστούμε να διαβάσετε πρώτα το άρθρο Σχέσεις μοντέλων στο Power BI Desktop .

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

Υπάρχουν δύο σενάρια που περιλαμβάνουν σχέσεις ένα προς ένα:

  • Εκφυλισμένες διαστάσεις: Μπορείτε να αντλήσετε μια εκφυλισόμενη διάσταση από έναν πίνακα στοιχείων.

  • Τμήματα δεδομένων γραμμών σε πολλαπλούς πίνακες: Μία επιχειρηματική οντότητα ή ένα θέμα φορτώνεται ως δύο (ή περισσότεροι) πίνακες μοντέλου, πιθανώς επειδή τα δεδομένα προέρχονται από διαφορετικούς χώρους αποθήκευσης δεδομένων. Αυτό το σενάριο μπορεί να είναι σύνηθες για πίνακες διαστάσεων. Για παράδειγμα, οι κύριες λεπτομέρειες του προϊόντος αποθηκεύονται σε ένα επιχειρησιακό σύστημα πωλήσεων και οι συμπληρωματικές λεπτομέρειες προϊόντος αποθηκεύονται σε διαφορετική προέλευση.

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

Εκφυλισμένες διαστάσεις

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

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

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

Table rows for a sales table.

Η στήλη ΑριθμόςΠαραγγελιών αποθηκεύει τον αριθμό της παραγγελίας και η στήλη ΑριθμόςΓραμμέ νου Παραγγελίας αποθηκεύει μια ακολουθία γραμμών εντός της παραγγελίας.

Στο παρακάτω διάγραμμα μοντέλου, παρατηρήστε ότι οι στήλες αριθμού παραγγελίας και αριθμού γραμμών παραγγελίας δεν έχουν φορτωθεί στον πίνακα Πωλήσεις . Αντίθετα, οι τιμές τους χρησιμοποιήθηκαν για τη δημιουργία μιας στήλης υποκατάστατου κλειδιού με το όνομα SalesOrderLineID. (Η τιμή του κλειδιού υπολογίζεται πολλαπλασιάζοντας τον αριθμό της παραγγελίας με το 1000 και, στη συνέχεια, προσθέτοντας τον αριθμό γραμμής παραγγελίας.)

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

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

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

Τμήματα δεδομένων γραμμών σε πολλαπλούς πίνακες

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

Ακολουθεί ένα μερικό διάγραμμα του μοντέλου των δύο πινάκων.

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

Ο πρώτος πίνακας ονομάζεται Προϊόν και περιέχει τρεις στήλες: Χρώμα, Προϊόν και SKU. Ο δεύτερος πίνακας ονομάζεται Κατηγορία προϊόντοςκαι περιέχει δύο στήλες: Κατηγορία και SKU. Μια σχέση ένα προς ένα συσχετίζει τις δύο στήλες SKU . Η σχέση φιλτράρει και προς τις δύο κατευθύνσεις, κάτι που ισχύει πάντα για τις σχέσεις ένα προς ένα.

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

Σημείωμα

Δεν είναι δυνατή η εμφάνιση γραμμών πίνακα στο διάγραμμα μοντέλου Power BI Desktop. Γίνεται σε αυτό το άρθρο για να υποστηρίξει τη συζήτηση με σαφή παραδείγματα.

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

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

  • Ο πίνακας Προϊόν έχει τρεις γραμμές:
    • SKU CL-01, Προϊόν Κοντομάνικο μπλουζάκι, Χρώμα Πράσινο
    • SKU CL-02, Προϊόν Τζιν παντελόνι, Χρώμα Μπλε
    • SKU AC-01, Προϊόν Καπέλο, Χρώμα Μπλε
  • Ο πίνακας Κατηγορία προϊόντος έχει δύο γραμμές:
    • SKU CL-01, Κατηγορία Ενδύματα
    • SKU AC-01, Κατηγορία Αξεσουάρ

Παρατηρήστε ότι ο πίνακας Κατηγορία προϊόντος δεν περιλαμβάνει γραμμή για το SKU CL-02 του προϊόντος. Θα συζητήσουμε τις συνέπειες αυτής της σειράς που λείπει παρακάτω σε αυτό το άρθρο.

Στο τμήμα παραθύρου Πεδία, οι συντάκτες αναφορών θα βρουν πεδία που σχετίζονται με προϊόντα σε δύο πίνακες: Προϊόν και Κατηγορία προϊόντος.

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

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

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

Παρατηρήστε ότι η τιμή για το προϊόν SKU CL-02 κατηγορίας είναι ΚΕΝΉ. Αυτό συμβαίνει επειδή δεν υπάρχει γραμμή στον πίνακα Κατηγορία προϊόντων για αυτό το προϊόν.

Προτάσεις

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

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

Οι συγκεκριμένες προτάσεις διαφέρουν ανάλογα με το αν η σχέση ένα προς ένα είναι εντός ομάδας προέλευσης δεδομένων ή μεταξύ ομάδων προέλευσης δεδομένων. Για περισσότερες πληροφορίες σχετικά με την αξιολόγηση των σχέσεων, ανατρέξτε στο θέμα Σχέσεις μοντέλων στο Power BI Desktop (αξιολόγηση σχέσεων).

Σχέση ένα προς ένα εντός ομάδας προέλευσης δεδομένων

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

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

  1. Συγχώνευση ερωτημάτων: Κατά τον συνδυασμό των δύο ερωτημάτων, εξετάστε την πληρότητα των δεδομένων σε κάθε ερώτημα. Εάν ένα ερώτημα περιέχει ένα πλήρες σύνολο γραμμών (όπως μια κύρια λίστα), συγχωνεύστε το άλλο ερώτημα με αυτό. Ρυθμίστε τις παραμέτρους του μετασχηματισμού συγχώνευσης για να χρησιμοποιήσετε έναν αριστερό εξωτερικό σύνδεσμο, ο οποίος είναι ο προεπιλεγμένος τύπος συνδέσμου. Αυτός ο τύπος συνδέσμου εξασφαλίζει ότι θα διατηρήσετε όλες τις γραμμές του πρώτου ερωτήματος και θα τις συμπληρώσετε με τυχόν αντίστοιχες γραμμές του δεύτερου ερωτήματος. Αναπτύξτε όλες τις απαιτούμενες στήλες του δεύτερου ερωτήματος στο πρώτο ερώτημα.

  2. Απενεργοποίηση φόρτωσης ερωτημάτων: Φροντίστε να απενεργοποιήσετε τη φόρτωση του δεύτερου ερωτήματος. Με αυτόν τον τρόπο, δεν θα φορτωθεί το αποτέλεσσή του ως πίνακας μοντέλου. Αυτή η ρύθμιση παραμέτρων μειώνει το μέγεθος του μοντέλου δεδομένων και σας βοηθά να τακτοποιήσετε το τμήμα παραθύρου Πεδία .

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

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

  3. Αντικατάσταση τιμών που λείπουν: Εάν το δεύτερο ερώτημα έχει γραμμές χωρίς αντιστοιχία, θα εμφανίζονται τιμές NULL στις στήλες που εισάγονται από αυτό. Ανάλογα με την περίπτωση, εξετάστε το ενδεχόμενο να αντικαταστήσετε τις τιμές NLL με μια τιμή διακριτικού. Η αντικατάσταση των τιμών που λείπουν είναι ιδιαίτερα σημαντική όταν οι συντάκτες αναφορών φιλτράρουν ή ομαδοποιούν με βάση τις τιμές των στηλών, καθώς μπορεί να εμφανίζονται κενά στις απεικονίσεις αναφορών.

    Στην παρακάτω απεικόνιση πίνακα, παρατηρήστε ότι η κατηγορία για το προϊόν SKU CL-02 έχει πλέον την τιμή [Μη καθορισμένο]. Στο ερώτημα, οι κατηγορίες null αντικαταστάθηκαν με αυτή την τιμή κειμένου διακριτικού.

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

  4. Δημιουργία ιεραρχιών: Εάν υπάρχουν σχέσεις μεταξύ των στηλών του ενοποιημένου πλέον πίνακα, εξετάστε το ενδεχόμενο να δημιουργήσετε ιεραρχίες. Με αυτόν τον τρόπο, οι συντάκτες αναφορών θα εντοπίζουν γρήγορα ευκαιρίες για διερεύνηση απεικόνισης αναφοράς.

    Στο παράδειγμά μας, οι συντάκτες αναφορών μπορούν πλέον να χρησιμοποιούν μια ιεραρχία που έχει δύο επίπεδα: Κατηγορία και Προϊόν.

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

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

Στο παράδειγμά μας, οι συντάκτες αναφορών μπορούν να βρουν το πεδίο Κατηγορία στον φάκελο προβολής Μάρκετινγκ .

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

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

Σχέση ένα προς ένα μεταξύ ομάδων προέλευσης δεδομένων

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

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

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

Ο πίνακας εμφανίζει μόνο δύο γραμμές. Λείπει το SKU CL-02 προϊόντος, επειδή δεν υπάρχει αντίστοιχη γραμμή στον πίνακα Κατηγορία προϊόντος.

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