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


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

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

Σημείωμα

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

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

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

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

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

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

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

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

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

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

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

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

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

διάγραμμα που εμφανίζει δύο πίνακες:

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

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

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

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

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

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

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

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

διάγραμμα που εμφανίζει τους πίνακες Προϊόν και Κατηγορία προϊόντος και ορισμένες γραμμές δεδομένων. Οι λεπτομέρειες γραμμής περιγράφονται στην ακόλουθη παράγραφο.

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

  • Ο Product πίνακας έχει τρεις γραμμές:
    • SKU CL-01, Productμπλουζάκια, ColorGreen
    • SKU CL-02, Productτζιν, ColorBlue
    • SKU AC-01, ProductHat, ColorBlue
  • Ο Product Category πίνακας έχει δύο γραμμές:
    • SKU CL-01, Category ρούχων
    • AC-01, αξεσουάρ

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

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

διάγραμμα που εμφανίζει το τμήμα παραθύρου Δεδομένα με δύο πίνακες και μια απεικόνιση πίνακα που περιλαμβάνει τέσσερις στήλες. Η τιμή κατηγορίας για το προϊόν SKU CL-02 είναι ΚΕΝΉ.

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

Προτάσεις

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

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

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

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

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

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

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

    διάγραμμα που εμφανίζει δεδομένα ενοποιημένα σε έναν μοναδικό πίνακα διαστάσεων προϊόντων.

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

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

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

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

    διάγραμμα που εμφανίζει το τμήμα παραθύρου Δεδομένα για τον πίνακα Προϊόν. Εμφανίζει επίσης μια απεικόνιση πίνακα με τέσσερις στήλες. Η τιμή κατηγορίας για το προϊόν SKU CL-02 έχει πλέον επισημανθεί ως Μη καθορισμένο.

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

    Στο παράδειγμά μας, οι συντάκτες αναφορών μπορούν τώρα να χρησιμοποιήσουν μια ιεραρχία που έχει δύο επίπεδα: Category και Product.

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

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

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

διάγραμμα που εμφανίζει το τμήμα παραθύρου Δεδομένα όπου το πεδίο Κατηγορία βρίσκεται μέσα σε έναν φάκελο προβολής με την ονομασία Μάρκετινγκ.

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

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

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

διάγραμμα που εμφανίζει μια σχέση ένα-προς-ένα μεταξύ ομάδων προέλευσης δεδομένων, το οποίο είναι μια περιορισμένη σχέση.

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

διάγραμμα που εμφανίζει δύο απεικονίσεις πίνακα, οι οποίες περιγράφονται στην παρακάτω παράγραφο.

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

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