Κατανοήστε το αστεροειδές σχήμα και τη σημασία του για το Power BI

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

Αυτό το άρθρο δεν προορίζεται για να παρέχει μια ολοκληρωμένη συζήτηση σχετικά με τη σχεδίαση αστεροειδούς σχήματος. Για περισσότερες λεπτομέρειες, ανατρέξτε απευθείας σε δημοσιευμένο περιεχόμενο, όπως Το Κιτ εργαλείων αποθήκης δεδομένων: Ο απόλυτος οδηγός για τη μοντελοποίηση διαστάσεων (3η έκδοση, 2013) του Ralph Kimball και άλλων.

Επισκόπηση αστεροειδούς σχήματος

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

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

Οι πίνακες δεδομένων αποθηκεύουν παρατηρήσεις ή παραγγελίες και μπορεί να είναι παραγγελίες πωλήσεων, υπόλοιπα αποθέματος, συναλλαγματικές διαφορές, θερμοκρασίες κ.λπ. Ένας πίνακας δεδομένων περιέχει στήλες κλειδιών διαστάσεων που σχετίζονται με πίνακες διαστάσεων και στήλες αριθμητικών μετρήσεων. Οι στήλες κλειδιών διαστάσεων προσδιορίζουν τη διαστατικότητα ενός πίνακα δεδομένων, ενώ οι τιμές κλειδιών διαστάσεων προσδιορίζουν τις λεπτομέρειες ενός πίνακα δεδομένων. Για παράδειγμα, εξετάστε έναν πίνακα δεδομένων που έχει σχεδιαστεί για την αποθήκευση στόχων πωλήσεων με δύο στήλες κλειδιών διαστάσεων Date και ProductKey. Είναι εύκολο να κατανοήσετε ότι ο πίνακας έχει δύο διαστάσεις. Οι λεπτομέρειες, ωστόσο, δεν μπορούν να προσδιοριστούν χωρίς να λάβετε υπόψη τις τιμές κλειδιών διαστάσεων. Σε αυτό το παράδειγμα, εξετάστε ότι οι τιμές που είναι αποθηκευμένες στη στήλη Ημερομηνία είναι η πρώτη ημέρα κάθε μήνα. Σε αυτή την περίπτωση, οι λεπτομέρειες είναι σε επίπεδο μήνα-προϊόντος.

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

Εικόνα που εμφανίζει μια απεικόνιση ενός αστεροειδούς σχήματος.

Κανονικοποίηση έναντι κατάργησης κανονικοποίησης

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

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

Εικόνα που εμφανίζει έναν πίνακα δεδομένων που περιλαμβάνει μια στήλη Κλειδί προϊόντος.

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

Εικόνα που εμφανίζει έναν πίνακα δεδομένων που περιλαμβάνει έναν αριθμό-κλειδί προϊόντος και άλλες στήλες που σχετίζονται με το προϊόν, συμπεριλαμβανομένων των Category, Color και Size.

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

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

Συνάφεια αστεροειδούς σχήματος με μοντέλα Power BI

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

Λάβετε υπόψη ότι κάθε απεικόνιση αναφοράς Power BI δημιουργεί ένα ερώτημα που αποστέλλεται στο μοντέλο Power BI (το οποίο η Υπηρεσία Power BI ονομάζει μοντέλο σημασιολογίας, γνωστό προηγουμένως ως σύνολο δεδομένων). Αυτά τα ερωτήματα χρησιμοποιούνται για το φιλτράρισμα, την ομαδοποίηση και τη σύνοψη δεδομένων μοντέλου. Ένα καλά σχεδιασμένο μοντέλο τότε είναι αυτό που παρέχει πίνακες για φιλτράρισμα και ομαδοποίηση, καθώς και πίνακες για σύνοψη. Αυτή η σχεδίαση ταιριάζει καλά με τις αρχές αστεροειδούς σχήματος:

  • Οι πίνακες διαστάσεων υποστηρίζουν φιλτράρισμα και ομαδοποίηση
  • Οι πίνακες δεδομένων υποστηρίζουν σύνοψη

Δεν υπάρχει καμία ιδιότητα πίνακα που να ορίζουν οι δημιουργούς μοντέλων για τη ρύθμιση του τύπου πίνακα ως διάστασης ή γεγονότος. Στην πραγματικότητα, καθορίζεται από τις σχέσεις του μοντέλου. Μια σχέση μοντέλου καθορίζει μια διαδρομή μετάδοσης φίλτρου μεταξύ δύο πινάκων και είναι η ιδιότητα Πληθικότητα της σχέσης που προσδιορίζει τον τύπο πίνακα. Μια κοινή πληθικότητα σχέσης είναι ένα-προς-πολλά ή το αντίστροφο πολλά-προς-ένα. Η πλευρά "ένα" είναι πάντα ένας πίνακας διαστάσεων, ενώ η πλευρά "πολλά" είναι πάντα ένας πίνακας στοιχείων. Για περισσότερες πληροφορίες σχετικά με τις σχέσεις, ανατρέξτε στο θέμα Σχέσεις μοντέλων στο Power BI Desktop.

Εικόνα που εμφανίζει μια εννοιολογική απεικόνιση ενός αστεροειδούς σχήματος.

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

Τέλος, είναι σημαντικό να κατανοήσετε ότι η βέλτιστη σχεδίαση μοντέλου είναι μέρος της επιστήμης και του τμήματος τέχνης. Ορισμένες φορές μπορεί να διακόψετε τη χρήση καλών οδηγιών όταν έχει νόημα.

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

Μετρήσεις

Στη σχεδίαση αστεροειδούς σχήματος, μια μέτρηση είναι μια στήλη πίνακα δεδομένων που αποθηκεύει τιμές για σύνοψη.

Σε ένα μοντέλο Power BI, μια μέτρηση έχει έναν διαφορετικό, αλλά παρόμοιο ορισμό. Είναι ένας τύπος που συντάσσεται σε Παραστάσεις ανάλυσης δεδομένων (DAX) και επιτυγχάνει σύνοψη. Οι παραστάσεις μέτρησης αξιοποιούν συχνά συναρτήσεις συνάθροισης DAX όπως SUM, MIN, MAX, AVERAGE κ.λπ. για την παραγωγή ενός αποτελέσματος ανυσματικής τιμής κατά τον χρόνο ερωτήματος (οι τιμές δεν αποθηκεύονται ποτέ στο μοντέλο). Η παράσταση μέτρησης μπορεί να κυμαίνεται από απλές συναθροίσεις στηλών έως πιο εξελιγμένους τύπους που παρακάμπτουν το περιβάλλον φίλτρου ή/και τη μετάδοση σχέσεων. Για περισσότερες πληροφορίες, διαβάστε το άρθρο Βασικά στοιχεία DAX στο Power BI Desktop .

Είναι σημαντικό να κατανοήσετε ότι τα μοντέλα Power BI υποστηρίζουν μια δεύτερη μέθοδο για την επίτευξη σύνοψης. Οποιαδήποτε στήλη, και συνήθως αριθμητικές στήλες, μπορεί να συνοψιστεί από μια απεικόνιση αναφοράς ή ερωτήσεις και απαντήσεις. Αυτές οι στήλες αναφέρονται ως έμμεσες μετρήσεις. Προσφέρουν μια διευκόλυνση για εσάς ως δημιουργός μοντέλων, καθώς σε πολλές παρουσίες δεν χρειάζεται να δημιουργήσετε μετρήσεις. Για παράδειγμα, η στήλη Ποσό πωλήσεων μεταπωλητή του Adventure Works μπορεί να συνοψιστεί με πολλούς τρόπους (sum, count, average, median, min, max κ.λπ.), χωρίς την ανάγκη δημιουργίας μιας μέτρησης για κάθε πιθανό τύπο συνάθροισης.

Εικόνα που εμφανίζει εικονίδια που βρέθηκαν στο τμήμα παραθύρου Πεδία.

Ωστόσο, υπάρχουν τρεις συναρπαστικοί λόγοι για να δημιουργήσετε μετρήσεις, ακόμη και για απλές συνόψεις σε επίπεδο στηλών:

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

Αυτή η προσέγγιση σχεδίασης λειτουργεί καλά για τις αναφορές που έχουν συνταθεί στο Υπηρεσία Power BI και για τις Ερωτήσεις και απαντήσεις. Ωστόσο, οι δυναμικές συνδέσεις του Power BI Desktop επιτρέπουν στους συντάκτες αναφορών να εμφανίζουν κρυφά πεδία στο τμήμα παραθύρου Πεδία, το οποίο μπορεί να οδηγήσει στην παράκαμψη αυτής της προσέγγισης σχεδίασης.

Υποκατάστατα κλειδιά

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

Οι σχέσεις μοντέλου Power BI βασίζονται σε μία μοναδική στήλη σε έναν πίνακα, η οποία μεταδίδει φίλτρα σε μια μοναδική στήλη σε έναν διαφορετικό πίνακα. Όταν ένας πίνακας διαστάσεων στο μοντέλο σας δεν περιλαμβάνει μία μοναδική στήλη, πρέπει να προσθέσετε ένα μοναδικό αναγνωριστικό για να γίνει η πλευρά "ένα" μιας σχέσης. Στο Power BI Desktop, μπορείτε να το επιτύχετε εύκολα αυτό δημιουργώντας μια στήλη ευρετηρίου Power Query.

Εικόνα που εμφανίζει την εντολή Δημιουργία στήλης ευρετηρίου σε πρόγραμμα επεξεργασίας Power Query.

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

Διαστάσεις snowflake

Μια διάσταση snowflake είναι ένα σύνολο κανονικοποιημένων πινάκων για μια μοναδική επιχειρηματική οντότητα. Για παράδειγμα, το Adventure Works ταξινομεί προϊόντα κατά κατηγορία και υποκατηγορία. Τα προϊόντα εκχωρούνται σε υποκατηγορίες και οι υποκατηγορίες εκχωρούνται με τη σειρά τους σε κατηγορίες. Στην αποθήκη σχεσιακών δεδομένων του Adventure Works, η διάσταση προϊόντος κανονικοποιείται και αποθηκεύεται σε τρεις σχετικούς πίνακες: DimProductCategory, DimProductSubcategory και DimProduct.

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

Εικόνα που εμφανίζει ένα παράδειγμα ενός διαγράμματος snowflake που αποτελείται από τρεις σχετικούς πίνακες.

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

Όταν επιλέγετε να μιμηθείτε μια σχεδίαση διάστασης snowflake:

  • Το Power BI φορτώνει περισσότερους πίνακες, το οποίο είναι λιγότερο αποτελεσματικό από την πλευρά της αποθήκευσης και απόδοσης. Αυτοί οι πίνακες πρέπει να περιλαμβάνουν στήλες για την υποστήριξη σχέσεων μοντέλου και αυτό μπορεί να οδηγήσει σε ένα μεγαλύτερο μέγεθος μοντέλου.
  • Θα χρειαστεί να διανυθούν μεγαλύτερες αλυσίδες μετάδοσης φίλτρων σχέσεων, το οποίο πιθανώς θα είναι λιγότερο αποτελεσματικό από τα φίλτρα που εφαρμόζονται σε έναν μοναδικό πίνακα.
  • Το τμήμα παραθύρου Πεδία παρουσιάζει περισσότερους πίνακες μοντέλων στους συντάκτες αναφορών, το οποίο μπορεί να οδηγήσει σε μια λιγότερο διαισθητική εμπειρία, ειδικά όταν οι πίνακες διαστάσεων snowflake περιέχουν μόνο μία ή δύο στήλες.
  • Δεν είναι δυνατή η δημιουργία μιας ιεραρχίας που εκτείνεται στους πίνακες.

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

Εικόνα που εμφανίζει ένα παράδειγμα μιας ιεραρχίας μέσα σε έναν πίνακα διαστάσεων που έχει στήλες όπως Κατηγορία, Υποκατηγορία και Προϊόν.

Διαστάσεις αργής αλλαγής

Μια διάσταση αργής αλλαγής (SCD) είναι μία που διαχειρίζεται κατάλληλα την αλλαγή των μελών διάστασης με την πάροδο του χρόνου. Ισχύει όταν οι τιμές επιχειρηματικής οντότητας αλλάζουν με την πάροδο του χρόνου και με ad hoc τρόπο. Ένα καλό παράδειγμα μιας διάστασης αργής αλλαγής είναι μια διάσταση πελάτη, συγκεκριμένα οι στήλες στοιχείων επικοινωνίας της, όπως η διεύθυνση ηλεκτρονικού ταχυδρομείου και ο αριθμός τηλεφώνου. Αντίθετα, ορισμένες διαστάσεις θεωρείται ότι αλλάζουν γρήγορα όταν αλλάζει συχνά ένα χαρακτηριστικό διάστασης, όπως η τιμή μιας μετοχής. Η συνήθης προσέγγιση σχεδίασης σε αυτές τις παρουσίες είναι η αποθήκευση τιμών χαρακτηριστικών που αλλάζουν γρήγορα σε μια μέτρηση πίνακα δεδομένων.

Η θεωρία σχεδίασης αστεροειδούς σχήματος αναφέρεται σε δύο συνήθεις τύπους SCD: Τύπος 1 και Τύπος 2. Ένας πίνακας διαστάσεων μπορεί να είναι Τύπου 1 ή Τύπου 2 ή να υποστηρίζει και τους δύο τύπους ταυτόχρονα για διαφορετικές στήλες.

SCD τύπου 1

Ένα SCD τύπου 1αντικατοπτρίζει πάντα τις τελευταίες τιμές και όταν ανιχνεύονται αλλαγές στα δεδομένα προέλευσης, τα δεδομένα πίνακα διαστάσεων αντικαθίστανται. Αυτή η προσέγγιση σχεδίασης είναι κοινή για στήλες που αποθηκεύουν συμπληρωματικές τιμές, όπως τη διεύθυνση ηλεκτρονικού ταχυδρομείου ή τον αριθμό τηλεφώνου ενός πελάτη. Όταν αλλάζει μια διεύθυνση ηλεκτρονικού ταχυδρομείου ή ένας αριθμός τηλεφώνου πελάτη, ο πίνακας διαστάσεων ενημερώνει τη γραμμή πελάτη με τις νέες τιμές. Είναι σαν ο πελάτης να είχε πάντα αυτά τα στοιχεία επικοινωνίας.

Μια μη επαυξητική ανανέωση ενός πίνακα διαστάσεων μοντέλου Power BI επιτυγχάνει το αποτέλεσμα ενός SCD τύπου 1. Ανανεώνει τα δεδομένα πίνακα για να εξασφαλίσει ότι φορτώνονται οι πιο πρόσφατες τιμές.

SCD τύπου 2

Ένα SCD τύπου 2υποστηρίζει διαχείριση εκδόσεων μελών διαστάσεων. Εάν το σύστημα προέλευσης δεν αποθηκεύει εκδόσεις, τότε είναι συνήθως η διαδικασία φόρτωσης αποθήκης δεδομένων που εντοπίζει τις αλλαγές και διαχειρίζεται κατάλληλα την αλλαγή σε έναν πίνακα διαστάσεων. Σε αυτή την περίπτωση, ο πίνακας διαστάσεων πρέπει να χρησιμοποιεί ένα υποκατάστατο κλειδί για την παροχή μιας μοναδικής αναφοράς σε μια έκδοση του μέλους διάστασης. Περιλαμβάνει επίσης στήλες που ορίζουν την εγκυρότητα του εύρους ημερομηνιών της έκδοσης (για παράδειγμα, StartDate και EndDate) και πιθανώς μια στήλη σημαίας (για παράδειγμα, IsCurrent) για το εύκολο φιλτράρισμα κατά τρέχοντα μέλη διάστασης.

Για παράδειγμα, το Adventure Works αναθέτει πωλητές σε μια περιοχή πωλήσεων. Όταν ένας πωλητής μετακινεί την περιοχή, πρέπει να δημιουργηθεί μια νέα έκδοση του πωλητή για να εξασφαλιστεί ότι ιστορικά δεδομένα παραμένουν σχετικά με την προηγούμενη περιοχή. Για την υποστήριξη ακριβούς ιστορικής ανάλυσης των πωλήσεων κατά πωλητή, ο πίνακας διαστάσεων πρέπει να αποθηκεύει εκδόσεις πωλητών και τις σχετικές περιοχές τους. Ο πίνακας θα πρέπει επίσης να περιλαμβάνει τιμές ημερομηνίας έναρξης και λήξης για τον ορισμό της εγκυρότητας χρόνου. Οι τρέχουσες εκδόσεις μπορεί να ορίζουν μια κενή ημερομηνία λήξης (ή 31/12/9999), το οποίο υποδεικνύει ότι η γραμμή είναι η τρέχουσα έκδοση. Ο πίνακας πρέπει επίσης να ορίζει ένα υποκατάστατο κλειδί καθώς το επιχειρηματικό κλειδί (σε αυτή την περίπτωση, το αναγνωριστικό υπαλλήλου) δεν θα είναι μοναδικό.

Είναι σημαντικό να κατανοήσετε ότι όταν τα δεδομένα προέλευσης δεν αποθηκεύουν εκδόσεις, πρέπει να χρησιμοποιήσετε ένα ενδιάμεσο σύστημα (όπως μια αποθήκη δεδομένων) για τον εντοπισμό και την αποθήκευση αλλαγών. Η διαδικασία φόρτωσης πίνακα πρέπει να διατηρεί υπάρχοντα δεδομένα και να εντοπίζει αλλαγές. Όταν ανιχνεύεται μια αλλαγή, η διαδικασία φόρτωσης πίνακα πρέπει να λήγει στην τρέχουσα έκδοση. Καταγράφει αυτές τις αλλαγές ενημερώνοντας την τιμή EndDate και εισάγοντας μια νέα έκδοση με την τιμή StartDate που ξεκινά από την προηγούμενη τιμή EndDate . Επίσης, σχετικά δεδομένα πρέπει να χρησιμοποιούν μια αναζήτηση βάσει χρόνου για την ανάκτηση της τιμής κλειδιού διαστάσεων που σχετίζεται με την ημερομηνία δεδομένων. Ένα μοντέλο Power BI που χρησιμοποιεί το Power Query δεν μπορεί να παράγει αυτό το αποτέλεσμα. Μπορεί, ωστόσο, να φορτώσει δεδομένα από έναν προφορτωμένο πίνακα διαστάσεων SCD τύπου 2.

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

Για να επιτευχθεί αυτή η απαίτηση, ο πίνακας διαστάσεων μοντέλου Power BI πρέπει να περιλαμβάνει μια στήλη για φιλτράρισμα του πωλητή και μια διαφορετική στήλη για φιλτράρισμα μιας συγκεκριμένης έκδοσης του πωλητή. Είναι σημαντικό η στήλη έκδοσης να παρέχει μια ξεκάθαρη περιγραφή, όπως "Michael Blythe (15/12/2008-26/06/2019)" ή "Michael Blythe (τρέχον)". Είναι επίσης σημαντικό να εκπαιδεύσετε τους συντάκτες αναφορών και τους καταναλωτές σχετικά με τα βασικά στοιχεία SCD τύπου 2 και τον τρόπο επίτευξης κατάλληλων σχεδίων αναφοράς εφαρμόζοντας σωστά φίλτρα.

Είναι επίσης καλή πρακτική σχεδίασης να συμπεριλάβετε μια ιεραρχία που επιτρέπει στις απεικονίσεις να κάνουν λεπτομερή έρευνα στο επίπεδο έκδοσης.

Εικόνα που εμφανίζει το τμήμα παραθύρου Πεδία με στήλες για Salesperson και Salesperson Version.

Εικόνα που εμφανίζει την ιεραρχία που προκύπτει, συμπεριλαμβανομένων των επιπέδων για Salesperson και Salesperson Version.

Διαστάσεις αναπαραγωγής ρόλων

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

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

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

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

Ο μόνος τρόπος να χρησιμοποιήσετε μια ανενεργή σχέση είναι να ορίσετε μια παράσταση DAX που χρησιμοποιεί τη συνάρτηση USERELATIONSHIP. Στο παράδειγμά μας, ο δημιουργός μοντέλου πρέπει να δημιουργήσει μετρήσεις για να ενεργοποιηθεί η ανάλυση των πωλήσεων μεταπωλητή κατά ημερομηνία αποστολής και ημερομηνία παράδοσης. Αυτή η εργασία μπορεί να είναι κουραστική, ιδιαίτερα όταν ο πίνακας μεταπωλητή ορίζει πολλές μετρήσεις. Δημιουργεί επίσης ακαταστασία στο τμήμα παραθύρου Πεδία , με υπερβολική χρήση μετρήσεων. Υπάρχουν και άλλοι περιορισμοί:

  • Όταν οι συντάκτες αναφορών βασίζονται σε συνοπτικές στήλες, αντί να ορίζουν μετρήσεις, δεν μπορούν να επιτύχουν σύνοψη για τις ανενεργές σχέσεις χωρίς τη σύνταξη μιας μέτρησης σε επίπεδο αναφοράς. Οι μετρήσεις σε επίπεδο αναφοράς μπορούν να οριστούν μόνο κατά τη σύνταξη αναφορών στο Power BI Desktop.
  • Με μόνο μία διαδρομή ενεργούς σχέσης μεταξύ πωλήσεων μεταπωλητή και ημερομηνίας, δεν είναι δυνατό να φιλτράρετε ταυτόχρονα τις πωλήσεις μεταπωλητή κατά διαφορετικούς τύπους ημερομηνιών. Για παράδειγμα, δεν μπορείτε να παράγετε μια απεικόνιση που σχεδιάζει πωλήσεις ημερομηνίας παραγγελίας κατά απεσταλμένες πωλήσεις.

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

Εικόνα που εμφανίζει ένα παράδειγμα διαστάσεων αναπαραγωγής ρόλων και σχέσεων. Υπάρχουν τρεις διαφορετικοί πίνακες διαστάσεων ημερομηνιών που σχετίζονται με τον πίνακα δεδομένων.

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

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

  • Βεβαιωθείτε ότι τα ονόματα στηλών είναι αυτονόητα. Ενώ είναι δυνατό να έχετε μια στήλη Year σε όλους τους πίνακες ημερομηνιών (τα ονόματα στηλών είναι μοναδικά στον πίνακά τους), δεν είναι αυτονόητα από προεπιλεγμένους τίτλους απεικόνισης. Εξετάστε να μετονομάσετε στήλες σε κάθε πίνακα ρόλων διάστασης, έτσι ώστε ο πίνακας Ημερομηνία αποστολής να έχει μια στήλη έτους με την ονομασία Έτος αποστολής κ.λπ.
  • Όταν είναι σχετικό, εξασφαλίστε ότι οι περιγραφές πινάκων παρέχουν σχόλια στους συντάκτες αναφορών (μέσω συμβουλών εργαλείων στο τμήμα παραθύρου Πεδία ) σχετικά με τον τρόπο ρύθμισης της μετάδοσης φίλτρου. Αυτή η σαφήνεια είναι σημαντική όταν το μοντέλο περιέχει έναν πίνακα με γενικό όνομα, όπως Ημερομηνία, ο οποίος χρησιμοποιείται για το φιλτράρισμα πολλών πινάκων στοιχείων. Στην περίπτωση που αυτός ο πίνακας έχει, για παράδειγμα, μια ενεργή σχέση με τη στήλη ημερομηνίας παραγγελίας πωλήσεων μεταπωλητή, εξετάστε το ενδεχόμενο να παρέχετε μια περιγραφή πίνακα όπως "Φιλτράρισμα πωλήσεων μεταπωλητή κατά ημερομηνία παραγγελίας".

Για περισσότερες πληροφορίες, ανατρέξτε στο θέμα Οδηγίες για τις ενεργές και ανενεργές σχέσεις.

Ανεπιθύμητες διαστάσεις

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

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

Ένας πίνακας ανεπιθύμητης διάστασης είναι συνήθως το Καρτεσιανό γινόμενο όλων των μελών χαρακτηριστικών διάστασης, με μια στήλη υποκατάστατου κλειδιού. Το υποκατάστατο κλειδί παρέχει μια μοναδική αναφορά σε κάθε γραμμή στον πίνακα. Μπορείτε να δημιουργήσετε τη διάσταση σε μια αποθήκη δεδομένων ή χρησιμοποιώντας το Power Query για να δημιουργήσετε ένα ερώτημα που εκτελεί πλήρεις συνδέσμους εξωτερικού ερωτήματος και, στη συνέχεια, προσθέτει ένα υποκατάστατο κλειδί (στήλη ευρετηρίου).

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

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

Εκφυλισμένες διαστάσεις

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

Στο μοντέλο Power BI, μπορεί να είναι κατάλληλο να προσθέσετε τη στήλη αριθμού παραγγελιών πωλήσεων στον πίνακα στοιχείων για να επιτρέψετε το φιλτράρισμα ή την ομαδοποίηση κατά αριθμό παραγγελίας πώλησης. Αποτελεί μια εξαίρεση για τον κανόνα που παρουσιάστηκε στο πρώτο μέρος σύμφωνα με τον οποίο δεν θα πρέπει να αναμιγνύετε τύπους πινάκων (γενικά, οι πίνακες μοντέλων θα πρέπει είτε να είναι διαστάσεων, είτε δεδομένων).

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

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

Πίνακες δεδομένων χωρίς δεδομένα

Ένας πίνακας δεδομένων χωρίς στοιχεία δεν περιλαμβάνει στήλες μέτρησης. Περιέχει μόνο κλειδιά διαστάσεων.

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

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

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

Εικόνα που εμφανίζει έναν πίνακα δεδομένων χωρίς δεδομένα που γεφύρωνε διαστάσεις Salesperson και Region. Ο πίνακας δεδομένων χωρίς στοιχεία αποτελείται από δύο στήλες, οι οποίες είναι τα κλειδιά διαστάσεων.

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

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