Que sont les mesures et les dimensions en cubes


21

Je suis très nouveau dans Microsoft Sql Server Business Intelligence et Analysis Service(mais je programme depuis des années avec SQL Server). Quelqu'un peut-il décrire les mesures et dimensions en cubes en mots simples (si c'est possible avec des images)?

Merci

Réponses:


39

Pensez à un processus ou à un événement que vous souhaitez analyser.

Supposons que vous construisiez Lougle Analytics et que vous souhaitez analyser les visites (par opposition aux demandes d'une seule page) sur votre site. La visite d'un site Web est un processus.

Une table de faits représente un processus ou un événement que vous souhaitez analyser, dans ce cas, il s'agit d'une liste de visites sur site. Vous pouvez avoir autant de tables de faits que vous le souhaitez, une par processus ou événement.

Quels éléments pourraient vous être utiles dans l'analyse des visites sur site?

  • Informations sur le navigateur Web (marque, résolution d'écran, ...)
  • Informations sur l'utilisateur (pays, état, ville, FAI, en fonction de son adresse IP)
  • Informations sur le début de la visite (année, trimestre, mois, semaine, jour)
  • La durée de la visite
  • La page de renvoi, la page de destination et la page de sortie (titre, chemin de l'URL)
  • Le nombre de pages visitées pendant la visite

Techniquement, vous pouvez mettre tout cela dans une seule table - comme vous le feriez dans Excel, mais cela deviendrait très gros très rapidement, nous ferons donc UN niveau de normalisation. La conception dimensionnelle consiste souvent simplement à «mettre tout ce dont vous avez besoin pour une analyse dans une grande table», puis à normaliser un niveau.

Ainsi, votre table de faits ressemblera à ceci:

web_browser_key          bigint
ip_address_key           bigint
start_date_key           int
referring_page_key       bigint
landing_page_key         bigint
exit_page_key            bigint
duration_seconds         int
number_of_pages_visited  int

Il a un tas de valeurs clés qui font référence à des valeurs dans d'autres tableaux †, et deux non-clés. Les non-clés sont des valeurs numériques et sont appelées mesures . Pouvez-vous prendre la moyenne du nom de marque du navigateur Web? Non, c'est donc une dimension. Pouvez-vous prendre la moyenne de la durée de la visite? Oui, c'est donc une mesure.

Les autres tables sont appelées tables de dimension , et la ip_addresstable de dimension peut ressembler à ceci:

ip_address_key  bigserial primary key, /* use meaningless surrogate keys */
ip_address      inet unique,
country         text,
division        text,
locality        text,
latitude        numeric(8,6),
longitude       numeric(9,6)

Notez qu'il n'est pas normalisé: le pays peut être dérivé de la ville (localité). Cependant, dans un entrepôt de données, nous nous soucions de faciliter d' abord l' analyse . En facilitant l'analyse, j'entends éviter les jointures profondes.

Notez que certaines des données de la table de dimension sont hiérarchiques : pays> division> localité. Votre serveur OLAP (espérons-le) comprend les hiérarchies pour prendre en charge les opérations d'exploration.

Un cube logique n'est que la collection de dimensions et de mesures avec laquelle vous travaillez. Contrairement à un cube Rubik, il peut avoir plus de 3 dimensions. Considérez simplement une dimension comme une colonne dans votre ensemble de données.

OLAP est un ensemble d'opérations que vous pouvez effectuer sur un ensemble de données, tel qu'un pivotement, un découpage, un découpage en dés, un perçage. Pensez aux tableaux croisés dynamiques Excel. Un serveur OLAP facilite les opérations OLAP.

† généralement sans clés étrangères


J'ai aimé l'explication avec un exemple, mais petit problème - il n'y a aucune mention d'un citydans vos schémas, donc quand vous dites country could be derived from cityque je ne suis pas certain de ce que vous voulez dire.
Don Cheadle

@mmcrae 'locality' est le nom générique de la ville / ville / village
Neil McGuigan

13

Dans l'image ci-dessous, qui est un exemple d'un schéma en étoile de base. Les dimensions sont les Dim_Tables.

Ce sont généralement les valeurs par lesquelles vous souhaitez analyser les données. Donc, vous voulez regarder les ventes d'un produit particulier, dans un pays particulier, sur une plage de dates particulière.

Dans la table fact_sales, vous n'avez qu'une seule mesure qui est Units_Sold.

Les mesures (au niveau le plus simple) ne sont que des éléments que vous souhaitez agréger lors de l'analyse en fonction de critères dans les dimensions.

Schéma en étoile de base

S'il y a autre chose de plus spécifique que vous aimeriez savoir, faites-le moi savoir.


Il semble que cette image provienne de Wikipedia: en.wikipedia.org/wiki/Star_schema . Tu devrais le mentionner.
Scarabee
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.