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

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

Σημείωμα

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

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

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

Υπάρχουν τρία σενάρια όπου το φιλτράρισμα αμφίδρομης κατεύθυνσης μπορεί να καλύψει συγκεκριμένες απαιτήσεις:

Ειδικές σχέσεις μοντέλων

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

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

Στοιχεία αναλυτή "με δεδομένα"

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

Diagram showing a model containing three tables. The design is described in the following paragraph.

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

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

Σημείωμα

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

Diagram showing that the model now reveals the table rows. The row details are described in the following paragraph.

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

  • Ο πίνακας Πελάτης έχει δύο γραμμές:
    • Κωδικός πελάτη CUST-01, Πελάτης Πελάτης-1, Χώρα-Περιοχή Ηνωμένες Πολιτείες
    • Κωδικός πελάτη CUST-02, Πελάτης Πελάτης-2, Χώρα-Περιοχή Αυστραλία
  • Ο πίνακας Προϊόν έχει τρεις γραμμές:
    • SKU CL-01, Προϊόν Κοντομάνικο μπλουζάκι, Χρώμα Πράσινο
    • SKU CL-02, Προϊόν Τζιν παντελόνι, Χρώμα Μπλε
    • SKU AC-01, Προϊόν Καπέλο, Χρώμα Μπλε
  • Ο πίνακας Sales έχει τρεις γραμμές:
    • Ημερομηνία παραγγελίας 1 Ιανουαρίου 2019, Κωδικός πελάτη CUST-01, SKU CL-01, Ποσότητα 10
    • Ημερομηνία παραγγελίας 2 Φεβρουαρίου 2019, Κωδικός πελάτη CUST-01, SKU CL-02, Ποσότητα 20
    • Ημερομηνία παραγγελίας 3 Μαρτίου 2019, Κωδικός πελάτη CUST-02, SKU CL-01, Ποσότητα 30

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

Diagram showing the report page containing three visuals. The details are described in the following paragraph.

Η σελίδα αποτελείται από δύο αναλυτές και μια απεικόνιση κάρτας. Ο πρώτος αναλυτής αφορά τη Χώρα-Περιοχή και διαθέτει δύο στοιχεία: Αυστραλία και Ηνωμένες Πολιτείες. Αυτή τη στιγμή πραγματοποιεί ανάλυση κατά Αυστραλία. Ο δεύτερος αναλυτής αφορά την κατηγορία Product και διαθέτει τρία στοιχεία: Hat, Jeans και T-shirt. Δεν έχουν επιλεγεί στοιχεία (δηλαδή δεν φιλτράρονται προϊόντα ). Η απεικόνιση κάρτας εμφανίζει την ποσότητα 30.

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

Diagram showing a model that the relationship between the Product and Sales table is now bi-directional.

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

Diagram showing the report page containing three visuals with Product called out. The details are described in the following paragraph.

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

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

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

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

Total Quantity = SUM(Sales[Quantity])

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

Diagram showing that the Filters pane for the Product slicer now filters by

Ανάλυση διάστασης προς διάσταση

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

Χρησιμοποιώντας το παράδειγμα μοντέλου σε αυτό το άρθρο, εξετάστε πώς μπορούν να απαντηθούν οι παρακάτω ερωτήσεις:

  • Πόσα χρώματα πωλήθηκαν σε πελάτες στην Αυστραλία;
  • Πόσες χώρες/περιοχές αγόρασαν τζιν παντελόνια;

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

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

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

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

Different Countries Sold =
CALCULATE(
    DISTINCTCOUNT(Customer[Country-Region]),
    CROSSFILTER(
        Customer[CustomerCode],
        Sales[CustomerCode],
        BOTH
    )
)

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

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

Diagram showing that two products are listed in a table visual. In the

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