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


Οδηγίες για τις σχέσεις αμφίδρομης κατεύθυνσης

Αυτό το άρθρο απευθύνεται σε εσάς ως δημιουργός μοντέλων δεδομένων που συνεργάζεται με το 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Πελάτης-1 Country-RegionΗνωμένες Πολιτείες
    • CustomerCode CUST-02, CustomerCustomer-2, Country-RegionAustralia
  • Ο Product πίνακας έχει τρεις γραμμές:
    • SKU CL-01, Productμπλουζάκια, ColorGreen
    • SKU CL-02, Productτζιν, ColorBlue
    • SKU AC-01, ProductHat, ColorBlue
  • Ο Sales πίνακας έχει τρεις γραμμές:
    • OrderDate 1η Ιανουαρίου 2019, CustomerCodeCUST-01 , SKUCL-01, Quantity10
    • OrderDate 2 Φεβρουαρίου 2019, CustomerCodeCUST-01 , SKUCL-02, Quantity20
    • OrderDate 3 Μαρτίου 2019, CustomerCodeCUST-02 , SKUCL-01, Quantity30

Ας εξετάσουμε τώρα την παρακάτω σελίδα αναφοράς.

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

Η σελίδα αποτελείται από δύο αναλυτές και μια απεικόνιση κάρτας. Ο πρώτος αναλυτής βασίζεται στο πεδίο 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 στήλη αντιπροσωπεύει το διακριτό πλήθος τιμών χώρας-περιοχής όλων των πελατών που έχουν αγοράσει το προϊόν.

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

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