Κατανοήστε το αστεροειδές σχήμα και τη σημασία του για το Power BIUnderstand star schema and the importance for Power BI

Αυτό το άρθρο αφορά δημιουργούς μοντέλων του Power BI Desktop.This article targets Power BI Desktop data modelers. Περιγράφει τη σχεδίαση αστεροειδούς σχήματος και τη συνάφειά του για την ανάπτυξη μοντέλων δεδομένων Power BI που έχουν βελτιστοποιηθεί για απόδοση και χρηστικότητα.It describes star schema design and its relevance to developing Power BI data models optimized for performance and usability.

Αυτό το άρθρο δεν αποσκοπεί στο να παρέχει μια ολοκληρωμένη συζήτηση πάνω στη σχεδίαση αστεροειδούς σχήματος.This article isn't intended to provide a complete discussion on star schema design. Για περισσότερες λεπτομέρειες, ανατρέξτε απευθείας σε δημοσιευμένο περιεχόμενο, όπως Το κιτ εργαλείων αποθήκης δεδομένων: Ο Οριστικός οδηγός για την τρισδιάστατη μοντελοποίηση (3η έκδοση, 2013) του Ralph Kimball et al.For more details, refer directly to published content, like The Data Warehouse Toolkit: The Definitive Guide to Dimensional Modeling (3rd edition, 2013) by Ralph Kimball et al.

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

Το αστεροειδές σχήμα είναι μια ώριμη προσέγγιση μοντελοποίησης που υιοθετήθηκε ευρέως από αποθήκες σχεσιακών δεδομένων.Star schema is a mature modeling approach widely adopted by relational data warehouses. Απαιτεί από τους δημιουργούς μοντέλων να ταξινομούν τους πίνακες μοντέλων τους είτε ως διαστάσεων, είτε ως δεδομένων.It requires modelers to classify their model tables as either dimension or fact.

Οι πίνακες διαστάσεων περιγράφουν επιχειρηματικές οντότητες, δηλ. τα πράγματα που μοντελοποιείτε.Dimension tables describe business entities—the things you model. Οι οντότητες μπορεί να περιλαμβάνουν προϊόντα, άτομα, τοποθεσίες και έννοιες, καθώς και τον ίδιο τον χρόνο.Entities can include products, people, places, and concepts including time itself. Ο πιο συνεπής πίνακας που θα βρείτε σε ένα αστεροειδές σχήμα είναι ένας πίνακας διαστάσεων ημερομηνίας.The most consistent table you'll find in a star schema is a date dimension table. Ένας πίνακας διαστάσεων περιέχει μια στήλη κλειδιού (ή στήλες) που λειτουργούν ως ένα μοναδικό αναγνωριστικό και περιγραφικές στήλες.A dimension table contains a key column (or columns) that acts as a unique identifier, and descriptive columns.

Οι πίνακες δεδομένων αποθηκεύουν παρατηρήσεις ή παραγγελίες και μπορεί να είναι παραγγελίες πωλήσεων, υπόλοιπα αποθέματος, συναλλαγματικές διαφορές, θερμοκρασίες κ.λπ. Ένας πίνακας δεδομένων περιέχει στήλες κλειδιών διαστάσεων που σχετίζονται με τους πίνακες διαστάσεων και στήλες αριθμητικών μετρήσεων.Fact tables store observations or events, and can be sales orders, stock balances, exchange rates, temperatures, etc. A fact table contains dimension key columns that relate to dimension tables, and numeric measure columns. Οι στήλες κλειδιών διαστάσεων προσδιορίζουν τη διαστατικότητα ενός πίνακα δεδομένων, ενώ οι τιμές κλειδιών διαστάσεων προσδιορίζουν τις λεπτομέρειες ενός πίνακα δεδομένων.The dimension key columns determine the dimensionality of a fact table, while the dimension key values determine the granularity of a fact table. Για παράδειγμα, εξετάστε έναν πίνακα δεδομένων που έχει σχεδιαστεί για την αποθήκευση στόχων πωλήσεων με δύο στήλες κλειδιών διαστάσεων Date και ProductKey.For example, consider a fact table designed to store sale targets that has two dimension key columns Date and ProductKey. Είναι εύκολο να κατανοήσετε ότι ο πίνακας έχει δύο διαστάσεις.It's easy to understand that the table has two dimensions. Οι λεπτομέρειες, ωστόσο, δεν μπορούν να προσδιοριστούν χωρίς να λάβετε υπόψη τις τιμές κλειδιών διαστάσεων.The granularity, however, can't be determined without considering the dimension key values. Σε αυτό το παράδειγμα, εξετάστε ότι οι αποθηκευμένες τιμές στη στήλη Ημερομηνία είναι η πρώτη ημέρα κάθε μήνα.In this example, consider that the values stored in the Date column are the first day of each month. Σε αυτήν την περίπτωση, οι λεπτομέρειες είναι σε επίπεδο μήνα-προϊόντος.In this case, the granularity is at month-product level.

Γενικά, οι πίνακες διαστάσεων περιέχουν έναν σχετικά μικρό αριθμό γραμμών.Generally, dimension tables contain a relatively small number of rows. Οι πίνακες δεδομένων, από την άλλη, μπορεί να περιέχουν έναν πολύ μεγάλο αριθμό γραμμών και να συνεχίσουν να αυξάνονται με την πάροδο του χρόνου.Fact tables, on the other hand, can contain a very large number of rows and continue to grow over time.

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

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

Η σχεδίαση αστεροειδούς σχήματος και πολλές σχετικές έννοιες που παρουσιάζονται σε αυτό το άρθρο είναι ιδιαίτερα σχετικές με την ανάπτυξη μοντέλων Power BI που βελτιστοποιούνται για απόδοση και χρηστικότητα.Star schema design and many related concepts introduced in this article are highly relevant to developing Power BI models that are optimized for performance and usability.

Λάβετε υπόψη ότι κάθε απεικόνιση αναφοράς Power BI δημιουργεί ένα ερώτημα που θα σταλεί στο μοντέλο Power BI (το οποίο η υπηρεσία Power BI ονομάζει σύνολο δεδομένων).Consider that each Power BI report visual generates a query that is sent to the Power BI model (which the Power BI service calls a dataset). Αυτά τα ερωτήματα χρησιμοποιούνται για το φιλτράρισμα, την ομαδοποίηση και τη σύνοψη δεδομένων μοντέλων.These queries are used to filter, group, and summarize model data. Ένα καλοσχεδιασμένο μοντέλο τότε είναι εκείνο που παρέχει πίνακες για φιλτράρισμα και ομαδοποίηση, και πίνακες για σύνοψη.A well-designed model, then, is one that provides tables for filtering and grouping, and tables for summarizing. Αυτή η σχεδίαση συμφωνεί με τις αρχές αστεροειδούς σχήματος:This design fits well with star schema principles:

  • Οι πίνακας διαστάσεων υποστηρίζουν φιλτράρισμα και ομαδοποίησηDimension tables support filtering and grouping
  • Οι πίνακες δεδομένων υποστηρίζουν σύνοψηFact tables support summarization

Δεν υπάρχει καμία ιδιότητα πίνακα που να ορίζουν οι δημιουργοί μοντέλων για να διαμορφώνουν τον τύπο πίνακα ως πίνακα διαστάσεων ή στοιχείων.There's no table property that modelers set to configure the table type as dimension or fact. Στην πραγματικότητα, ο τύπος καθορίζεται από τις σχέσεις του μοντέλου.It's in fact determined by the model relationships. Μια σχέση μοντέλου ορίζει μια διαδρομή μεταβίβασης μεταξύ δύο πινάκων και αποτελεί την ιδιότητα Πληθικότητα της σχέσης που προσδιορίζει τον τύπο πίνακα.A model relationship establishes a filter propagation path between two tables, and it's the Cardinality property of the relationship that determines the table type. Μια κοινή πληθικότητα σχέσης είναι ένα-προς-πολλά ή το αντίστροφο πολλά-προς-ένα.A common relationship cardinality is one-to-many or its inverse many-to-one. Η πλευρά "ένα" είναι πάντα ένας πίνακας τύπου διαστάσεων, ενώ η πλευρά "πολλά" είναι πάντα ένας πίνακας δεδομένων.The "one" side is always a dimension-type table while the "many" side is always a fact-type table. Για περισσότερες πληροφορίες σχετικά με τις σχέσεις, ανατρέξτε στο θέμα Σχέσεις μοντέλων στο Power BI Desktop.For more information about relationships, see Model relationships in Power BI Desktop.

Εννοιολογικό αστεροειδές σχήμα

Μια καλά δομημένη σχεδίαση μοντέλου θα πρέπει να περιλαμβάνει πίνακες που είτε είναι πίνακες τύπου διαστάσεων, είτε πίνακες τύπου δεδομένων.A well-structured model design should include tables that are either dimension-type tables or fact-type tables. Αποφύγετε την ανάμιξη των δύο τύπων σε έναν πίνακα.Avoid mixing the two types together for a single table. Συνιστούμε επίσης να προσπαθήσετε να παράσχετε τον σωστό αριθμό πινάκων με τις κατάλληλες σχέσεις.We also recommend that you should strive to deliver the right number of tables with the right relationships in place. Είναι επίσης σημαντικό οι πίνακες δεδομένων να φορτώνουν πάντα δεδομένα με συνέπεια κόκκου.It's also important that fact-type tables always load data at a consistent grain.

Τέλος, είναι σημαντικό να κατανοήσετε ότι η βέλτιστη σχεδίαση μοντέλου είναι εν μέρει επιστήμη και εν μέρει τέχνη.Lastly, it's important to understand that optimal model design is part science and part art. Ορισμένες φορές μπορεί να χρειαστεί να απορρίψετε οδηγίες όταν αυτό έχει νόημα.Sometimes you can break with good guidance when it makes sense to do so.

Υπάρχουν πολλές πρόσθετες έννοιες σχετικές με τη σχεδίαση αστεροειδούς σχήματος που μπορούν να εφαρμοστούν σε ένα μοντέλο Power BI.There are many additional concepts related to star schema design that can be applied to a Power BI model. Αυτές οι έννοιες περιλαμβάνουν:These concepts include:

ΜετρήσειςMeasures

Στη σχεδίαση αστεροειδούς σχήματος, μια μέτρηση είναι μια στήλη πίνακα δεδομένων που αποθηκεύει τιμές για σύνοψη.In star schema design, a measure is a fact table column that stores values to be summarized.

Σε ένα μοντέλο Power BI, μια μέτρηση έχει έναν διαφορετικό, αλλά όμοιο ορισμό.In a Power BI model, a measure has a different—but similar—definition. Είναι ένας τύπος που συντάσσεται στις Παραστάσεις ανάλυσης δεδομένων (DAX) και που επιτυγχάνει δημιουργία σύνοψης.It's a formula written in Data Analysis Expressions (DAX) that achieves summarization. Οι παραστάσεις μέτρησης αξιοποιούν συχνά τις συναρτήσεις συνάθροισης DAX όπως SUM, MIN, MAX, AVERAGE κ.λπ. για την παραγωγή ενός αποτελέσματος ανυσματικής τιμής (οι τιμές δεν αποθηκεύονται ποτέ στο μοντέλο).Measure expressions often leverage DAX aggregation functions like SUM, MIN, MAX, AVERAGE, etc. to produce a scalar value result at query time (values are never stored in the model). Η παράσταση μέτρησης μπορεί να κυμαίνεται από απλές συναθροίσεις στηλών, έως πιο πολύπλοκους τύπους που παρακάμπτουν το περιβάλλον φίλτρου ή/και τη συνάθροιση σχέσεων.Measure expression can range from simple column aggregations to more sophisticated formulas that override filter context and/or relationship propagation. Για περισσότερες πληροφορίες, διαβάστε το άρθρο Βασικά στοιχεία DAX στο Power BI Desktop.For more information, read the DAX Basics in Power BI Desktop article.

Είναι σημαντικό να κατανοήσετε ότι τα μοντέλα Power BI υποστηρίζουν μια δεύτερη μέθοδο για την επίτευξη σύνοψης.It's important to understand that Power BI models support a second method for achieving summarization. Οποιαδήποτε στήλη, και συνήθως οι αριθμητικές στήλες, μπορούν να συνοψιστούν από μια απεικόνιση αναφοράς ή Ερωτήσεις & απαντήσεις.Any column—and typically numeric columns—can be summarized by a report visual or Q&A. Αυτές οι στήλες αναφέρονται ως ρητές μετρήσεις.These columns are referred to as implicit measures. Προσφέρουν μια διευκόλυνση για εσάς ως δημιουργός μοντέλων, καθώς σε πολλές παρουσίες δεν χρειάζεται να δημιουργήσετε μετρήσεις.They offer a convenience for you as a model developer, as in many instances you do not need to create measures. Για παράδειγμα, η στήλη Ποσότητα πωλήσεων των πωλήσεων μεταπωλητή του Adventure Works μπορεί να συνοψιστεί με πολλούς τρόπους (sum, count, average, median, min, max, κ.λπ.), χωρίς την ανάγκη δημιουργίας μιας μέτρησης για κάθε δυνατό τύπο συνάθροισης.For example, the Adventure Works reseller sales Sales Amount column could be summarized in numerous ways (sum, count, average, median, min, max, etc.), without the need to create a measure for each possible aggregation type.

Παράδειγμα εικονιδίου στη λίστα πεδίων

Ωστόσο, υπάρχουν τρεις σημαντικοί λόγοι για να δημιουργήσετε μετρήσεις, ακόμη και για απλές συνόψεις σε επίπεδο στηλών:However, there are three compelling reasons for you to create measures, even for simple column-level summarizations:

  • Όταν γνωρίζετε ότι οι συντάκτες αναφορών σας θα υποβάλουν ερωτήματα στο μοντέλο χρησιμοποιώντας Πολυδιάστατες παραστάσεις (MDX), το μοντέλο πρέπει να περιλαμβάνει ρητές μετρήσεις.When you know your report authors will query the model by using Multidimensional Expressions (MDX), the model must include explicit measures. Οι ρητές μετρήσεις ορίζονται χρησιμοποιώντας το DAX.Explicit measures are defined by using DAX. Αυτή η προσέγγιση σχεδίασης είναι άκρως σχετική όταν υποβάλλονται ερωτήματα σε ένα σύνολο δεδομένων Power BI χρησιμοποιώντας το MDX, καθώς δεν μπορεί να δημιουργήσει σύνοψη των τιμών στηλών.This design approach is highly relevant when a Power BI dataset is queried by using MDX, because MDX can't achieve summarization of column values. Συγκεκριμένα, θα χρησιμοποιείται το MDX κατά την εκτέλεση ανάλυσης στο Excel, επειδή οι συγκεντρωτικοί πίνακες εκδίδουν ερωτήματα MDX.Notably, MDX will be used when performing Analyze in Excel, because PivotTables issue MDX queries.
  • Όταν γνωρίζετε ότι οι συντάκτες της αναφοράς σας θα δημιουργούν σελιδοποιημένες αναφορές Power BI με το εργαλείο σχεδίασης ερωτημάτων MDX, το μοντέλο πρέπει να περιλαμβάνει ρητές μετρήσεις.When you know your report authors will create Power BI paginated reports using the MDX query designer, the model must include explicit measures. Μόνο το εργαλείο σχεδίασης ερωτημάτων MDX υποστηρίζει συναθροίσεις διακομιστή.Only the MDX query designer supports server aggregates. Επομένως, εάν οι συντάκτες αναφοράς χρειάζεται να αξιολογήσουν μετρήσεις με το Power BI (αντί με τον μηχανισμό σελιδοποιημένης αναφοράς), πρέπει να χρησιμοποιούν το εργαλείο σχεδίασης ερωτημάτων MDX.So, if report authors need to have measures evaluated by Power BI (instead of by the paginated report engine), they must use the MDX query designer.
  • Όταν χρειαστεί να εξασφαλίσετε ότι οι συντάκτες αναφοράς σας μπορούν να συνοψίσουν στήλες μόνο με συγκεκριμένους τρόπους.When you need to ensure that your report authors can only summarize columns in specific ways. Για παράδειγμα, η στήλη Τιμή μονάδας των πωλήσεων μεταπωλητή (που αντιπροσωπεύει μια τιμή ανά μονάδα) μπορεί να συνοψιστεί, όμως μόνο χρησιμοποιώντας συγκεκριμένες λειτουργίες συνάθροισης.For example, the reseller sales Unit Price column (which represents a per unit rate) can be summarized, but only by using specific aggregation functions. Δεν θα πρέπει να αθροίζεται ποτέ, όμως είναι κατάλληλο να συνοψιστεί χρησιμοποιώντας άλλες λειτουργίες συνάθροισης όπως ελάχιστο, μέγιστο, μέσος όρος κ.λπ. Σε αυτήν την περίπτωση, ο δημιουργός μοντέλου μπορεί να κρύψει τη στήλη Τιμή μονάδας και να δημιουργήσει μετρήσεις για όλες τις κατάλληλες συναρτήσεις συνάθροισης.It should never be summed, but it's appropriate to summarize by using other aggregation functions like min, max, average, etc. In this instance, the modeler can hide the Unit Price column, and create measures for all appropriate aggregation functions.

Αυτή η προσέγγιση σχεδίασης λειτουργεί καλά για τις αναφορές που έχουν συνταχθεί στην υπηρεσία Power BI και για ερωτήσεις και απαντήσεις.This design approach works well for reports authored in the Power BI service and for Q&A. Ωστόσο, οι δυναμικές συνδέσεις του Power BI Desktop επιτρέπουν στους συντάκτες αναφορών να εμφανίζουν κρυφά πεδία στο τμήμα παραθύρου Πεδία, το οποίο μπορεί να οδηγήσει στην παράκαμψη αυτής της προσέγγισης σχεδίασης.However, Power BI Desktop live connections allow report authors to show hidden fields in the Fields pane, which can result in circumventing this design approach.

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

Ένα υποκατάστατο κλειδί είναι ένα μοναδικό αναγνωριστικό που προσθέτετε σε έναν πίνακα για την υποστήριξη της μοντελοποίησης αστεροειδούς σχήματος.A surrogate key is a unique identifier that you add to a table to support star schema modeling. Εξ ορισμού, δεν ορίζεται ή αποθηκεύεται στα δεδομένα προέλευσης.By definition, it's not defined or stored in the source data. Συνήθως, τα υποκατάστατα κλειδιά προστίθενται σε πίνακες διαστάσεων αποθήκης σχεσιακών δεδομένων για την παροχή ενός μοναδικού αναγνωριστικού για κάθε γραμμή πίνακα διαστάσεων.Commonly, surrogate keys are added to relational data warehouse dimension tables to provide a unique identifier for each dimension table row.

Οι σχέσεις μοντέλων Power BI βασίζονται σε μια μοναδική στήλη σε έναν πίνακα, που μεταδίδει φίλτρα σε μια μοναδική στήλη σε έναν διαφορετικό πίνακα.Power BI model relationships are based on a single unique column in one table, which propagates filters to a single column in a different table. Όταν ένας πίνακας διαστάσεων στο μοντέλο σας δεν περιλαμβάνει μια μοναδική στήλη, πρέπει να προσθέσετε ένα μοναδικό αναγνωριστικό για να γίνει η πλευρά "ένα" μιας σχέσης.When a dimension-type table in your model doesn't include a single unique column, you must add a unique identifier to become the "one" side of a relationship. Στο Power BI Desktop, μπορείτε να το πετύχετε εύκολα αυτό δημιουργώντας μια στήλη ευρετηρίου Power Query.In Power BI Desktop, you can easily achieve this requirement by creating a Power Query index column.

Δημιουργία στήλης ευρετηρίου στη γραμμή εργαλείων του Power Query

Πρέπει να συγχωνεύσετε αυτό το ερώτημα με το ερώτημα πλευράς "πολλά", ώστε να μπορείτε να προσθέσετε σε αυτό τη στήλη ευρετηρίου επίσης.You must merge this query with the "many"-side query so that you can add the index column to it also. Όταν φορτώνετε αυτά τα ερωτήματα στο μοντέλο, μπορείτε τότε να δημιουργήσετε μια σχέση ένα-προς-πολλά μεταξύ των πινάκων μοντέλου.When you load these queries to the model, you can then create a one-to-many relationship between the model tables.

Διαστάσεις snowflakeSnowflake dimensions

Μια διάσταση snowflake είναι ένα σύνολο κανονικοποιημένων πινάκων για μια μοναδική επιχειρηματική οντότητα.A snowflake dimension is a set of normalized tables for a single business entity. Για παράδειγμα, το Adventure Works ταξινομεί προϊόντα κατά κατηγορία και υποκατηγορία.For example, Adventure Works classifies products by category and subcategory. Οι κατηγορίες εκχωρούνται σε υποκατηγορίες και προϊόντα εκχωρούνται με τη σειρά τους σε υποκατηγορίες.Categories are assigned to subcategories, and products are in turn assigned to subcategories. Στην αποθήκη σχεσιακών δεδομένων του Adventure Works, η διάσταση προϊόντος κανονικοποιείται και αποθηκεύεται σε τρεις σχετικούς πίνακες: DimProductCategory, DimProductSubcategory και DimProduct.In the Adventure Works relational data warehouse, the product dimension is normalized and stored in three related tables: DimProductCategory, DimProductSubcategory, and DimProduct.

Εάν χρησιμοποιήσετε τη φαντασία σας, μπορείτε να φανταστείτε τους κανονικοποιημένους πίνακες τοποθετημένους προς τα έξω από τον πίνακα δεδομένων, σχηματίζοντας μια σχεδίαση snowflake.If you use your imagination, you can picture the normalized tables positioned outwards from the fact table, forming a snowflake design.

Παράδειγμα διαγράμματος snowflake

Στο Power BI Desktop μπορείτε να επιλέξετε να μιμηθείτε μια σχεδίαση διάστασης snowflake (ίσως γιατί το κάνουν τα δεδομένα προέλευσης) ή να ενσωματώσετε (αποκανονικοποιήσετε) τους πίνακες προέλευσης σε έναν μοναδικό πίνακα μοντέλου.In Power BI Desktop, you can choose to mimic a snowflake dimension design (perhaps because your source data does) or integrate (denormalize) the source tables into a single model table. Γενικά, τα οφέλη ενός μοναδικού πίνακα μοντέλου υπερτερούν των οφελών πολλών πινάκων μοντέλων.Generally, the benefits of a single model table outweigh the benefits of multiple model tables. Η βέλτιστη απόφαση μπορεί να εξαρτάται από τους όγκους δεδομένων και τις απαιτήσεις χρηστικότητας για το μοντέλο.The most optimal decision can depend on the volumes of data and the usability requirements for the model.

Όταν επιλέγετε να μιμηθείτε μια σχεδίαση διάστασης snowflake:When you choose to mimic a snowflake dimension design:

  • Το Power BI φορτώνει περισσότερους πίνακες, το οποίο είναι λιγότερο αποτελεσματικό από την πλευρά της αποθήκευσης και απόδοσης.Power BI loads more tables, which is less efficient from storage and performance perspectives. Αυτοί οι πίνακες πρέπει να περιλαμβάνουν στήλες για την υποστήριξη σχέσεων μοντέλου και μπορεί να οδηγήσει σε ένα μεγαλύτερου μεγέθους μοντέλο.These tables must include columns to support model relationships, and it can result in a larger model size.
  • Θα απαιτείται η διέλευση μεγαλύτερων αλυσίδων μετάδοσης φίλτρων σχέσεων, το οποίο πιθανώς θα είναι λιγότερο αποτελεσματικό σε σύγκριση με φίλτρα που εφαρμόζονται σε έναν μοναδικό πίνακα.Longer relationship filter propagation chains will need to be traversed, which will likely be less efficient than filters applied to a single table.
  • Το τμήμα παραθύρου Πεδία παρουσιάζει περισσότερους πίνακες μοντέλων στους συντάκτες αναφορών, το οποίο μπορεί να οδηγήσει σε μια λιγότερο διαισθητική εμπειρία, ιδιαίτερα όταν οι πίνακες διαστάσεων snowflake περιέχουν μόλις μία ή δύο στήλες.The Fields pane presents more model tables to report authors, which can result in a less intuitive experience, especially when snowflake dimension tables contain just one or two columns.
  • Δεν είναι δυνατή η δημιουργία ιεραρχίας που εκτείνεται στους πίνακες.It's not possible to create a hierarchy that spans the tables.

Όταν επιλέξετε ενσωμάτωση σε έναν μοναδικό πίνακα μοντέλων, μπορείτε επίσης να ορίσετε μια ιεραρχία που περιλαμβάνει το υψηλότερο και χαμηλότερο επίπεδο λεπτομερειών της διάστασης.When you choose to integrate into a single model table, you can also define a hierarchy that encompasses the highest and lowest grain of the dimension. Πιθανώς, η αποθήκευση πλεοναζόντων αποκανονικοποιημένων δεδομένων μπορεί να οδηγήσει σε αυξημένο μέγεθος αποθήκευσης μοντέλων, ιδιαίτερα για πολύ μεγάλους πίνακες διαστάσεων.Possibly, the storage of redundant denormalized data can result in increased model storage size, particularly for very large dimension tables.

Ιεραρχία εντός διάστασης

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

Μια διάσταση αργής αλλαγής (SCD) είναι μία που διαχειρίζεται κατάλληλα την αλλαγή μελών διάστασης με την πάροδο του χρόνου.A slowly changing dimension (SCD) is one that appropriately manages change of dimension members over time. Ισχύει όταν οι τιμές επιχειρηματικής οντότητας αλλάζουν με την πάροδο του χρόνου και με έναν ad hoc τρόπο.It applies when business entity values change over time, and in an ad hoc manner. Ένα καλό παράδειγμα μιας διάστασης αργής αλλαγής είναι μια διάσταση πελάτη, συγκεκριμένα οι στήλες στοιχείων επικοινωνίας της όπως η διεύθυνση ηλεκτρονικού ταχυδρομείου και ο αριθμός τηλεφώνου.A good example of a slowly changing dimension is a customer dimension, specifically its contact detail columns like email address and phone number. Αντιθέτως, ορισμένες διαστάσεις θεωρείται ότι αλλάζουν γρήγορα όταν αλλάζει ένα χαρακτηριστικό διαστάσεων συχνά, όπως η τιμή αποθέματος.In contrast, some dimensions are considered to be rapidly changing when a dimension attribute changes often, like a stock's market price. Η συνήθης προσέγγιση σχεδίασης σε αυτές τις παρουσίες είναι η αποθήκευση τιμών χαρακτηριστικών που αλλάζουν γρήγορα σε μια μέτρηση πίνακα δεδομένων.The common design approach in these instances is to store rapidly changing attribute values in a fact table measure.

Η θεωρία σχεδίασης αστεροειδούς σχήματος αναφέρεται σε δύο συνήθεις τύπους SCD: Τύπος 1 και Τύπος 2.Star schema design theory refers to two common SCD types: Type 1 and Type 2. Ένας πίνακας διαστάσεων μπορεί να είναι Τύπου 1 ή Τύπου 2, ή να υποστηρίζει και τους δύο τύπους ταυτόχρονα για διαφορετικές στήλες.A dimension-type table could be Type 1 or Type 2, or support both types simultaneously for different columns.

SCD τύπου 1Type 1 SCD

Ένα SCD τύπου 1 αντικατοπτρίζει πάντα τις τελευταίες τιμές και όταν ανιχνεύονται αλλαγές στα δεδομένα προέλευσης, τα δεδομένα στον πίνακα διαστάσεων αντικαθίστανται.A Type 1 SCD always reflects the latest values, and when changes in source data are detected, the dimension table data is overwritten. Αυτή η προσέγγιση σχεδίασης είναι συνήθης για στήλες που αποθηκεύουν συμπληρωματικές τιμές, όπως τη διεύθυνση ηλεκτρονικού ταχυδρομείου ή τον αριθμό τηλεφώνου ενός πελάτη.This design approach is common for columns that store supplementary values, like the email address or phone number of a customer. Όταν αλλάζει η διεύθυνση ηλεκτρονικού ταχυδρομείου ή ο αριθμός τηλεφώνου ενός πελάτη, ο πίνακας διαστάσεων ενημερώνει τη γραμμή πελάτη με τις νέες τιμές.When a customer email address or phone number changes, the dimension table updates the customer row with the new values. Είναι λες και ο πελάτης είχε πάντα αυτά τα στοιχεία επικοινωνίας.It's as if the customer always had this contact information.

Μια μη επαυξητική ανανέωση του πίνακα διαστάσεων μοντέλων Power BI επιτυγχάνει το αποτέλεσμα ενός SCD τύπου 1.A non-incremental refresh of a Power BI model dimension-type table achieves the result of a Type 1 SCD. Ανανεώνει τα δεδομένα πίνακα για να εξασφαλιστεί ότι φορτώνονται οι τελευταίες τιμές.It refreshes the table data to ensure the latest values are loaded.

SCD τύπου 2Type 2 SCD

Ένα SCD τύπου 2 υποστηρίζει διαχείριση εκδόσεων μελών διαστάσεων.A Type 2 SCD supports versioning of dimension members. Εάν το σύστημα προέλευσης δεν αποθηκεύει εκδόσεις, τότε είναι συνήθως η διαδικασία φόρτωσης αποθήκης δεδομένων που ανιχνεύει τις αλλαγές και διαχειρίζεται κατάλληλα την αλλαγή σε έναν πίνακα διαστάσεων.If the source system doesn't store versions, then it's usually the data warehouse load process that detects changes, and appropriately manages the change in a dimension table. Σε αυτήν την περίπτωση, ο πίνακας διαστάσεων πρέπει να χρησιμοποιεί ένα υποκατάστατο κλειδί για την παροχή μιας μοναδικής αναφοράς σε μια έκδοση του μέλους διάστασης.In this case, the dimension table must use a surrogate key to provide a unique reference to a version of the dimension member. Περιλαμβάνει, επίσης, στήλες που ορίζουν την εγκυρότητα του εύρους ημερομηνιών (π.χ. StartDate και EndDate) και πιθανώς μια στήλη σημαίας (π.χ. IsCurrent) για το εύκολο φιλτράρισμα κατά τρέχοντα μέλη διάστασης.It also includes columns that define the date range validity of the version (for example, StartDate and EndDate) and possibly a flag column (for example, IsCurrent) to easily filter by current dimension members.

Για παράδειγμα, το Adventure Works αναθέτει πωλητές σε μια περιοχή πωλήσεων.For example, Adventure Works assigns salespeople to a sales region. Όταν ένας πωλητής αλλάζει περιοχή, μια νέα έκδοση του πωλητή πρέπει να δημιουργηθεί για να εξασφαλίσετε ότι ιστορικά δεδομένα παραμένουν σχετικά με την προηγούμενη περιοχή.When a salesperson relocates region, a new version of the salesperson must be created to ensure that historical facts remain associated with the former region. Για την υποστήριξη ακριβούς ιστορικής ανάλυσης των πωλήσεων κατά πωλητή, ο πίνακας διαστάσεων πρέπει να αποθηκεύει εκδόσεις πωλητών και τις σχετικές περιοχές τους.To support accurate historic analysis of sales by salesperson, the dimension table must store versions of salespeople and their associated region(s). Ο πίνακας θα πρέπει να περιλαμβάνει επίσης τιμές ημερομηνίας έναρξης και λήξης για τον καθορισμό της εγκυρότητας χρόνου.The table should also include start and end date values to define the time validity. Τρέχουσες εκδόσεις μπορεί να ορίζουν μια κενή ημερομηνία λήξης (ή 31/12/9999), το οποίο υποδεικνύει ότι η γραμμή είναι η τρέχουσα έκδοση.Current versions may define an empty end date (or 12/31/9999), which indicates that the row is the current version. Ο πίνακας πρέπει να ορίζει επίσης ένα υποκατάστατο κλειδί καθώς το επιχειρηματικό κλειδί (στην περίπτωση αυτή, το αναγνωριστικό υπαλλήλου) δεν θα είναι μοναδικό.The table must also define a surrogate key because the business key (in this instance, employee ID) won't be unique.

Είναι σημαντικό να κατανοήσετε ότι όποτε τα δεδομένα προέλευσης δεν αποθηκεύουν εκδόσεις, πρέπει να χρησιμοποιήσετε ένα ενδιάμεσο σύστημα (όπως μια αποθήκη δεδομένων) για την ανίχνευση και αποθήκευση αλλαγών.It's important to understand that when the source data doesn't store versions, you must use an intermediate system (like a data warehouse) to detect and store changes. Η διαδικασία φόρτωσης πίνακα πρέπει να διατηρεί υπάρχοντα δεδομένα και να εντοπίζει αλλαγές.The table load process must preserve existing data and detect changes. Όταν ανιχνευτεί μια αλλαγή, η διαδικασία φόρτωσης πίνακα πρέπει να λήγει στην τρέχουσα έκδοση.When a change is detected, the table load process must expire the current version. Καταγράφει αυτές τις αλλαγές ενημερώνοντας την τιμή EndDate και καταχωρώντας μια νέα έκδοση με την τιμή StartDate που ξεκινά από την προηγούμενη τιμή EndDate.It records these changes by updating the EndDate value and inserting a new version with the StartDate value commencing from the previous EndDate value. Επίσης, σχετικά δεδομένα πρέπει να χρησιμοποιούν μια αναζήτηση βάσει χρόνου για την ανάκτηση της τιμής κλειδιών διαστάσεων που σχετίζεται με την ημερομηνία δεδομένων.Also, related facts must use a time-based lookup to retrieve the dimension key value relevant to the fact date. Ένα μοντέλο Power BI που χρησιμοποιεί το Power Query δεν μπορεί να αποφέρει αυτό το αποτέλεσμα.A Power BI model using Power Query can't produce this result. Μπορεί, ωστόσο, να φορτώσει δεδομένα από έναν προφορτωμένο πίνακα διαστάσεων SCD τύπου 2.It can, however, load data from a pre-loaded SCD Type 2 dimension table.

Το μοντέλο Power BI θα πρέπει να υποστηρίζει υποβολή ερωτημάτων σε ιστορικά δεδομένα για ένα μέλος, ανεξάρτητα αλλαγών και για μια έκδοση του μέλους, το οποίο αντιπροσωπεύει μια συγκεκριμένη κατάσταση του μέλους εγκαίρως.The Power BI model should support querying historical data for a member, regardless of change, and for a version of the member, which represents a particular state of the member in time. Στο περιβάλλον του Adventure Works, αυτή η σχεδίαση σάς επιτρέπει να υποβάλετε ερωτήματα στον πωλητή ανεξάρτητα από την εκχωρημένη περιοχή πωλήσεων ή για μια συγκεκριμένη έκδοση του πωλητή.In the context of Adventure Works, this design enables you to query the salesperson regardless of assigned sales region, or for a particular version of the salesperson.

Για να ικανοποιήσετε αυτήν την απαίτηση, ο πίνακας διαστάσεων μοντέλου Power BI πρέπει να περιλαμβάνει μια στήλη για φιλτράρισμα του πωλητή και μια διαφορετική στήλη για φιλτράρισμα μιας συγκεκριμένης έκδοσης του πωλητή.To achieve this requirement, the Power BI model dimension-type table must include a column for filtering the salesperson, and a different column for filtering a specific version of the salesperson. Είναι σημαντικό η στήλη έκδοσης να παρέχει μια ξεκάθαρη περιγραφή, όπως "Michael Blythe (15/12/2008-26/06/2019)" ή "Michael Blythe (τρέχον)".It's important that the version column provides a non-ambiguous description, like "Michael Blythe (12/15/2008-06/26/2019)" or "Michael Blythe (current)". Είναι επίσης σημαντικό να εκπαιδεύσετε τους συντάκτες αναφορών και τους καταναλωτές πάνω στα βασικά στοιχεία SCD τύπου 2 και στον τρόπο επίτευξης κατάλληλων σχεδίων αναφοράς εφαρμόζοντας ορθά φίλτρα.It's also important to educate report authors and consumers about the basics of SCD Type 2, and how to achieve appropriate report designs by applying correct filters.

Αποτελεί επίσης καλή πρακτική σχεδίασης να συμπεριλαμβάνετε μια ιεραρχία που επιτρέπει στις απεικονίσεις να διερευνούν σε επίπεδο έκδοσης.It's also a good design practice to include a hierarchy that allows visuals to drill down to the version level.

Παράδειγμα ιεραρχίας στη λίστα πεδίων

Έξοδος παραδείγματος ιεραρχίας

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

Μια διάσταση αναπαραγωγής ρόλων είναι μια διάσταση που μπορεί να φιλτράρει σχετικά δεδομένα διαφορετικά.A role-playing dimension is a dimension that can filter related facts differently. Για παράδειγμα, στο Adventure Works, ο πίνακας διαστάσεων ημερομηνίας διαθέτει τρεις σχέσεις με τα δεδομένα πωλήσεων μεταπωλητή.For example, at Adventure Works, the date dimension table has three relationships to the reseller sales facts. Ο ίδιος πίνακας διαστάσεων μπορεί να χρησιμοποιηθεί για το φιλτράρισμα των δεδομένων κατά ημερομηνία παραγγελίας, ημερομηνία αποστολής ή ημερομηνία παράδοσης.The same dimension table can be used to filter the facts by order date, ship date, or delivery date.

Σε μια αποθήκη δεδομένων, η αποδεκτή προσέγγιση σχεδίασης είναι να ορίζεται ένας πίνακας διαστάσεων μοναδικής ημερομηνίας.In a data warehouse, the accepted design approach is to define a single date dimension table. Τη στιγμή της υποβολής ερωτήματος, ο "ρόλος" της διάστασης ημερομηνίας ορίζεται από τη στήλη δεδομένων που χρησιμοποιείτε για την ένωση των πινάκων.At query time, the "role" of the date dimension is established by which fact column you use to join the tables. Για παράδειγμα, όταν αναλύετε πωλήσεις κατά ημερομηνία παραγγελίας, η ένωση πίνακα σχετίζεται με τη στήλη ημερομηνίας παραγγελίας πωλήσεων μεταπωλητή.For example, when you analyze sales by order date, the table join relates to the reseller sales order date column.

Σε ένα μοντέλο Power BI η απομίμηση αυτής της σχεδίασης είναι δυνατή δημιουργώντας πολλαπλές σχέσεις μεταξύ των δύο πινάκων.In a Power BI model, this design can be imitated by creating multiple relationships between two tables. Στο παράδειγμα Adventure Works, οι πίνακες πωλήσεων μεταπωλητή και ημερομηνίας θα έχουν τρεις σχέσεις.In the Adventure Works example, the date and reseller sales tables would have three relationships. Ενώ αυτή η σχεδίαση είναι δυνατή, είναι σημαντικό να κατανοήσετε ότι μπορεί να υπάρχει μόνο μία ενεργή σχέση μεταξύ δύο πινάκων μοντέλων Power BI.While this design is possible, it's important to understand that there can only be one active relationship between two Power BI model tables. Όλες οι υπόλοιπες σχέσεις πρέπει να οριστούν σε ανενεργές.All remaining relationships must be set to inactive. Η παρουσία μιας μοναδικής ενεργούς σχέσης σημαίνει ότι υπάρχει μια προεπιλεγμένη συνάθροιση φίλτρου από την ημερομηνία έως τις πωλήσεις μεταπωλητή.Having a single active relationship means there is a default filter propagation from date to reseller sales. Σε αυτήν την περίπτωση, η ενεργής σχέση ορίζεται στο πιο σύνηθες φίλτρο που χρησιμοποιείται από τις αναφορές, το οποίο στο Adventure Works είναι η σχέση ημερομηνίας παραγγελίας.In this instance, the active relationship is set to the most common filter that is used by reports, which at Adventure Works is the order date relationship.

Παράδειγμα διάστασης αναπαραγωγής ρόλων και σχέσεων

Ο μοναδικός τρόπος να χρησιμοποιήσετε μια ανενεργή σχέση είναι ορίζοντας μια παράσταση DAX που χρησιμοποιεί τη συνάρτηση USERELATIONSHIP.The only way to use an inactive relationship is to define a DAX expression that uses the USERELATIONSHIP function. Στο παράδειγμά μας, ο δημιουργός μοντέλου πρέπει να δημιουργήσει μετρήσεις για να ενεργοποιηθεί η ανάλυση των πωλήσεων μεταπωλητή κατά ημερομηνία αποστολής και ημερομηνία παράδοσης.In our example, the model developer must create measures to enable analysis of reseller sales by ship date and delivery date. Αυτή η εργασία μπορεί να είναι κουραστική, ιδιαίτερα όταν ο πίνακας μεταπωλητή ορίζει πολλές μετρήσεις.This work can be tedious, especially when the reseller table defines many measures. Δημιουργεί, επίσης, αταξία στο παράθυρο Πεδία, με άφθονες μετρήσεις.It also creates Fields pane clutter, with an overabundance of measures. Υπάρχουν επίσης και άλλοι περιορισμοί:There are other limitations, too:

  • Όταν οι συντάκτες αναφορών βασίζονται σε συνοπτικές στήλες, αντί να ορίζουν μετρήσεις, δεν μπορούν να επιτύχουν σύνοψη για τις ανενεργές σχέσεις χωρίς τη σύνταξη μιας μέτρησης σε επίπεδο αναφοράς.When report authors rely on summarizing columns, rather than defining measures, they can't achieve summarization for the inactive relationships without writing a report-level measure. Οι μετρήσεις σε επίπεδο αναφοράς μπορούν να ορίζονται μόνο κατά τη σύνταξη αναφορών στο Power BI Desktop.Report-level measures can only be defined when authoring reports in Power BI Desktop.
  • Με μόλις μία διαδρομή ενεργούς σχέσης μεταξύ πωλήσεων μεταπωλητή και ημερομηνίας, δεν είναι δυνατό να φιλτράρετε ταυτόχρονα πωλήσεις μεταπωλητή κατά διαφορετικούς τύπους ημερομηνιών.With only one active relationship path between date and reseller sales, it's not possible to simultaneously filter reseller sales by different types of dates. Για παράδειγμα, δεν μπορείτε να παράγετε μια απεικόνιση που σχεδιάζει πωλήσεις ημερομηνίας παραγγελίας κατά απεσταλμένες πωλήσεις.For example, you can't produce a visual that plots order date sales by shipped sales.

Για να ξεπεραστούν αυτοί οι περιορισμοί, μια συνήθης τεχνική μοντελοποίησης του Power BI είναι η δημιουργία πίνακα διαστάσεων για κάθε παρουσία αναπαραγωγής ρόλων.To overcome these limitations, a common Power BI modeling technique is to create a dimension-type table for each role-playing instance. Συνήθως δημιουργείτε τους πρόσθετους πίνακες διαστάσεων ως υπολογιζόμενους πίνακες, χρησιμοποιώντας το DAX.You typically create the additional dimension tables as calculated tables, using DAX. Χρησιμοποιώντας υπολογιζόμενους πίνακες, το μοντέλο μπορεί να περιέχει έναν πίνακα Ημερομηνία, έναν πίνακα Ημερομηνία αποστολής και έναν πίνακα Ημερομηνία παράδοσης, καθένας με μια μοναδική και ενεργή σχέση με τις αντίστοιχες στήλες του πίνακα πωλήσεων μεταπωλητή.Using calculated tables, the model can contain a Date table, a Ship Date table and a Delivery Date table, each with a single and active relationship to their respective reseller sales table columns.

Παράδειγμα διαστάσεων αναπαραγωγής ρόλων και σχέσεων

Αυτή η προσέγγιση σχεδίασης δεν απαιτεί να ορίζετε πολλαπλές μετρήσεις για διαφορετικούς ρόλους ημερομηνίας και επιτρέπει ταυτόχρονο φιλτράρισμα κατά διαφορετικούς ρόλους ημερομηνίας.This design approach doesn't require you to define multiple measures for different date roles, and it allows simultaneous filtering by different date roles. Ένα μικρό τίμημα ωστόσο με αυτήν την προσέγγιση σχεδίασης είναι ότι θα υπάρχει αναπαραγωγή του πίνακα διαστάσεων ημερομηνίας, το οποίο θα οδηγήσει σε ένα αυξημένο μέγεθος της αποθήκευσης μοντέλου.A minor price to pay, however, with this design approach is that there will be duplication of the date dimension table resulting in an increased model storage size. Καθώς οι πίνακες διαστάσεων συνήθως αποθηκεύουν λιγότερες γραμμές σχετικά με πίνακες δεδομένων, αποτελεί συνήθως ένα πρόβλημα.As dimension-type tables typically store fewer rows relative to fact-type tables, it is rarely a concern.

Τηρήστε τις ορθές πρακτικές σχεδίασης όταν δημιουργείτε πίνακες διαστάσεων μοντέλων για κάθε ρόλο:Observe the following good design practices when you create model dimension-type tables for each role:

  • Βεβαιωθείτε ότι τα ονόματα στηλών είναι αυτοπεριγραφικά.Ensure that the column names are self-describing. Ενώ είναι δυνατό να έχετε μια στήλη Έτος σε όλους τους πίνακες δεδομένων (τα ονόματα στηλών είναι μοναδικά στον πίνακά τους), δεν είναι αυτοπεριγραφικό από προεπιλεγμένους τίτλους απεικόνισης.While it's possible to have a Year column in all date tables (column names are unique within their table), it's not self-describing by default visual titles. Εξετάστε να μετονομάσετε τις στήλες σε κάθε πίνακα ρόλων διάστασης, ώστε ο πίνακας Ημερομηνία αποστολής να έχει μια στήλη έτους με την ονομασία Έτος αποστολής κ.λπ.Consider renaming columns in each dimension role table, so that the Ship Date table has a year column named Ship Year, etc.
  • Όταν είναι σχετικό, εξασφαλίστε ότι οι περιγραφές πίνακα παρέχουν σχόλια στους συντάκτες αναφορών (μέσω συμβουλής εργαλείου στο παράθυρο Πεδία) σχετικά με τον τρόπο ρύθμισης της μετάδοσης φίλτρου.When relevant, ensure that table descriptions provide feedback to report authors (through Fields pane tooltips) about how filter propagation is configured. Αυτή η σαφήνεια είναι σημαντική όταν το μοντέλο περιέχει έναν πίνακα με γενικό όνομα, όπως Ημερομηνία, που χρησιμοποιείται για το φιλτράρισμα πολλών πινάκων δεδομένων.This clarity is important when the model contains a generically named table, like Date, which is used to filter many fact-type tables. Στην περίπτωση που αυτός ο πίνακας, για παράδειγμα, διαθέτει μια ενεργή σχέση με τη στήλη ημερομηνίας παραγγελίας πωλήσεων μεταπωλητή, εξετάστε να παράσχετε μια περιγραφή πίνακα όπως "Φιλτράρισμα πωλήσεων μεταπωλητή κατά ημερομηνία παραγγελίας."In the case that this table has, for example, an active relationship to the reseller sales order date column, consider providing a table description like "Filters reseller sales by order date".

Για περισσότερες πληροφορίες, ανατρέξτε στο θέμα Οδηγίες για τις ενεργές και ανενεργές σχέσεις.For more information, see Active vs inactive relationship guidance.

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

Μια ανεπιθύμητη διάσταση είναι χρήσιμη όταν υπάρχουν πολλές διαστάσεις, ιδιαίτερα όταν αποτελούνται από λίγα χαρακτηριστικά (ίσως ένα) και όταν αυτά τα χαρακτηριστικά έχουν λίγες τιμές.A junk dimension is useful when there are many dimensions, especially consisting of few attributes (perhaps one), and when these attributes have few values. Κατάλληλοι υποψήφιοι περιλαμβάνουν τις στήλες κατάστασης παραγγελιών ή στήλες δημογραφικών πελατών (φύλο, ηλικιακή ομάδα κ.λπ.).Good candidates include order status columns, or customer demographic columns (gender, age group, etc.).

Ο στόχος σχεδίασης μιας ανεπιθύμητης διάστασης είναι η ενοποίηση πολλών "μικρών" διαστάσεων σε μία μοναδική, ώστε να μειωθεί το μέγεθος αποθήκευσης μοντέλου, καθώς και η αταξία στο παράθυρο Πεδία εμφανίζοντας λιγότερους πίνακες μοντέλων.The design objective of a junk dimension is to consolidate many "small" dimensions into a single dimension to both reduce the model storage size and also reduce Fields pane clutter by surfacing fewer model tables.

Ένας πίνακας ανεπιθύμητης διάστασης είναι συνήθως το Καρτεσιανό παράγωγο όλων των μελών χαρακτηριστικών διαστάσεων, με μια στήλη υποκατάστατου κλειδιού.A junk dimension table is typically the Cartesian product of all dimension attribute members, with a surrogate key column. Το υποκατάστατο κλειδί παρέχει μια μοναδική αναφορά σε κάθε γραμμή στον πίνακα.The surrogate key provides a unique reference to each row in the table. Μπορείτε να δημιουργήσετε τη διάσταση σε μια αποθήκη δεδομένων ή χρησιμοποιώντας το Power Query για να δημιουργήσετε ένα ερώτημα που εκτελεί πλήρη συνένωση εξωτερικού ερωτήματος, προσθέτει τότε ένα υποκατάστατο κλειδί (στήλη ευρετηρίου).You can build the dimension in a data warehouse, or by using Power Query to create a query that performs full outer query joins, then adds a surrogate key (index column).

Παράδειγμα ανεπιθύμητης διάστασης

Φορτώνετε αυτό το ερώτημα στο μοντέλο ως πίνακα διαστάσεων.You load this query to the model as a dimension-type table. Χρειάζεται επίσης να συγχωνεύσετε αυτό το ερώτημα με το ερώτημα δεδομένων, ώστε η στήλη ευρετηρίου που φορτώνεται στο μοντέλο να υποστηρίζει τη δημιουργία μιας σχέσης μοντέλου "ένα-προς-πολλά".You also need to merge this query with the fact query, so the index column is loaded to the model to support the creation of a "one-to-many" model relationship.

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

Μια εκφυλισμένη διάσταση αναφέρεται σε ένα χαρακτηριστικό του πίνακα δεδομένων που απαιτείται για φιλτράρισμα.A degenerate dimension refers to an attribute of the fact table that is required for filtering. Στο Adventure Works, ο αριθμός παραγγελίας πωλήσεων μεταπωλητή είναι ένα καλό παράδειγμα.At Adventure Works, the reseller sales order number is a good example. Σε αυτήν την περίπτωση, δεν αποτελεί καλή λύση για τη σχεδίαση μοντέλων η δημιουργία ενός ανεξάρτητου πίνακα που αποτελείται μόνο από αυτήν τη στήλη, καθώς θα αυξήσει το μέγεθος αποθήκευσης του μοντέλου και θα οδηγήσει σε αταξία του παραθύρου Πεδία.In this case, it doesn't make good model design sense to create an independent table consisting of just this one column, because it would increase the model storage size and result in Fields pane clutter.

Στο μοντέλο Power BI, μπορεί να είναι κατάλληλο να προσθέσετε τη στήλη αριθμού παραγγελιών πωλήσεων στον πίνακα δεδομένων, ώστε να επιτραπεί φιλτράρισμα ή ομαδοποίηση κατά αριθμό παραγγελιών πωλήσεων.In the Power BI model, it can be appropriate to add the sales order number column to the fact-type table to allow filtering or grouping by sales order number. Αποτελεί μια εξαίρεση για τον κανόνα που παρουσιάστηκε στο παρελθόν σύμφωνα με τον οποίο δεν θα πρέπει να αναμιγνύετε τύπους πινάκων (γενικά, οι πίνακες μοντέλων θα πρέπει είτε να είναι διαστάσεων είτε δεδομένων).It is an exception to the formerly introduced rule that you should not mix table types (generally, model tables should be either dimension-type or fact-type).

Παράδειγμα εκφυλισμένης διάστασης

Ωστόσο, εάν ο πίνακας πωλήσεων μεταπωλητών της Adventure Works έχει στήλες αριθμού παραγγελίας και γραμμής παραγγελίας, οι οποίες απαιτούνται για το φιλτράρισμα, ένας πίνακας μειωμένων διαστάσεων θα ήταν μια καλή σχεδίαση.However, if the Adventure Works resellers sales table has order number and order line number columns, and they're required for filtering, a degenerate dimension table would be a good design. Για περισσότερες πληροφορίες, ανατρέξτε στο θέμα Οδηγίες για σχέσεις ένα προς ένα (εκφυλισμένες διαστάσεις).For more information, see One-to-one relationship guidance (Degenerate dimensions).

Πίνακες δεδομένων χωρίς στοιχείαFactless fact tables

Ένας πίνακας δεδομένων χωρίς στοιχεία δεν περιλαμβάνει στήλες μέτρησης.A factless fact table doesn't include any measure columns. Περιέχει μόνο κλειδιά διαστάσεων.It contains only dimension keys.

Ένας πίνακας δεδομένων χωρίς στοιχεία μπορεί να αποθηκεύσει παρατηρήσεις που ορίζονται από κλειδιά διαστάσεων.A factless fact table could store observations defined by dimension keys. Για παράδειγμα, μια συγκεκριμένη ημερομηνία και ώρα, ένας συγκεκριμένος πελάτης συνδεδεμένος στην τοποθεσία σας στο Web.For example, at a particular date and time, a particular customer logged into your web site. Μπορείτε να ορίσετε μια μέτρηση για να αριθμήσετε τις γραμμές του πίνακα δεδομένων χωρίς στοιχεία για εκτέλεση ανάλυσης του χρόνου σύνδεσης και πλήθους των συνδεδεμένων πελατών.You could define a measure to count the rows of the factless fact table to perform analysis of when and how many customers have logged in.

Μια πιο ελκυστική χρήση ενός πίνακα δεδομένων χωρίς στοιχεία είναι η αποθήκευση σχέσεων μεταξύ διαστάσεων και είναι η προσέγγιση σχεδίασης μοντέλων του Power BI που προτείνουμε για τον ορισμό σχέσεων διαστάσεων πολλά-προς-πολλά.A more compelling use of a factless fact table is to store relationships between dimensions, and it's the Power BI model design approach we recommend defining many-to-many dimension relationships. Σε μια σχεδίαση σχέσης διαστάσεων πολλά προς πολλά, ο πίνακας δεδομένων χωρίς στοιχεία αναφέρεται ως ενδιάμεσος πίνακας.In a many-to-many dimension relationship design, the factless fact table is referred to as a bridging table.

Για παράδειγμα, θεωρήστε ότι στους πωλητές μπορούν να εκχωρηθούν μία ή περισσότερες περιοχές πωλήσεων.For example, consider that salespeople can be assigned to one or more sales regions. Ο ενδιάμεσος πίνακας θα έχει σχεδιαστεί ως πίνακας δεδομένων χωρίς στοιχεία που αποτελείται από δύο στήλες: κλειδί πωλητή και κλειδί περιοχής.The bridging table would be designed as a factless fact table consisting of two columns: salesperson key and region key. Οι διπλότυπες τιμές μπορούν να αποθηκευτούν σε αμφότερες τις στήλες.Duplicate values can be stored in both columns.

Παράδειγμα πίνακα δεδομένων χωρίς στοιχεία

Αυτή η προσέγγιση σχεδίασης πολλά-προς-πολλά τεκμηριώνεται πλήρως και μπορεί να επιτευχθεί χωρίς έναν διάμεσο πίνακα.This many-to-many design approach is well documented, and it can be achieved without a bridging table. Ωστόσο, η προσέγγιση διάμεσου πίνακα θεωρείται η καλύτερη πρακτική στη συσχέτιση δύο διαστάσεων.However, the bridging table approach is considered the best practice when relating two dimensions. Για περισσότερες πληροφορίες, ανατρέξτε στο θέμα Οδηγίες για σχέσεις πολλά προς πολλά (συσχέτιση δύο πινάκων διαστάσεων).For more information, see Many-to-many relationship guidance (Relate two dimension-type tables).

Επόμενα βήματαNext steps

Για περισσότερες πληροφορίες σχετικά με τη σχεδίαση αστεροειδούς σχήματος ή τη σχεδίαση μοντέλου Power BI, ανατρέξτε στα παρακάτω άρθρα:For more information about star schema design or Power BI model design, see the following articles: