Εργαστείτε με σχέσεις και καρδινάλιο
Σε αντίθεση με άλλα συστήματα διαχείρισης βάσεων δεδομένων, το Power BI έχει την έννοια της κατευθυντικότητας σε μια σχέση. Αυτή η κατευθυντικότητα παίζει σημαντικό ρόλο στο φιλτράρισμα δεδομένων μεταξύ πολλών πινάκων. Όταν φορτώνετε δεδομένα, Power BI αναζητά αυτόματα τις σχέσεις που υπάρχουν μέσα στα δεδομένα ταιριάζοντας τα ονόματα στηλών. Μπορείτε επίσης να χρησιμοποιήσετε τη Διαχείριση σχέσεων για να επεξεργαστείτε αυτές τις επιλογές μη αυτόματα.
Για παράδειγμα, έχετε ανακτήσει πολλούς πίνακες από τη βάση δεδομένων Sales και η παρακάτω εικόνα είναι ένα παράδειγμα του σημασιολογικού σας μοντέλου. Power BI έχει εντοπίσει αυτόματα αρκετές σχέσεις, αλλά δεν μπορείτε να διακρίνετε τι σημαίνουν. Θέλετε να βεβαιωθείτε ότι οι σχέσεις αντικατοπτρίζουν με ακρίβεια αυτές που υπάρχουν στα δεδομένα σας.
Σχέσεις
Οι παρακάτω είναι διαφορετικοί τύποι σχέσεων που θα βρείτε Power BI.
Σχέση πολλά-προς-ένα (*:1)
ή ένας-προς-πολλά (1: *)
Περιγράφει μια σχέση στην οποία έχετε πολλές παρουσίες μιας τιμής σε μια στήλη που σχετίζονται με μόνο μια μοναδική αντίστοιχη παρουσία σε μια άλλη στήλη.
Περιγράφει την κατευθυντικότητα μεταξύ των πινάκων γεγονότων και διαστάσεων.
Είναι ο πιο συνηθισμένος τύπος κατευθυντικότητας και είναι ο Power BI προεπιλογή όταν δημιουργείτε αυτόματα σχέσεις.
Ένα παράδειγμα μιας σχέσης ένα προς πολλά θα ήταν μεταξύ των πινάκων CountryName και Territory, όπου μπορείτε να έχετε πολλές περιοχές που σχετίζονται με μία μοναδική χώρα.
Σχέση ένας προς έναν (1:1):
Περιγράφει μια σχέση στην οποία μόνο μία παρουσία μιας τιμής είναι κοινή μεταξύ δύο πινάκων.
Απαιτεί μοναδικές τιμές και στους δύο πίνακες.
Δεν συνιστάται επειδή αυτή η σχέση αποθηκεύει περιττές πληροφορίες και υποδηλώνει ότι το μοντέλο δεν έχει σχεδιαστεί σωστά. Είναι καλύτερη πρακτική να συνδυάζετε τους πίνακες.
Ένα παράδειγμα μιας σχέσης ένας προς έναν θα ήταν εάν είχατε προϊόντα και αναγνωριστικά προϊόντων σε δύο διαφορετικούς πίνακες. Η δημιουργία μιας σχέσης ένας προς έναν είναι περιττή και αυτοί οι δύο πίνακες θα πρέπει να συνδυαστούν.
Σχέση πολλά-προς-πολλά (.):
Περιγράφει μια σχέση όπου πολλές τιμές είναι κοινές μεταξύ δύο πινάκων.
Δεν απαιτεί μοναδικές τιμές σε κανέναν πίνακα σε μια σχέση.
Δεν συνιστάται. Η έλλειψη μοναδικών τιμών δημιουργεί ασάφεια και οι χρήστες σας ενδέχεται να μην γνωρίζουν ποια στήλη τιμών αναφέρεται σε τι.
Για παράδειγμα, το ακόλουθο σχήμα δείχνει μια σχέση πολλών προς πολλά μεταξύ των πινάκων Πωλήσεις και Παραγγελίες στη στήλη Ημερομηνία παραγγελίας , επειδή πολλές πωλήσεις μπορεί να έχουν πολλαπλές παραγγελίες που σχετίζονται με αυτές. Εισάγεται ασάφεια επειδή και οι δύο πίνακες μπορεί να έχουν την ίδια ημερομηνία παραγγελίας.
Διεύθυνση σταυροφίλτρου
Τα δεδομένα μπορούν να φιλτραριστούν στη μία ή και στις δύο πλευρές μιας σχέσης.
Με μια ενιαία κατεύθυνση σταυρωτού φίλτρου:
Μόνο ένας πίνακας σε μια σχέση μπορεί να χρησιμοποιηθεί για το φιλτράρισμα των δεδομένων. Για παράδειγμα, ο Πίνακας 1 μπορεί να φιλτραριστεί από τον Πίνακα 2, αλλά ο Πίνακας 2 δεν μπορεί να φιλτραριστεί από τον Πίνακα 1.
Υπόδειξη
Ακολουθήστε την κατεύθυνση του βέλους στη σχέση μεταξύ των πινάκων σας για να μάθετε σε ποια κατεύθυνση θα ρέει το φίλτρο. Συνήθως θέλετε αυτά τα βέλη να δείχνουν στον πίνακα δεδομένων σας.
Για μια σχέση ένα προς πολλά ή πολλά προς ένα, η κατεύθυνση του σταυροφίλτρου θα είναι από την πλευρά "ένα", που σημαίνει ότι το φιλτράρισμα θα γίνει στον πίνακα που έχει πολλές τιμές.
Με και τις δύο κατευθύνσεις διασταυρούμενων φίλτρων ή δικατευθυντικό διασταυρούμενο φιλτράρισμα:
Ένας πίνακας σε μια σχέση μπορεί να χρησιμοποιηθεί για να φιλτράρει τον άλλο. Για παράδειγμα, ένας πίνακας διαστάσεων μπορεί να φιλτραριστεί μέσω του πίνακα γεγονότων και οι πίνακες γεγονότων μπορούν να φιλτραριστούν μέσω του πίνακα διαστάσεων.
Μπορεί να έχετε χαμηλότερη απόδοση όταν χρησιμοποιείτε διασταυρούμενο φιλτράρισμα αμφίδρομης κατεύθυνσης με σχέσεις πολλά-προς-πολλά.
Μια προειδοποίηση σχετικά με το διασταυρούμενο φιλτράρισμα αμφίδρομης κατεύθυνσης: Δεν πρέπει να ενεργοποιήσετε τις σχέσεις αλληλοφιλτραρίσματος αμφίδρομης κατεύθυνσης, εκτός εάν κατανοείτε πλήρως τις συνέπειες που θα έχει. Η ενεργοποίησή του μπορεί να οδηγήσει σε ασάφεια, υπερβολική δειγματοληψία, απροσδόκητα αποτελέσματα και πιθανή υποβάθμιση της απόδοσης.
Καρδιναλότητα και κατεύθυνση σταυροφίλτρου
Για σχέσεις ένας προς έναν, η μόνη διαθέσιμη επιλογή είναι το διασταυρούμενο φιλτράρισμα αμφίδρομης κατεύθυνσης. Τα δεδομένα μπορούν να φιλτραριστούν και από τις δύο πλευρές αυτής της σχέσης και να οδηγήσουν σε μια ξεχωριστή, ξεκάθαρη τιμή. Για παράδειγμα, μπορείτε να φιλτράρετε σε ένα Αναγνωριστικό προϊόντος και να σας επιστραφεί ένα Προϊόν και μπορείτε να φιλτράρετε σε ένα Προϊόν και να σας επιστραφεί ένα μεμονωμένο Αναγνωριστικό προϊόντος.
Για σχέσεις πολλά-προς-πολλά, μπορείτε να επιλέξετε να φιλτράρετε προς μία κατεύθυνση ή και προς τις δύο κατευθύνσεις, χρησιμοποιώντας διασταυρούμενο φιλτράρισμα αμφίδρομης κατεύθυνσης. Η ασάφεια που σχετίζεται με το διασταυρούμενο φιλτράρισμα αμφίδρομης κατεύθυνσης ενισχύεται σε μια σχέση πολλά προς πολλά επειδή θα υπάρχουν πολλαπλές διαδρομές μεταξύ διαφορετικών πινάκων. Εάν δημιουργήσετε ένα μέτρο, έναν υπολογισμό ή ένα φίλτρο, ενδέχεται να προκύψουν ακούσιες συνέπειες όπου τα δεδομένα σας φιλτράρονται και, ανάλογα με τη σχέση που Power BI ο κινητήρας επιλέγει κατά την εφαρμογή του φίλτρου, το τελικό αποτέλεσμα μπορεί να είναι διαφορετικό. Αυτή η κατάσταση ισχύει επίσης για αμφίδρομες σχέσεις και γιατί θα πρέπει να είστε προσεκτικοί όταν τις χρησιμοποιείτε.
Για το λόγο αυτό, οι σχέσεις πολλά-προς-πολλά ή/και αμφίδρομες σχέσεις είναι περίπλοκες. Αν δεν είστε βέβαιοι πώς φαίνονται τα δεδομένα σας όταν συγκεντρώνονται, αυτοί οι τύποι σχέσεων ανοιχτού τύπου με πολλαπλές κατευθύνσεις φιλτραρίσματος μπορούν να εισάγουν πολλαπλές διαδρομές μέσω των δεδομένων.
Δημιουργία σχέσεις πολλά-προς-πολλά
Σκεφτείτε το σενάριο όπου σας ανατίθεται να δημιουργήσετε μια εικόνα που εξετάζει τους προϋπολογισμούς για πελάτες και λογαριασμούς. Μπορείτε να έχετε πολλούς πελάτες στον ίδιο λογαριασμό και πολλούς λογαριασμούς με τον ίδιο πελάτη, ώστε να γνωρίζετε ότι πρέπει να δημιουργήσετε μια σχέση πολλά προς πολλά.
Για να δημιουργήσετε αυτή τη σχέση, μεταβείτε στο Διαχειριστείτε τις σχέσεις> Νέο. Στο παράθυρο που προκύπτει, δημιουργήστε μια σχέση μεταξύ του Κωδικός πελάτη στήλη στον Πίνακα Πελατών και τον Πίνακα Λογαριασμού. Η σχέση έχει οριστεί σε πολλά-προς-πολλά και ο τύπος φίλτρου είναι και στις δύο κατευθύνσεις. Αμέσως, θα ειδοποιηθείτε ότι θα πρέπει να χρησιμοποιείτε αυτόν τον τύπο σχέσης μόνο εάν αναμένεται ότι καμία στήλη δεν θα έχει μοναδικές τιμές, επειδή ενδέχεται να λάβετε μη αναμενόμενες τιμές. Επειδή θέλετε να φιλτράρετε και προς τις δύο κατευθύνσεις, επιλέξτε δικατευθυντικό διασταυρούμενο φιλτράρισμα.
Επιλέξτε ΟΚ. Τώρα έχετε δημιουργήσει με επιτυχία μια σχέση πολλά-προς-πολλά.
Για περισσότερες πληροφορίες, βλ Πολλές-προς-πολλές σχέσεις σε Power BI.