Οδηγίες για τις σχέσεις αμφίδρομης κατεύθυνσης
Αυτό το άρθρο απευθύνεται σε εσάς ως δημιουργός μοντέλων δεδομένων που συνεργάζεται με το Power BI Desktop. Σας παρέχει οδηγίες σχετικά με το πότε πρέπει να δημιουργείτε σχέσεις μοντέλων αμφίδρομης κατεύθυνσης. Μια σχέση αμφίδρομης κατεύθυνσης φιλτράρει και προς τις δύο κατευθύνσεις.
Σημείωμα
Η εισαγωγή στις σχέσεις μοντέλου δεν καλύπτεται σε αυτό το άρθρο. Εάν δεν είστε πλήρως εξοικειωμένοι με τις σχέσεις, τις ιδιότητές τους ή τον τρόπο ρύθμισης των παραμέτρων τους, συνιστούμε να διαβάσετε πρώτα το άρθρο Σχέσεις μοντέλων στο Power BI Desktop .
Είναι επίσης σημαντικό να κατανοήσετε τη σχεδίαση αστεροειδούς σχήματος. Για περισσότερες πληροφορίες, ανατρέξτε στο θέμα Κατανόηση του αστεροειδούς σχήματος και της σημασίας του για το Power BI.
Κατά κανόνα, συνιστούμε να ελαχιστοποιείτε τη χρήση σχέσεων αμφίδρομης κατεύθυνσης. Αυτό συμβαίνει επειδή μπορούν να επηρεάσουν αρνητικά τις επιδόσεις των ερωτημάτων μοντέλου και, ενδεχομένως, να προκαλέσουν σύγχυση στους χρήστες της αναφοράς σας.
Ωστόσο, υπάρχουν τρία σενάρια όπου το φιλτράρισμα αμφίδρομης κατεύθυνσης μπορεί να καλύψει συγκεκριμένες απαιτήσεις:
Ειδικές σχέσεις μοντέλων
Οι σχέσεις αμφίδρομης κατεύθυνσης διαδραματίζουν σημαντικό ρόλο κατά τη δημιουργία των ακόλουθων δύο ειδικών τύπων σχέσεων μοντέλων:
- Ένα προς ένα: Όλες οι σχέσεις ένα προς ένα πρέπει να είναι αμφίδρομες. Δεν είναι δυνατό να διαμορφωθούν διαφορετικά. Γενικά, δεν συνιστούμε τη δημιουργία αυτών των τύπων σχέσεων. Για μια πλήρη συζήτηση και εναλλακτικά μοτίβα σχεδίασης, ανατρέξτε οδηγίες για σχέσεις ένα προς ένα.
- "Πολλά-προς-πολλά" : Όταν συσχετίζετε δύο πίνακες διαστάσεων , απαιτείται μια πίνακα γεφύρωσης. Απαιτείται ένα φίλτρο αμφίδρομης κατεύθυνσης για να διασφαλιστεί η μετάδοση των φίλτρων σε ολόκληρο τον πίνακα γεφύρωσης. Για περισσότερες πληροφορίες, ανατρέξτε οδηγίες για σχέσεις πολλά προς πολλά.
Επιλογές αναλυτή "με δεδομένα"
Οι σχέσεις αμφίδρομης κατεύθυνσης μπορούν να παρέχουν αναλυτές που περιορίζουν τις επιλογές εκεί όπου υπάρχουν δεδομένα. (Εάν είστε εξοικειωμένοι με τους Συγκεντρωτικούς Πίνακες και τους αναλυτές του Excel, αυτή είναι η προεπιλεγμένη συμπεριφορά κατά την προμήθεια δεδομένων από ένα σημασιολογικό μοντέλο Power BI ή ένα μοντέλο των Υπηρεσιών ανάλυσης.) Για να εξηγήσετε τι σημαίνει αυτό, εξετάστε πρώτα το παρακάτω διάγραμμα μοντέλου.
Ο πρώτος πίνακας ονομάζεται Customer
.και περιέχει τρεις στήλες: Country-Region
, Customer
και CustomerCode
. Ο δεύτερος πίνακας ονομάζεται Product
και περιέχει τρεις στήλες: Color
, Product
και SKU
. Ο τρίτος πίνακας ονομάζεται Sales
και περιέχει τέσσερις στήλες: CustomerCode
, OrderDate
, Quantity
και SKU
. Οι πίνακες Customer
και Product
είναι πίνακες διαστάσεων και ο καθένας έχει μια σχέση "ένα-προς-πολλά" με τον πίνακα Sales
. Κάθε σχέση φιλτράρει προς μία μόνο κατεύθυνση.
Για να περιγράψουμε τον τρόπο με τον οποίο λειτουργεί το φιλτράρισμα αμφίδρομης κατεύθυνσης, έχουμε τροποποιήσει το διάγραμμα μοντέλου για να αποκαλύψουμε τις γραμμές του πίνακα. Όλα τα παραδείγματα σε αυτό το άρθρο βασίζονται σε αυτά τα δεδομένα.
Οι λεπτομέρειες γραμμής για τους τρεις πίνακες περιγράφονται στην παρακάτω λίστα με κουκκίδες:
- Ο
Customer
πίνακας έχει δύο γραμμές:-
CustomerCode
CUST-01 ,Customer
Πελάτης-1Country-Region
Ηνωμένες Πολιτείες -
CustomerCode
CUST-02,Customer
Customer-2,Country-Region
Australia
-
- Ο
Product
πίνακας έχει τρεις γραμμές:-
SKU
CL-01,Product
μπλουζάκια,Color
Green -
SKU
CL-02,Product
τζιν,Color
Blue -
SKU
AC-01,Product
Hat,Color
Blue
-
- Ο
Sales
πίνακας έχει τρεις γραμμές:-
OrderDate
1η Ιανουαρίου 2019,CustomerCode
CUST-01 ,SKU
CL-01,Quantity
10 -
OrderDate
2 Φεβρουαρίου 2019,CustomerCode
CUST-01 ,SKU
CL-02,Quantity
20 -
OrderDate
3 Μαρτίου 2019,CustomerCode
CUST-02 ,SKU
CL-01,Quantity
30
-
Ας εξετάσουμε τώρα την παρακάτω σελίδα αναφοράς.
Η σελίδα αποτελείται από δύο αναλυτές και μια απεικόνιση κάρτας. Ο πρώτος αναλυτής βασίζεται στο πεδίο Country-Region
και διαθέτει δύο επιλογές: Αυστραλία και Ηνωμένες Πολιτείες. Αυτή τη στιγμή πραγματοποιεί ανάλυση κατά Αυστραλία. Ο δεύτερος αναλυτής βασίζεται στο πεδίο Product
και διαθέτει τρεις επιλογές: Hat, Jeans και T-shirt. Δεν έχουν επιλεγεί στοιχεία (δηλαδή δεν φιλτράρονται προϊόντα ). Η απεικόνιση κάρτας εμφανίζει την ποσότητα 30.
Όταν οι χρήστες της αναφοράς κάνουν ανάλυση κατά Αυστραλία, ίσως θέλετε να περιορίσετε τον αναλυτή προϊόντων ώστε να εμφανίζει επιλογές όπου τα δεδομένα σχετίζονται με τις πωλήσεις στην Αυστραλία. Αυτό σημαίνει η εμφάνιση επιλογών αναλυτή "με δεδομένα". Μπορείτε να επιτύχετε αυτήν τη συμπεριφορά ορίζοντας τη σχέση μεταξύ των πινάκων Product
και Sales
για να φιλτράρετε και προς τις δύο κατευθύνσεις.
Ο αναλυτής προϊόντος εμφανίζει πλέον μία μόνο επιλογή: Κοντομάνικο μπλουζάκι. Αυτή η επιλογή αντιπροσωπεύει το μοναδικό προϊόν που πωλείται σε πελάτες στην Αυστραλία.
Πρώτα, συνιστούμε να εξετάσετε προσεκτικά εάν αυτή η σχεδίαση λειτουργεί για τους χρήστες της αναφοράς σας. Ορισμένοι χρήστες αναφορών βρίσκουν την εμπειρία πολύπλοκη, επειδή δεν καταλαβαίνουν γιατί οι επιλογές αναλυτή εμφανίζονται ή εξαφανίζονται δυναμικά όταν αλληλεπιδρούν με άλλους αναλυτές.
Εάν αποφασίσετε να εμφανίσετε επιλογές αναλυτή "με δεδομένα", δεν συνιστούμε να ρυθμίσετε σχέσεις αμφίδρομης κατεύθυνσης. Οι σχέσεις αμφίδρομης κατεύθυνσης απαιτούν περισσότερη επεξεργασία και, επομένως, μπορούν να επηρεάσουν αρνητικά τις επιδόσεις των ερωτημάτων, ιδιαίτερα καθώς αυξάνεται ο αριθμός των σχέσεων αμφίδρομης κατεύθυνσης στο μοντέλο.
Υπάρχει καλύτερος τρόπος για να επιτύχετε το ίδιο αποτέλεσμα: Αντί να χρησιμοποιήσετε φίλτρα αμφίδρομης κατεύθυνσης, μπορείτε να εφαρμόσετε ένα φίλτρο επιπέδου απεικόνισης στον ίδιο τον αναλυτή προϊόντος.
Ας υποθέσουμε τώρα ότι η σχέση μεταξύ των πινάκων Product
και Sales
δεν φιλτράρει πλέον και προς τις δύο κατευθύνσεις. Επίσης, έχει προστεθεί ο παρακάτω ορισμός μέτρησης στον πίνακα Sales
.
Total Quantity = SUM(Sales[Quantity])
Για να εμφανίσετε τις επιλογές του αναλυτή προϊόντος "με δεδομένα", απλά πρέπει να φιλτράρετε σύμφωνα με την Total Quantity
μέτρηση, χρησιμοποιώντας τη συνθήκη "δεν είναι κενό".
Ανάλυση διάστασης προς διάσταση
Ένα διαφορετικό σενάριο που περιλαμβάνει σχέσεις αμφίδρομης κατεύθυνσης αντιμετωπίζει έναν πίνακα δεδομένων σαν έναν πίνακα γεφύρωσης . Με αυτόν τον τρόπο, υποστηρίζει την ανάλυση δεδομένων πίνακα διαστάσεων εντός του περιβάλλοντος φίλτρου ενός διαφορετικού πίνακα διαστάσεων.
Χρησιμοποιώντας το παράδειγμα μοντέλου σε αυτό το άρθρο, εξετάστε πώς μπορούν να απαντηθούν οι παρακάτω ερωτήσεις:
- Πόσα χρώματα πωλήθηκαν σε πελάτες στην Αυστραλία;
- Πόσες χώρες/περιοχές αγόρασαν τζιν παντελόνια;
Και οι δύο ερωτήσεις μπορούν να απαντηθούν χωρίς σύνοψη δεδομένων στον πίνακα γεφύρωσης δεδομένων. Απαιτούν, ωστόσο, τη μετάδοση των φίλτρων από τον έναν πίνακα διαστάσεων στον άλλο. Όταν τα φίλτρα μεταδίδονται μέσω του πίνακα δεδομένων, η σύνοψη των στηλών πίνακα διαστάσεων μπορεί να επιτευχθεί χρησιμοποιώντας τις συνάρτηση DAX DISTINCTCOUNT, και πιθανώς τις MIN και συναρτήσεις MAX DAX.
Καθώς ο πίνακας δεδομένων συμπεριφέρεται όπως ένας πίνακας γεφύρωσης, μπορείτε να εφαρμόσετε τις οδηγίες σχέσης πολλά-προς-πολλά για να συσχετίσετε δύο πίνακες διαστάσεων. Θα χρειαστεί να ρυθμίσετε τουλάχιστον μία σχέση για να φιλτράρετε και προς τις δύο κατευθύνσεις. Για περισσότερες πληροφορίες, ανατρέξτε οδηγίες για σχέσεις πολλά προς πολλά.
Ωστόσο, όπως έχει ήδη περιγραφεί σε αυτό το άρθρο, αυτή η σχεδίαση πιθανώς θα έχει αρνητικές επιπτώσεις στις επιδόσεις και οι συνέπειες της εμπειρίας χρήστη που σχετίζονται με επιλογές αναλυτή "με δεδομένα". Επομένως, συνιστούμε να ενεργοποιήσετε το φιλτράρισμα αμφίδρομης κατεύθυνσης σε έναν ορισμό μέτρησης, χρησιμοποιώντας τη συνάρτηση DAX CROSSFILTER . Μπορείτε να χρησιμοποιήσετε τη συνάρτηση CROSSFILTER για να τροποποιήσετε τις κατευθύνσεις φίλτρου ή ακόμα και να απενεργοποιήσετε τη σχέση, κατά την αξιολόγηση μιας παράστασης.
Εξετάστε τον παρακάτω ορισμό μέτρησης που προστέθηκε στον πίνακα Sales
. Σε αυτό το παράδειγμα, η σχέση μοντέλου μεταξύ των πινάκων Customer
και Sales
έχει ρυθμιστεί για φιλτράρισμα σε μια μονή κατεύθυνση.
Different Countries Sold =
CALCULATE(
DISTINCTCOUNT(Customer[Country-Region]),
CROSSFILTER(
Customer[CustomerCode],
Sales[CustomerCode],
BOTH
)
)
Κατά την αξιολόγηση της Different Countries Sold
μέτρησης, η σχέση μεταξύ των Customer
και Sales
πινάκων φιλτράρει και προς τις δύο κατευθύνσεις.
Η παρακάτω απεικόνιση πίνακα παρουσιάζει στατιστικά στοιχεία για κάθε προϊόν που έχει πουληθεί. Η Quantity
στήλη είναι απλώς το άθροισμα των τιμών ποσότητας. Η Different Countries Sold
στήλη αντιπροσωπεύει το διακριτό πλήθος τιμών χώρας-περιοχής όλων των πελατών που έχουν αγοράσει το προϊόν.
Σχετικό περιεχόμενο
Για περισσότερες πληροφορίες σχετικά με αυτό το άρθρο, ανατρέξτε στους παρακάτω πόρους:
- Σχέσεις μοντέλων στο Power BI Desktop
- Κατανοήστε το αστεροειδές σχήμα και τη σημασία του για το Power BI
- Οδηγίες για τις σχέσεις ένα προς ένα
- Οδηγίες για τις σχέσεις πολλά προς πολλά
- Οδηγίες αντιμετώπισης προβλημάτων σχέσεων
- Ερωτήσεις; δοκιμάστε να ρωτήσετε το Κοινότητας Fabric
- Προτάσεις? συνεισφέρετε ιδέες για τη βελτίωση του Fabric