Καθοδήγηση για τα σύνθετα μοντέλα στο Power BI Desktop
Αυτό το άρθρο αφορά δημιουργούς μοντέλων δεδομένων που αναπτύσσουν σύνθετα μοντέλα Power BI. Περιγράφει περιπτώσεις χρήσης σύνθετων μοντέλων και σας παρέχει οδηγίες σχεδίασης. Συγκεκριμένα, οι οδηγίες μπορούν να σας βοηθήσουν να προσδιορίσετε εάν ένα σύνθετο μοντέλο είναι κατάλληλο για τη λύση σας. Εάν ναι, αυτό το άρθρο θα σας βοηθήσει επίσης να σχεδιάσετε τα βέλτιστα σύνθετα μοντέλα και αναφορές.
Σημείωμα
Η εισαγωγή στα σύνθετα μοντέλα δεν καλύπτεται σε αυτό το άρθρο. Εάν δεν είστε πλήρως εξοικειωμένοι με τα σύνθετα μοντέλα, συνιστάται να διαβάσετε πρώτα το άρθρο Χρήση σύνθετων μοντέλων στο Power BI Desktop .
Επειδή τα σύνθετα μοντέλα αποτελούνται από τουλάχιστον μία προέλευση DirectQuery, είναι επίσης σημαντικό να έχετε κατανοήσει πλήρως τις σχέσεις μοντέλων, τα μοντέλα DirectQuery και τις οδηγίες σχεδίασης μοντέλων DirectQuery.
Περιπτώσεις χρήσης σύνθετου μοντέλου
Εξ ορισμού, ένα σύνθετο μοντέλο συνδυάζει πολλές ομάδες προέλευσης δεδομένων. Μια ομάδα προέλευσης μπορεί να αντιπροσωπεύει δεδομένα που έχουν εισαχθεί ή μια σύνδεση σε μια προέλευση DirectQuery. Μια προέλευση DirectQuery μπορεί να είναι είτε μια σχεσιακή βάση δεδομένων είτε ένα άλλο μοντέλο σε μορφή πίνακα, το οποίο μπορεί να είναι ένα σημασιολογικό μοντέλο Power BI ή ένα μοντέλο σε μορφή πίνακα των Υπηρεσιών ανάλυσης. Όταν ένα μοντέλο σε μορφή πίνακα συνδέεται σε ένα άλλο μοντέλο σε μορφή πίνακα, είναι γνωστό ως σύνδεση σε αλυσίδα. Για περισσότερες πληροφορίες, ανατρέξτε στο θέμα Χρήση σύνθετων μοντέλων στο Power BI Desktop.
Σημείωμα
Όταν ένα μοντέλο συνδέεται σε ένα μοντέλο σε μορφή πίνακα, αλλά δεν το επεκτείνει με πρόσθετα δεδομένα, δεν είναι ένα σύνθετο μοντέλο. Σε αυτή την περίπτωση, είναι ένα μοντέλο DirectQuery που συνδέεται σε ένα απομακρυσμένο μοντέλο, επομένως αποτελείται μόνο από μία ομάδα προέλευσης δεδομένων. Μπορείτε να δημιουργήσετε αυτόν τον τύπο μοντέλου για να τροποποιήσετε τις ιδιότητες αντικειμένου μοντέλου προέλευσης, όπως ένα όνομα πίνακα, σειρά ταξινόμησης στηλών, συμβολοσειρά μορφοποίησης ή άλλα.
Η σύνδεση σε μοντέλα σε μορφή πίνακα είναι ιδιαίτερα σχετική κατά την επέκταση ενός εταιρικού μοντέλου σημασιολογίας (όταν είναι μοντέλο σημασιολογίας Power BI ή μοντέλο Των Υπηρεσιών ανάλυσης). Ένα εταιρικό σημασιολογικό μοντέλο είναι βασικό για την ανάπτυξη και τη λειτουργία μιας αποθήκης δεδομένων. Παρέχει ένα επίπεδο αφαίρεσης πάνω από τα δεδομένα στην αποθήκη δεδομένων για την παρουσίαση επιχειρηματικών ορισμών και ορολογίας. Χρησιμοποιείται συνήθως ως σύνδεση μεταξύ των φυσικών μοντέλων δεδομένων και των εργαλείων αναφοράς, όπως το Power BI. Στους περισσότερους οργανισμούς, η διαχείρισή της γίνεται από μια κεντρική ομάδα και για αυτό περιγράφεται ως εταιρική. Για περισσότερες πληροφορίες, ανατρέξτε στο σενάριο χρήσης εταιρικού BI .
Μπορείτε να εξετάσετε την ανάπτυξη ενός σύνθετου μοντέλου στις ακόλουθες περιπτώσεις:
- Το μοντέλο σας μπορεί να είναι ένα μοντέλο DirectQuery και θέλετε να ενισχύσετε τις επιδόσεις. Σε ένα σύνθετο μοντέλο, μπορείτε να βελτιώσετε τις επιδόσεις ρυθμίζοντας κατάλληλο χώρο αποθήκευσης για κάθε πίνακα. Μπορείτε επίσης να προσθέσετε συναθροίσεις που ορίζονται από τον χρήστη. Και οι δύο αυτές βελτιστοποιήσεις περιγράφονται παρακάτω σε αυτό το άρθρο.
- Θέλετε να συνδυάσετε ένα μοντέλο DirectQuery με περισσότερα δεδομένα, τα οποία πρέπει να εισαχθούν στο μοντέλο. Μπορείτε να φορτώσετε δεδομένα που έχουν εισαχθεί από διαφορετική προέλευση δεδομένων ή από υπολογιζόμενους πίνακες.
- Θέλετε να συνδυάσετε δύο ή περισσότερες προελεύσεις δεδομένων DirectQuery σε ένα μόνο μοντέλο. Αυτές οι προελεύσεις μπορεί να είναι σχεσιακές βάσεις δεδομένων ή άλλα μοντέλα σε μορφή πίνακα.
Σημείωμα
Τα σύνθετα μοντέλα δεν μπορούν να περιλαμβάνουν συνδέσεις σε ορισμένες εξωτερικές βάσεις δεδομένων ανάλυσης. Αυτές οι βάσεις δεδομένων περιλαμβάνουν το SAP Business Warehouse και το SAP HANA κατά τον χειρισμό του SAP HANA ως πολυδιάστατης προέλευσης.
Αξιολόγηση άλλων επιλογών σχεδίασης μοντέλου
Παρόλο που τα σύνθετα μοντέλα Power BI μπορούν να επιλύσουν συγκεκριμένες προκλήσεις σχεδίασης, μπορούν να συμβάλουν στην αργή απόδοση. Επίσης, σε ορισμένες περιπτώσεις, μπορεί να προκύψουν μη αναμενόμενα αποτελέσματα υπολογισμού (περιγράφονται παρακάτω σε αυτό το άρθρο). Για αυτούς τους λόγους, αξιολογήστε άλλες επιλογές σχεδίασης μοντέλου όταν υπάρχουν.
Όποτε είναι εφικτό, είναι προτιμότερο να αναπτύξετε ένα μοντέλο σε λειτουργία εισαγωγής. Αυτή η λειτουργία παρέχει τη μεγαλύτερη ευελιξία σχεδίασης και βέλτιστες επιδόσεις. Ωστόσο, προκλήσεις που σχετίζονται με μεγάλους όγκους δεδομένων ή αναφορές σε δεδομένα σχεδόν σε πραγματικό χρόνο, δεν μπορούν να επιλυθούν πάντα με μοντέλα εισαγωγής. Σε οποιαδήποτε από αυτές τις περιπτώσεις, μπορείτε να εξετάσετε ένα μοντέλο DirectQuery, με την προϋπόθεση ότι τα δεδομένα σας αποθηκεύονται σε μια μοναδική προέλευση δεδομένων που υποστηρίζεται από τη λειτουργία DirectQuery. Για περισσότερες πληροφορίες, ανατρέξτε στο θέμα Μοντέλα DirectQuery στο Power BI Desktop.
Φιλοδώρημα
Εάν ο στόχος σας είναι να επεκτείνετε ένα υπάρχον μοντέλο σε μορφή πίνακα με περισσότερα δεδομένα, όποτε είναι εφικτό, προσθέστε αυτά τα δεδομένα στην υπάρχουσα προέλευση δεδομένων.
Λειτουργία αποθήκευσης πινάκων
Σε ένα σύνθετο μοντέλο, μπορείτε να ορίσετε τη λειτουργία αποθήκευσης για κάθε πίνακα (εκτός από τους υπολογιζόμενους πίνακες).
- directQuery: Συνιστούμε να ορίσετε αυτήν τη λειτουργία για πίνακες που αντιπροσωπεύουν μεγάλους όγκους δεδομένων ή που πρέπει να παραδώσουν αποτελέσματα σχεδόν σε πραγματικό χρόνο. Τα δεδομένα δεν θα εισάγονται ποτέ σε αυτούς τους πίνακες. Συνήθως, αυτοί οι πίνακες θα πίνακες δεδομένων, οι οποίοι είναι πίνακες που συνοψίζονται.
- Εισαγωγή: Συνιστούμε να ορίσετε αυτήν τη λειτουργία για πίνακες που δεν χρησιμοποιούνται για το φιλτράρισμα και την ομαδοποίηση πινάκων δεδομένων σε λειτουργία DirectQuery ή υβριδική. Είναι επίσης η μόνη επιλογή για πίνακες που βασίζονται σε προελεύσεις που δεν υποστηρίζονται από τη λειτουργία DirectQuery. Οι υπολογιζόμενοι πίνακες είναι πάντα πίνακες εισαγωγής.
- Διπλή: Προτείνουμε να ορίσετε αυτήν τη λειτουργία για πίνακες διαστάσεων, όταν υπάρχει πιθανότητα υποβολής ερωτημάτων μαζί με πίνακες δεδομένων DirectQuery από την ίδια προέλευση.
- Υβριδικά: Συνιστούμε να ορίσετε αυτήν τη λειτουργία προσθέτοντας διαμερίσματα εισαγωγής και ένα διαμέρισμα DirectQuery σε έναν πίνακα δεδομένων όταν θέλετε να συμπεριλάβετε τις πιο πρόσφατες αλλαγές δεδομένων σε πραγματικό χρόνο ή όταν θέλετε να παρέχετε γρήγορη πρόσβαση στα δεδομένα που χρησιμοποιούνται συχνότερα μέσω διαμερισμάτων εισαγωγής, αφήνοντας παράλληλα το μεγαλύτερο μέρος των πιο σπάνια χρησιμοποιημένων δεδομένων στην αποθήκη δεδομένων.
Υπάρχουν πολλά πιθανά σενάρια όταν το Power BI υποβάλλει ερώτημα σε ένα σύνθετο μοντέλο.
- Ερωτήματα μόνο εισαγωγής ή διπλήςπινάκων: Το Power BI ανακτά όλα τα δεδομένα από το cache μοντέλου. Θα παρέχει τις ταχύτερες δυνατές επιδόσεις. Αυτό το σενάριο είναι σύνηθες για πίνακες διαστάσεων στους οποία ζητείται η υποβολή ερωτημάτων από φίλτρα ή απεικονίσεις αναλυτή.
- Ερωτημάτων σε δύο πίνακες ή πίνακες DirectQuery από την ίδια προέλευση: Το Power BI ανακτά όλα τα δεδομένα στέλνοντας ένα ή περισσότερα εγγενή ερωτήματα στην προέλευση DirectQuery. Θα παρέχει καλές επιδόσεις, ιδιαίτερα όταν υπάρχουν κατάλληλα ευρετήρια στους πίνακες προέλευσης. Αυτό το σενάριο είναι σύνηθες για ερωτήματα που σχετίζονται με πίνακες δύο διαστάσεων και πίνακες δεδομένων DirectQuery. Αυτά τα ερωτήματα είναι εντός ομάδας προέλευσης δεδομένων και επομένως όλες οι σχέσεις ένα προς ένα ή ένα προς πολλά αξιολογούνται ως κανονικές σχέσεις.
- Ερωτήματα για δύο πίνακες ή υβριδικούς πίνακες από την ίδια προέλευση: Αυτό το σενάριο είναι ένας συνδυασμός των προηγούμενων δύο σεναρίων. Το Power BI ανακτά δεδομένα από το cache μοντέλου όταν είναι διαθέσιμα σε διαμερίσματα εισαγωγής, διαφορετικά στέλνει ένα ή περισσότερα εγγενή ερωτήματα στην προέλευση DirectQuery. Θα παρέχει τις ταχύτερες δυνατές επιδόσεις, επειδή τίθεται ερώτημα μόνο σε μια ανάλυση των δεδομένων στην αποθήκη δεδομένων, ειδικά όταν υπάρχουν κατάλληλα ευρετήρια στους πίνακες προέλευσης. Όσον αφορά τους πίνακες δύο διαστάσεων και τους πίνακες δεδομένων DirectQuery, αυτά τα ερωτήματα είναι εντός ομάδας προέλευσης δεδομένων και επομένως όλες οι σχέσεις ένα προς ένα ή ένα προς πολλά αξιολογούνται ως κανονικές σχέσεις.
- Όλα τα άλλα ερωτήματα: Αυτά τα ερωτήματα περιλαμβάνουν σχέσεις μεταξύ ομάδων προέλευσης δεδομένων. Αυτό συμβαίνει είτε επειδή ένας πίνακας εισαγωγής σχετίζεται με έναν πίνακα DirectQuery, είτε ένας διπλός πίνακας σχετίζεται με έναν πίνακα DirectQuery από μια διαφορετική προέλευση, στην οποία περίπτωση συμπεριφέρεται ως πίνακας εισαγωγής. Όλες οι σχέσεις αξιολογούνται ως περιορισμένες σχέσεις. Σημαίνει επίσης ότι ομαδοποιήσεις που εφαρμόζονται σε μη DirectQuery πίνακες πρέπει να σταλούν στην προέλευση DirectQuery ως υλοποιοποιημένα δευτερεύοντα ερωτήματα (εικονικοί πίνακες). Σε αυτή την περίπτωση, το εγγενές ερώτημα μπορεί να είναι αναποτελεσματικό, ειδικά για μεγάλα σύνολα ομαδοποίησης.
Συνοπτικά, συνιστούμε να κάνετε τα εξής:
- Εξετάστε προσεκτικά ότι ένα σύνθετο μοντέλο είναι η σωστή λύση - παρόλο που επιτρέπει ενοποίηση σε επίπεδο μοντέλου διαφορετικών προελεύσεων δεδομένων, παρουσιάζει επίσης πολυπλοκότητες σχεδίασης με πιθανές συνέπειες (περιγράφεται παρακάτω σε αυτό το άρθρο).
- Ορίστε τη λειτουργία αποθήκευσης σε DirectQuery όταν ένας πίνακας είναι ένας πίνακας δεδομένων που αποθηκεύει μεγάλους όγκους δεδομένων ή όταν χρειάζεται να παραδώσει αποτελέσματα σχεδόν σε πραγματικό χρόνο.
- Εξετάστε τη χρήση της υβριδικής λειτουργίας ορίζοντας μια πολιτική επαυξητικής ανανέωσης και δεδομένα σε πραγματικό χρόνο ή διαμερίζοντας τον πίνακα δεδομένων χρησιμοποιώντας TOM, TMSL ή ένα εργαλείο άλλου κατασκευαστή. Για περισσότερες πληροφορίες, ανατρέξτε στο θέμα Επαυξητική ανανέωση και δεδομένα σε πραγματικό χρόνο για σημασιολογικά μοντέλα και το σενάριο χρήσης μοντέλου δεδομένων για προχωρημένους.
- Ορίστε τη λειτουργία αποθήκευσης σε Διπλή όταν ένας πίνακας είναι πίνακας διαστάσεων και θα υποβληθούν ερωτήματα μαζί με το DirectQuery ή υβριδικούς πίνακες δεδομένων που βρίσκονται στην ίδια ομάδα προέλευσης δεδομένων.
- Ορίστε κατάλληλες συχνότητες ανανέωσης για να διατηρήσετε το cache μοντέλου για διπλούς και υβριδικούς πίνακες (και οποιουσδήποτε υπολογιζόμενους εξαρτημένους πίνακες) σε συγχρονισμό με τις βάσεις δεδομένων προέλευσης.
- Προσπαθήστε να διασφαλίσετε την ακεραιότητα δεδομένων μεταξύ ομάδων προέλευσης δεδομένων (συμπεριλαμβανομένης της cache μοντέλου), επειδή οι περιορισμένες σχέσεις θα εξαλείφουν γραμμές στα αποτελέσματα ερωτημάτων όταν δεν συμφωνούν σχετικές τιμές στήλης.
- Όποτε είναι εφικτό, βελτιστοποιήστε τις προελεύσεις δεδομένων DirectQuery με κατάλληλα ευρετήρια για αποτελεσματικούς συνδέσμους, φιλτράρισμα και ομαδοποίηση.
Συναθροίσεις που ορίζονται από τον χρήστη
Μπορείτε να προσθέσετε συναθροίσεις που ορίζονται από τον χρήστη σε πίνακες DirectQuery. Σκοπός τους είναι η βελτίωση επιδόσεων για ερωτήματα με μεγαλύτερη λεπτομέρεια .
Όταν οι συναθροίσεις αποθηκεύονται στο cache στο μοντέλο, συμπεριφέρονται ως πίνακες εισαγωγής (αν και δεν μπορούν να χρησιμοποιηθούν όπως ένας πίνακας μοντέλου). Η προσθήκη συναθροίσεων εισαγωγής σε ένα μοντέλο DirectQuery θα έχει ως αποτέλεσμα ένα σύνθετο μοντέλο.
Σημείωμα
Οι υβριδικοί πίνακες δεν υποστηρίζουν συναθροίσεις, επειδή ορισμένα από τα διαμερίσματα λειτουργούν σε λειτουργία εισαγωγής. Δεν είναι δυνατή η προσθήκη συναθροίσεων στο επίπεδο ενός μεμονωμένου διαμερίσματος DirectQuery.
Προτείνουμε μια συνάθροιση να ακολουθεί έναν βασικό κανόνα: Το πλήθος γραμμών θα πρέπει να είναι τουλάχιστον ένας συντελεστής 10 μικρότερος του υποκείμενου πίνακα. Για παράδειγμα, εάν ο υποκείμενος πίνακας αποθηκεύει 1 δισεκατομμύριο γραμμές, τότε ο πίνακας συνάθροισης δεν θα πρέπει να υπερβαίνει τα 100 εκατομμύρια γραμμές. Αυτός ο κανόνας εξασφαλίζει ότι υπάρχει ένα επαρκές κέρδος επιδόσεων σε σχέση με το κόστος δημιουργίας και διατήρησης της συνάθροισης.
Σχέσεις μεταξύ ομάδων προέλευσης δεδομένων
Όταν μια σχέση μοντέλου εκτείνεται σε ομάδες προέλευσης δεδομένων, είναι γνωστή ως σχέση μεταξύ ομάδων προέλευσης δεδομένων. Οι σχέσεις μεταξύ ομάδων προέλευσης δεδομένων είναι επίσης περιορισμένες σχέσεις, επειδή δεν υπάρχει εγγυημένη πλευρά "ένα". Για περισσότερες πληροφορίες, ανατρέξτε στο θέμα Αξιολόγηση σχέσεων.
Σημείωμα
Σε ορισμένες περιπτώσεις, μπορείτε να αποφύγετε τη δημιουργία μιας σχέσης μεταξύ ομάδων προέλευσης δεδομένων. Ανατρέξτε στο θέμα Χρήση αναλυτή συγχρονισμού παρακάτω σε αυτό το άρθρο.
Κατά τον ορισμό σχέσεων μεταξύ ομάδων προέλευσης δεδομένων, λάβετε υπόψη τις ακόλουθες προτάσεις.
- Χρήση στηλών σχέσης χαμηλής πληθικότητας: Για βέλτιστες επιδόσεις, συνιστούμε οι στήλες σχέσης να είναι χαμηλής πληθικότητας, που σημαίνει ότι θα πρέπει να αποθηκεύουν λιγότερες από 50.000 μοναδικές τιμές. Αυτή η πρόταση ισχύει ιδιαίτερα κατά τον συνδυασμό μοντέλων σε μορφή πίνακα και για στήλες που δεν είναι κείμενο.
- Αποφυγή χρήσης στηλών σχέσεων μεγάλου κειμένου: Εάν πρέπει να χρησιμοποιήσετε στήλες κειμένου σε μια σχέση, υπολογίστε το αναμενόμενο μήκος κειμένου για το φίλτρο πολλαπλασιάζοντας την πληθικότητα με το μέσο μήκος της στήλης κειμένου. Το πιθανό μήκος κειμένου δεν πρέπει να υπερβαίνει τους 1.000.000 χαρακτήρες.
- Αυξήστε τις υποδιαιρέσεις των σχέσεων: Εάν είναι δυνατό, δημιουργήστε σχέσεις σε υψηλότερο επίπεδο υποδιαίρεσης. Για παράδειγμα, αντί να συσχετίσετε έναν πίνακα ημερομηνιών στο κλειδί ημερομηνίας, χρησιμοποιήστε το κλειδί μήνα. Αυτή η προσέγγιση σχεδίασης απαιτεί ο σχετικός πίνακας να περιλαμβάνει μια στήλη κλειδιού μήνα και οι αναφορές δεν θα μπορούν να εμφανίσουν καθημερινά στοιχεία.
- Προσπαθήστε να επιτύχετε μια απλή σχεδίαση σχέσης: Δημιουργήστε μια σχέση μεταξύ ομάδων προέλευσης δεδομένων μόνο όταν χρειάζεται και προσπαθήστε να περιορίσετε τον αριθμό πινάκων στη διαδρομή της σχέσης. Αυτή η προσέγγιση σχεδίασης θα σας βοηθήσει να βελτιώσετε τις επιδόσεις και να αποφύγετε ασαφείς διαδρομές σχέσεων.
Προειδοποίηση
Καθώς το Power BI Desktop δεν επικυρώνει διεξοδικά τις σχέσεις μεταξύ ομάδων προέλευσης δεδομένων, είναι δυνατή η δημιουργία ασαφών σχέσεων.
Σενάριο σχέσης μεταξύ ομάδων προέλευσης δεδομένων 1
Εξετάστε ένα σενάριο μιας σύνθετης σχεδίασης σχέσης και πώς θα μπορούσε να παράγει διαφορετικά, αλλά έγκυρα αποτελέσματα.
Σε αυτό το σενάριο, ο πίνακας Region
στην ομάδα προέλευσης A
έχει μια σχέση με τον πίνακα Date
και Sales
πίνακα στην ομάδα προέλευσης B
. Η σχέση μεταξύ του Region
πίνακα και του Date
πίνακα είναι ενεργή, ενώ η σχέση μεταξύ του Region
πίνακα και του πίνακα Sales
είναι ανενεργή. Επίσης, υπάρχει μια ενεργή σχέση μεταξύ του πίνακα Region
και του πίνακα Sales
, οι οποίοι βρίσκονται και οι δύο στην ομάδα προέλευσης B
. Ο πίνακας Sales
περιλαμβάνει μια μέτρηση με την ονομασία TotalSales
και ο πίνακας Region
περιλαμβάνει δύο μετρήσεις με την ονομασία RegionalSales
και RegionalSalesDirect
.
Ακολουθούν οι ορισμοί μετρήσεων.
TotalSales = SUM(Sales[Sales])
RegionalSales = CALCULATE([TotalSales], USERELATIONSHIP(Region[RegionID], Sales[RegionID]))
RegionalSalesDirect = CALCULATE(SUM(Sales[Sales]), USERELATIONSHIP(Region[RegionID], Sales[RegionID]))
Παρατηρήστε πώς η μέτρηση RegionalSales
αναφέρεται στη μέτρηση TotalSales
, ενώ η RegionalSalesDirect
μέτρηση όχι. Αντίθετα, η RegionalSalesDirect
μέτρηση χρησιμοποιεί την παράσταση SUM(Sales[Sales])
, που είναι η παράσταση της μέτρησης TotalSales
.
Η διαφορά στο αποτέλεσμα είναι λεπτή. Όταν το Power BI αξιολογεί τη μέτρηση RegionalSales
, εφαρμόζει το φίλτρο από τον Region
πίνακα τόσο στον πίνακα Sales
όσο και στον πίνακα Date
. Επομένως, το φίλτρο μεταδίδεται επίσης από τον πίνακα Date
στον Sales
πίνακα. Αντίθετα, όταν το Power BI αξιολογεί τη μέτρηση RegionalSalesDirect
, μεταδίδει μόνο το φίλτρο από τον πίνακα Region
στον πίνακα Sales
. Τα αποτελέσματα που επιστρέφονται από RegionalSales
μέτρηση και την RegionalSalesDirect
μέτρηση μπορεί να διαφέρουν, παρόλο που οι παραστάσεις είναι σημασιολογικά ισοδύναμες.
Σημαντικό
Κάθε φορά που χρησιμοποιείτε τη CALCULATE
συνάρτηση με μια παράσταση που είναι μια μέτρηση σε μια ομάδα απομακρυσμένης προέλευσης δεδομένων, δοκιμάστε προσεκτικά τα αποτελέσματα του υπολογισμού.
Σενάριο σχέσης μεταξύ ομάδων προέλευσης δεδομένων 2
Εξετάστε ένα σενάριο όταν μια σχέση μεταξύ ομάδων προέλευσης δεδομένων έχει στήλες σχέσης υψηλής πληθικότητας.
Σε αυτό το σενάριο, ο Date
πίνακας σχετίζεται με τον πίνακα Sales
στις DateKey
στήλες. Ο τύπος δεδομένων των DateKey
στηλών είναι ακέραιος, αποθηκεύοντας ακέραιους αριθμούς που χρησιμοποιούν μορφή. Οι πίνακες ανήκουν σε διαφορετικές ομάδες προέλευσης. Επιπλέον, πρόκειται για μια σχέση υψηλής πληθικότητας, επειδή η παλαιότερη ημερομηνία στον πίνακα Date
είναι η 1η Ιανουαρίου 1900 και η τελευταία ημερομηνία είναι η 31η Δεκεμβρίου 2100, επομένως υπάρχουν συνολικά 73.414 γραμμές στον πίνακα (μία γραμμή για κάθε ημερομηνία στο χρονικό διάστημα 1900-2100).
Υπάρχουν δύο περιπτώσεις ανησυχίας.
Πρώτα, όταν χρησιμοποιείτε τις στήλες του Date
πίνακα ως φίλτρα, η μετάδοση φίλτρου θα φιλτράρει τη στήλη DateKey
του πίνακα Sales
για να αξιολογήσει τις μετρήσεις. Κατά το φιλτράρισμα κατά ένα μεμονωμένο έτος, όπως το 2022, το ερώτημα DAX θα περιλαμβάνει μια παράσταση φίλτρου όπως Sales[DateKey] IN { 20220101, 20220102, …20221231 }
. Το μέγεθος κειμένου του ερωτήματος μπορεί να αυξηθεί ώστε να γίνεται εξαιρετικά μεγάλο όταν ο αριθμός των τιμών στην παράσταση φίλτρου είναι μεγάλος ή όταν οι τιμές φίλτρου είναι μεγάλες συμβολοσειρές. Το Power BI είναι δαπανηρό για τη δημιουργία του μεγάλου ερωτήματος και για την εκτέλεση του ερωτήματος από την προέλευση δεδομένων.
Δεύτερον, όταν χρησιμοποιείτε Date
στήλες πίνακα, όπως Year
, Quarter
ή Month
— ως στήλες ομαδοποίησης, έχει ως αποτέλεσμα φίλτρα που περιλαμβάνουν όλους τους μοναδικούς συνδυασμούς έτους, τριμήνου ή μήνα, και τις DateKey
τιμές στήλης. Το μέγεθος συμβολοσειράς του ερωτήματος, το οποίο περιέχει φίλτρα στις στήλες ομαδοποίησης και τη στήλη σχέσης, μπορεί να γίνει εξαιρετικά μεγάλο. Αυτό ισχύει ιδιαίτερα όταν ο αριθμός των στηλών ομαδοποίησης ή/και η πληθικότητα της στήλης ένωσης (η DateKey
στήλη) είναι μεγάλος.
Για να αντιμετωπίσετε τυχόν προβλήματα επιδόσεων, μπορείτε να κάνετε τα εξής:
- Προσθέστε τον
Date
πίνακα στην προέλευση δεδομένων, με αποτέλεσμα ένα μοντέλο μοναδικής ομάδας προέλευσης δεδομένων (δηλαδή, δεν είναι πλέον σύνθετο μοντέλο). - Αυξήστε την υποδιαίρεση της σχέσης. Για παράδειγμα, μπορείτε να προσθέσετε μια στήλη
MonthKey
και στους δύο πίνακες και να δημιουργήσετε τη σχέση σε αυτές τις στήλες. Ωστόσο, αυξάνοντας τις λεπτομέρειες της σχέσης, χάνετε τη δυνατότητα αναφοράς για την ημερήσια δραστηριότητα πωλήσεων (εκτός εάν χρησιμοποιείτε τη στήληDateKey
από τον πίνακαSales
).
Σενάριο σχέσης μεταξύ ομάδων προέλευσης δεδομένων 3
Εξετάστε ένα σενάριο όταν δεν υπάρχουν αντιστοιχισμένες τιμές μεταξύ πινάκων σε μια σχέση μεταξύ ομάδων προέλευσης δεδομένων.
Σε αυτό το σενάριο, ο πίνακας Date
στην ομάδα προέλευσης B
έχει μια σχέση με τον πίνακα Sales
αυτής της ομάδας προέλευσης δεδομένων, καθώς και με τον πίνακα Target
στην ομάδα προέλευσης A
. Όλες οι σχέσεις προέρχονται από τον πίνακα Date
που συσχετίζει τις Year
στήλες. Ο πίνακας Sales
περιλαμβάνει μια στήλη SalesAmount
που αποθηκεύει τα ποσά των πωλήσεων, ενώ ο πίνακας Target
περιλαμβάνει μια στήλη TargetAmount
που αποθηκεύει τα ποσά-στόχους.
Ο πίνακας Date
αποθηκεύει τα έτη 2021 και 2022. Ο πίνακας Sales
αποθηκεύει ποσά πωλήσεων για τα έτη 2021 (100) και 2022 (200), ενώ ο πίνακας Target
αποθηκεύει τα ποσά-στόχους για το 2021 (100), το 2022 (200), το και το 2023 (300)— ένα μελλοντικό έτος.
Όταν μια απεικόνιση πίνακα Power BI υποβάλλει ερώτημα στο σύνθετο μοντέλο ομαδοποιώντας στη στήλη Year
από τον πίνακα Date
και αθροίζοντας τις SalesAmount
και TargetAmount
στήλες, δεν θα εμφανίζει ένα ποσό-στόχο για το 2023. Αυτό συμβαίνει επειδή η σχέση μεταξύ ομάδων προέλευσης δεδομένων είναι μια περιορισμένη σχέση και, επομένως, χρησιμοποιεί INNER JOIN
σημασιολογία, η οποία εξαλείφει τις γραμμές όπου δεν υπάρχει αντίστοιχη τιμή και στις δύο πλευρές. Ωστόσο, θα παράγει ένα σωστό σύνολο ποσότητας-στόχο (600), επειδή ένα φίλτρο πίνακα Date
δεν εφαρμόζεται στην αξιολόγησή του.
Εάν η σχέση μεταξύ του πίνακα Date
και του πίνακα Target
είναι μια σχέση εντός ομάδας προέλευσης δεδομένων (υποθέτοντας ότι ο Target
πίνακας ανήκε στην ομάδα προέλευσης B
), η απεικόνιση θα περιλαμβάνει ένα (Κενό) έτος για να εμφανίσει το ποσό-στόχο του 2023 (και οποιοδήποτε άλλο ποσό-στόχο μη αντιστοιχισμένων ετών).
Σημαντικό
Για να αποφύγετε την εσφαλμένη αναφορά, βεβαιωθείτε ότι υπάρχουν αντιστοιχισμένες τιμές στις στήλες σχέσεων όταν οι πίνακες διαστάσεων και δεδομένων βρίσκονται σε διαφορετικές ομάδες προέλευσης δεδομένων.
Για περισσότερες πληροφορίες σχετικά με τις περιορισμένες σχέσεις, ανατρέξτε στο θέμα Αξιολόγηση σχέσεων.
Υπολογισμοί
Θα πρέπει να εξετάσετε συγκεκριμένους περιορισμούς κατά την προσθήκη υπολογιζόμενων στηλών και ομάδων υπολογισμού σε ένα σύνθετο μοντέλο.
Υπολογιζόμενες στήλες
Οι υπολογιζόμενες στήλες που προστίθενται σε έναν πίνακα DirectQuery που αντλούν τα δεδομένα τους από μια σχεσιακή βάση δεδομένων, όπως ο Microsoft SQL Server, περιορίζονται σε παραστάσεις που λειτουργούν σε μία μόνο γραμμή κάθε φορά. Αυτές οι παραστάσεις δεν μπορούν να χρησιμοποιήσουν συναρτήσεις επαναλήπτη DAX, όπως SUMX
ή συναρτήσεις τροποποίησης περιβάλλοντος φίλτρου, όπως CALCULATE
.
Σημείωμα
Δεν είναι δυνατή η προσθήκη υπολογιζόμενων στηλών ή υπολογιζόμενων πινάκων που εξαρτώνται από αλυσιδωτά μοντέλα σε μορφή πίνακα.
Μια παράσταση υπολογιζόμενης στήλης σε έναν απομακρυσμένο πίνακα DirectQuery περιορίζεται μόνο στην αξιολόγηση εντός γραμμής. Ωστόσο, μπορείτε να συντάξετε μια τέτοια παράσταση, αλλά αυτό θα έχει ως αποτέλεσμα ένα σφάλμα όταν χρησιμοποιείται σε μια απεικόνιση. Για παράδειγμα, εάν προσθέσετε μια υπολογιζόμενη στήλη σε έναν απομακρυσμένο πίνακα DirectQuery με όνομα DimProduct
χρησιμοποιώντας την παράσταση [Product Sales] / SUM (DimProduct[ProductSales])
, θα μπορείτε να αποθηκεύσετε με επιτυχία την παράσταση στο μοντέλο. Ωστόσο, θα έχει ως αποτέλεσμα ένα σφάλμα όταν χρησιμοποιείται σε μια απεικόνιση καθώς παραβιάζει τον περιορισμό αξιολόγησης εντός γραμμής.
Αντίθετα, οι υπολογιζόμενες στήλες που προστίθενται σε έναν απομακρυσμένο πίνακα DirectQuery που είναι ένα μοντέλο σε μορφή πίνακα, το οποίο είναι είτε ένα σημασιολογικό μοντέλο Power BI είτε ένα μοντέλο υπηρεσιών ανάλυσης, είναι πιο ευέλικτα. Σε αυτή την περίπτωση, επιτρέπονται όλες οι συναρτήσεις DAX καθώς η παράσταση θα αξιολογηθεί εντός του μοντέλου προέλευσης σε μορφή πίνακα.
Πολλές παραστάσεις απαιτούν από το Power BI να υλοποιήσει την υπολογιζόμενη στήλη πριν τη χρησιμοποιήσει ως ομάδα ή φίλτρο ή να την συναθροίσει. Όταν μια υπολογιζόμενη στήλη υλοποιείται σε έναν μεγάλο πίνακα, μπορεί να είναι δαπανηρή όσον αφορά τη CPU και τη μνήμη, ανάλογα με την πληθικότητα των στηλών από τις οποίες εξαρτάται η υπολογιζόμενη στήλη. Σε αυτή την περίπτωση, συνιστούμε να προσθέσετε αυτές τις υπολογιζόμενες στήλες στο μοντέλο προέλευσης.
Σημείωμα
Όταν προσθέτετε υπολογιζόμενες στήλες σε ένα σύνθετο μοντέλο, φροντίστε να δοκιμάσετε όλους τους υπολογισμούς μοντέλου. Οι υπολογισμοί upstream ενδέχεται να μην λειτουργούν σωστά, επειδή δεν θεωρούσαν την επιρροή τους στο περιβάλλον φίλτρου.
Ομάδες υπολογισμού
Εάν υπάρχουν ομάδες υπολογισμού σε μια ομάδα προέλευσης δεδομένων που συνδέεται σε ένα σημασιολογικό μοντέλο Power BI ή σε ένα μοντέλο Υπηρεσιών ανάλυσης, το Power BI μπορεί να επιστρέψει μη αναμενόμενα αποτελέσματα. Για περισσότερες πληροφορίες, ανατρέξτε στο θέμα Ομάδες υπολογισμού, αξιολόγηση ερωτημάτων και μετρήσεων.
Σχεδίαση μοντέλου
Θα πρέπει πάντα να βελτιστοποιείτε ένα μοντέλο Power BI υιοθετώντας μια σχεδίαση αστεροειδούς σχήματος.
Φιλοδώρημα
Για περισσότερες πληροφορίες, ανατρέξτε στο θέμα Κατανόηση του αστεροειδούς σχήματος και της σημασίας του για το Power BI.
Φροντίστε να δημιουργήσετε πίνακες διαστάσεων που είναι ξεχωριστοί από τους πίνακες δεδομένων, έτσι ώστε το Power BI να μπορεί να ερμηνεύσει σωστά τους συνδέσμους και να παράγει αποτελεσματικά προγράμματα ερωτημάτων. Παρόλο που αυτή η καθοδήγηση ισχύει για οποιοδήποτε μοντέλο Power BI, είναι ιδιαίτερα αληθές για τα μοντέλα που αναγνωρίζετε ότι θα γίνουν μια ομάδα προέλευσης ενός σύνθετου μοντέλου. Θα επιτρέψει απλούστερη και αποτελεσματικότερη ενοποίηση άλλων πινάκων σε κατάντη μοντέλα.
Όποτε είναι εφικτό, αποφύγετε να έχετε πίνακες διαστάσεων σε μία ομάδα προέλευσης δεδομένων που σχετίζονται με έναν πίνακα δεδομένων σε μια διαφορετική ομάδα προέλευσης δεδομένων. Αυτό συμβαίνει επειδή είναι προτιμότερο να έχετε σχέσεις εντός ομάδας προέλευσης δεδομένων από τις σχέσεις μεταξύ ομάδων προέλευσης δεδομένων, ειδικά για στήλες σχέσεων υψηλής πληθικότητας. Όπως περιγράφηκε παραπάνω, οι σχέσεις μεταξύ ομάδων προέλευσης δεδομένων βασίζονται στην ύπαρξη αντιστοιχισμένων τιμών στις στήλες σχέσεων, διαφορετικά μπορεί να εμφανίζονται μη αναμενόμενα αποτελέσματα στις απεικονίσεις αναφοράς.
Ασφάλεια σε επίπεδο γραμμών
Εάν το μοντέλο σας περιλαμβάνει συναθροίσεις που ορίζονται από τον χρήστη, υπολογιζόμενες στήλες σε πίνακες εισαγωγής ή υπολογιζόμενους πίνακες, βεβαιωθείτε ότι οποιαδήποτε ασφάλεια σε επίπεδο γραμμών (RLS) έχει ρυθμιστεί σωστά και ελεγχθεί.
Εάν το σύνθετο μοντέλο συνδέεται σε άλλα μοντέλα σε μορφή πίνακα, οι κανόνες RLS εφαρμόζονται μόνο στην ομάδα προέλευσης δεδομένων (τοπικό μοντέλο) όπου ορίζονται. Δεν θα εφαρμοστούν σε άλλες ομάδες προέλευσης δεδομένων (απομακρυσμένα μοντέλα). Επίσης, δεν μπορείτε να ορίσετε κανόνες RLS σε έναν πίνακα από μια άλλη ομάδα προέλευσης δεδομένων ούτε μπορείτε να ορίσετε κανόνες RLS σε έναν τοπικό πίνακα που έχει μια σχέση με μια άλλη ομάδα προέλευσης δεδομένων.
Σχεδίαση αναφοράς
Σε ορισμένες περιπτώσεις, μπορείτε να βελτιώσετε τις επιδόσεις ενός σύνθετου μοντέλου σχεδιάζοντας μια βελτιστοποιημένη διάταξη αναφοράς.
Απεικονίσεις μίας ομάδας προέλευσης δεδομένων
Όποτε είναι εφικτό, δημιουργήστε απεικονίσεις που χρησιμοποιούν πεδία από μια μοναδική ομάδα προέλευσης δεδομένων. Αυτό συμβαίνει επειδή τα ερωτήματα που δημιουργούνται από απεικονίσεις θα έχουν καλύτερη απόδοση όταν το αποτέλεσμα ανακτώνται από μία μόνο ομάδα προέλευσης δεδομένων. Εξετάστε το ενδεχόμενο να δημιουργήσετε δύο απεικονίσεις σε παράθεση που ανακτούν δεδομένα από δύο διαφορετικές ομάδες προέλευσης δεδομένων.
Χρήση συγχρονισμού αναλυτών
Σε ορισμένες περιπτώσεις, μπορείτε να ρυθμίσετε τον συγχρονισμό αναλυτών για να αποφύγετε τη δημιουργία μιας σχέσης μεταξύ ομάδων προέλευσης στο μοντέλο σας. Μπορεί να σας επιτρέψει να συνδυάζετε οπτικά ομάδες προέλευσης που μπορούν να έχουν καλύτερες επιδόσεις.
Εξετάστε ένα σενάριο όταν το μοντέλο σας έχει δύο ομάδες προέλευσης δεδομένων. Κάθε ομάδα προέλευσης δεδομένων έχει έναν πίνακα διαστάσεων προϊόντων που χρησιμοποιείται για το φιλτράρισμα των πωλήσεων μεταπωλητή και Internet.
Σε αυτό το σενάριο, η A
ομάδας προέλευσης περιέχει τον πίνακα Product
που σχετίζεται με τον πίνακα ResellerSales
. Η ομάδα προέλευσης B
περιέχει τον πίνακα Product2
που σχετίζεται με τον πίνακα InternetSales
. Δεν υπάρχουν σχέσεις μεταξύ ομάδων προέλευσης δεδομένων.
Στην αναφορά, προσθέτετε έναν αναλυτή που φιλτράρει τη σελίδα χρησιμοποιώντας τη Color
στήλη του πίνακα Product
. Από προεπιλογή, ο αναλυτής φιλτράρει τον πίνακα ResellerSales
, αλλά όχι τον InternetSales
πίνακα. Στη συνέχεια, προσθέτετε έναν κρυφό αναλυτή χρησιμοποιώντας τη στήλη Color
του πίνακα Product2
. Ορίζοντας ένα πανομοιότυπο όνομα ομάδας (βρίσκονται στις επιλογές συγχρονισμού για προχωρημένους), τα φίλτρα που εφαρμόζονται στον ορατό αναλυτή μεταδίδονται αυτόματα στον κρυφό αναλυτή.
Σημείωμα
Ενώ η χρήση του συγχρονισμού αναλυτών μπορεί να αποφύγει την ανάγκη δημιουργίας μιας σχέσης μεταξύ ομάδων προέλευσης δεδομένων, αυξάνει την πολυπλοκότητα της σχεδίασης μοντέλου. Φροντίστε να εκπαιδεύσετε άλλους χρήστες σχετικά με τον λόγο που σχεδιάσατε το μοντέλο με διπλότυπους πίνακες διαστάσεων. Αποφύγετε τη σύγχυση κρύβοντας πίνακες διαστάσεων που δεν θέλετε να χρησιμοποιούν άλλοι χρήστες. Μπορείτε επίσης να προσθέσετε κείμενο περιγραφής στους κρυφούς πίνακες για να καταγράψετε τον σκοπό τους.
Για περισσότερες πληροφορίες, ανατρέξτε στο θέμα Συγχρονισμός ξεχωριστών αναλυτών.
Άλλες οδηγίες
Ακολουθεί ορισμένες άλλες οδηγίες που θα σας βοηθήσουν να σχεδιάσετε και διατηρήσετε σύνθετα μοντέλα.
- Επιδόσεις και κλιμάκωση: Εάν οι αναφορές σας ήταν προηγουμένως συνδεδεμένες σε ένα μοντέλο σημασιολογίας Power BI ή μοντέλο Υπηρεσιών ανάλυσης, η υπηρεσία Power BI θα μπορούσε να επαναχρησιμοποιήσει cache απεικονίσεων σε όλες τις αναφορές. Μετά τη μετατροπή της δυναμικής σύνδεσης για τη δημιουργία ενός τοπικού μοντέλου DirectQuery, οι αναφορές δεν θα επωφελούνται πλέον από αυτά τα cache. Κατά συνέπεια, ενδέχεται να αντιμετωπίσετε πιο αργές επιδόσεις ή ακόμα και αποτυχίες ανανέωσης. Επίσης, ο φόρτος εργασίας για την υπηρεσία Power BI θα αυξηθεί, κάτι που μπορεί να απαιτεί να αυξήσετε τους εκχωρημένους πόρους σας ή να κατανείμετε τον φόρτο εργασίας σε άλλους εκχωρημένους πόρους. Για περισσότερες πληροφορίες σχετικά με την ανανέωση και την προσωρινή αποθήκευση δεδομένων, ανατρέξτε στο θέμα Ανανέωση δεδομένων στο Power BI.
- Μετονομασία: Δεν συνιστούμε να μετονομάσετε σημασιολογικά μοντέλα που χρησιμοποιούνται από σύνθετα μοντέλα ή να μετονομάσετε τους χώρους εργασίας τους. Αυτό συμβαίνει επειδή τα σύνθετα μοντέλα συνδέονται σε σημασιολογικά μοντέλα Power BI χρησιμοποιώντας τα ονόματα χώρων εργασίας και σημασιολογικών μοντέλων (και όχι τα εσωτερικά μοναδικά αναγνωριστικά τους). Η μετονομασία ενός μοντέλου σημασιολογίας ή χώρου εργασίας μπορεί να διακόψει τις συνδέσεις που χρησιμοποιούνται από το σύνθετο μοντέλο σας.
- διαχείριση: Δεν συνιστούμε να πρόκειται για ένα σύνθετο μοντέλο το μοναδική έκδοση της αλήθειας μοντέλο. Αυτό συμβαίνει επειδή θα εξαρτάται από άλλες προελεύσεις δεδομένων ή μοντέλα, τα οποία, εάν ενημερωθούν, θα μπορούσαν να έχουν ως αποτέλεσμα τη διακοπή του σύνθετου μοντέλου. Αντίθετα, συνιστούμε να δημοσιεύσετε ένα εταιρικό μοντέλο σημασιολογίας ως μοναδική έκδοση της αλήθειας. Θεωρήστε αυτό το μοντέλο ως μια αξιόπιστη βάση. Άλλοι δημιουργοί μοντέλων δεδομένων μπορούν τότε να δημιουργήσουν σύνθετα μοντέλα που επεκτείνουν το μοντέλο υποδομής για τη δημιουργία εξειδικευμένων μοντέλων.
- καταγωγής δεδομένων
: Χρησιμοποιήστε τις γενεαλογία δεδομένων καιδυνατότητες ανάλυσης επιπτώσεων σημασιολογικού μοντέλου πριν από τη δημοσίευση αλλαγών σύνθετου μοντέλου. Αυτές οι δυνατότητες είναι διαθέσιμες στην υπηρεσία Power BI και μπορούν να σας βοηθήσουν να κατανοήσετε πώς σχετίζονται και χρησιμοποιούνται τα σημασιολογικά μοντέλα. Είναι σημαντικό να κατανοήσετε ότι δεν μπορείτε να εκτελέσετε ανάλυση επιπτώσεων σε εξωτερικά σημασιολογικά μοντέλα που εμφανίζονται στην προβολή διαχρονικής καταγραφής, αλλά βρίσκονται στην πραγματικότητα σε έναν άλλο χώρο εργασίας. Για να εκτελέσετε ανάλυση επιπτώσεων σε ένα εξωτερικό μοντέλο σημασιολογίας, πρέπει να μεταβείτε στον χώρο εργασίας προέλευσης. - ενημερώσεις σχήματος: Θα πρέπει να ανανεώνετε το σύνθετο μοντέλο σας στο Power BI Desktop όταν πραγματοποιούνται αλλαγές σχήματος σε προελεύσεις δεδομένων upstream. Στη συνέχεια, θα χρειαστεί να δημοσιεύσετε ξανά το μοντέλο στην υπηρεσία Power BI. Φροντίστε να ελέγξετε διεξοδικά τους υπολογισμούς και τις εξαρτώμενες αναφορές.
Σχετικό περιεχόμενο
Για περισσότερες πληροφορίες σχετικά με αυτό το άρθρο, ανατρέξτε στους παρακάτω πόρους.
- Χρήση σύνθετων μοντέλων στο Power BI Desktop
- Σχέσεις μοντέλων στο Power BI Desktop
- Μοντέλα DirectQuery στο Power BI Desktop
- Χρήση του DirectQuery στο Power BI Desktop
- Λειτουργία αποθήκευσης στο Power BI Desktop
- Συναθροίσεις που ορίζονται από τον χρήστη
- Ερωτήσεις; δοκιμάστε να ρωτήσετε το Κοινότητας Fabric
- Προτάσεις? συνεισφέρετε ιδέες για τη βελτίωση του Fabric