Star-Schema Design

Une conception Star-Schema est-elle essentielle pour un entrepôt de données? Ou pouvez-vous faire de l’entreposage de données avec un autre modèle de conception?

L’utilisation de schémas en écanvas pour un système d’entrepôt de données vous procure plusieurs avantages et, dans la plupart des cas, il convient de les utiliser pour la couche supérieure. Vous pouvez également avoir un magasin de données opérationnel (ODS) – une structure normalisée qui contient «l’état actuel» et facilite les opérations telles que la conformation des données. Cependant, il existe des situations raisonnables où cela n’est pas souhaitable. J’ai eu l’occasion de construire des systèmes avec et sans couches ODS, et j’avais des raisons spécifiques pour le choix de l’architecture dans chaque cas.

Sans entrer dans les subtilités de l’architecture des entrepôts de données ou sans lancer une guerre contre les flammes entre Kimball et Inmon, les principaux avantages d’un schéma en écanvas sont les suivants:

  • Dans la plupart des systèmes de gestion de firebase database, l’optimiseur de requêtes dispose d’installations permettant d’effectuer des «transformations en écanvas» utilisant des structures d’ index bitmap ou une intersection d’index pour une résolution rapide des prédicats. Cela signifie que la sélection d’un schéma en écanvas peut être effectuée sans toucher à la table de faits (qui est généralement beaucoup plus grande que les index) jusqu’à ce que la sélection soit résolue.

  • Le partitionnement d’ un schéma en écanvas est relativement simple car seule la table de faits doit être partitionnée (sauf si vous avez des dimensions bibliquement grandes). L’élimination des partitions signifie que l’optimiseur de requêtes peut ignorer les brevets qui ne pourraient pas participer aux résultats de la requête, ce qui permet d’économiser sur les E / S.

  • Les dimensions qui changent lentement sont beaucoup plus faciles à mettre en œuvre sur un schéma en écanvas qu’un flocon de neige.

  • Le schéma est plus facile à comprendre et a tendance à impliquer moins de jointures qu’un flocon de neige ou un schéma ER. Votre équipe de reporting vous aimera pour cela

  • Les schémas en écanvas sont beaucoup plus faciles à utiliser et, ce qui est plus important, make fonctionnent bien avec les outils de requête ad hoc tels que Business Objects ou Report Builder . En tant que développeur, vous avez très peu de contrôle sur le SQL généré par ces outils. Vous devez donc aider autant que possible l’optimiseur de requêtes. Les schémas en écanvas donnent à l’optimiseur de requêtes relativement peu de possibilités de se tromper.

En règle générale, votre couche de génération de rapports utilise des schémas en écanvas à moins que vous n’ayez une raison spécifique de ne pas le faire. Si vous avez plusieurs systèmes sources, vous pouvez implémenter un stockage de données opérationnel avec un schéma normalisé ou en flocon pour accumuler les données. C’est plus facile car un ODS ne fait généralement pas d’historique. L’état historique est suivi dans des schémas en écanvas où cela est beaucoup plus facile qu’avec des structures normalisées. Un magasin de données opérationnelles normalisé ou flocon reflète l’état «actuel» et ne contient pas de vue historique supérieure à celle inhérente aux données.

Les processus de chargement ODS concernent le nettoyage et la conformité des données, ce qui est plus facile avec une structure normalisée. Une fois que vous avez des données propres dans un ODS, les charges de dimension et de fait peuvent suivre l’historique (modifications au fil du temps) avec des mécanismes génériques ou relativement simples relativement simples; Cela est beaucoup plus facile à réaliser avec un schéma en écanvas. De nombreux outils ETL (par exemple) fournissent des fonctionnalités intégrées permettant de changer lentement les dimensions et la mise en œuvre d’un mécanisme générique est relativement simple.

En superposant le système de cette manière, on obtient une séparation des responsabilités: la logique de nettoyage des données et des activités est traitée dans l’ODS et les charges du schéma en écanvas sont liées à l’état historique.

Il y a un débat en cours dans la littérature sur le datawarehouse concernant l’ endroit où, dans l’architecture Datawarehouse, la conception Star-Schema doit être appliquée.

En résumé, Kimball préconise l’utilisation exclusive de la conception Star-Schema dans le datawarehouse, tandis qu’Inmon souhaite d’abord créer un Enterprise Datawarehouse en utilisant la conception 3NF normalisée et utiliser plus tard la conception Star-Schema dans les datamarts.

En outre, vous pouvez également dire que la conception du schéma Snowflake est une autre approche.

Une quasortingème conception pourrait être la modélisation Data Vault .

Les schémas en écanvas sont utilisés pour permettre un access rapide à de grands volumes de données. La haute performance est activée en réduisant la quantité de jointures nécessaires pour satsify toute requête qui peut être faite sur le domaine. Cela se fait en autorisant la redondance des données dans les tables de dimensions.

Vous devez vous rappeler que le schéma en écanvas est un modèle pour la couche supérieure de l’entrepôt. Tous les modèles impliquent également des schémas de transfert au bas de la stack d’entrepôts, et certains incluent également une zone intermédiaire fusionnée transformée persistante où tous les systèmes sources sont fusionnés dans un schéma modélisé 3NF. Les différents domaines sont au-dessus de cela.

Les alternatives aux schémas en écanvas au niveau supérieur incluent une variante, qui est un schéma en flocon de neige. Une nouvelle méthode qui pourrait également mener à des recherches est celle de Data Vault Modeling proposée par Dan Linstedt.

La chose à propos des schémas en écanvas est qu’ils constituent un modèle naturel pour les types de choses que la plupart des gens veulent faire avec un entrepôt de données. Par exemple, il est facile de produire des rapports avec différents niveaux de granularité (par exemple, mois, jour ou année). Il est également efficace d’insérer des données métiers typiques dans un schéma en écanvas, encore une fois une caractéristique commune et importante d’un entrepôt de données.

Vous pouvez certainement utiliser n’importe quel type de firebase database, mais à moins que vous ne connaissiez très bien votre domaine d’activité, il est probable que vos rapports ne fonctionneront pas aussi efficacement que si vous aviez utilisé un schéma en écanvas.

Les schémas en écanvas conviennent parfaitement à la dernière couche d’un entrepôt de données. Comment y arriver est une autre question. Pour autant que je sache, il y a deux grands camps, ceux de Bill Inmon et de Ralph Kimball. Vous pourriez vouloir regarder les théories de ces deux types si / quand vous décidez de partir avec une écanvas.

En outre, certains outils de création de rapports ressemblent vraiment à la configuration du schéma en écanvas. Si vous êtes bloqué dans un outil de génération de rapports spécifique, cela peut conduire à ce que le magasin de rapports ressemble à votre entrepôt.

Le schéma en écanvas est un modèle de données logique pour les bases de données relationnelles qui répond aux besoins réguliers en matière d’entreposage de données. Si l’environnement relationnel est donné, un schéma en écanvas ou en flocon sera un bon modèle de conception, câblé dans de nombreuses méthodologies de conception DW.

Il existe cependant des moteurs de bases de données autres que relationnels, et ils peuvent être utilisés pour un entreposage de données efficace. Les moteurs de stockage multidimensionnels peuvent être très rapides pour les tâches OLAP (TM1, par exemple); nous ne pouvons pas appliquer la conception de schéma en écanvas dans ce cas. D’autres exemples nécessitant des modèles logiques spéciaux incluent les bases de données XML ou les bases de données orientées colonnes (par exemple, le magasin C expérimental).

Il est possible de s’en passer. Cependant, vous vous rendrez la vie difficile – votre organisation voudra utiliser des outils standard qui se trouvent au-dessus des DW, et ces outils s’attendront à un schéma en écanvas – beaucoup d’efforts seront déployés pour ajuster une cheville carrée dans un tour. trou.

De nombreuses optimisations au niveau de la firebase database supposent que vous avez un schéma en écanvas; vous passerez beaucoup de temps à optimiser et à restructurer pour que la firebase database fasse “la bonne chose” avec votre configuration pas tout à fait star.

Assurez-vous que les avantages l’emportent sur les inconvénients ..

(Est-ce que ça sonne comme si j’avais été là avant?)

-RÉ

Il y a trois problèmes à résoudre.

1) Comment extraire les données du système source opérationnel sans exercer de pression indue sur celles-ci en joignant les tables entre elles, en nettoyant les données pendant leur extraction, en créant des dérivations, etc.

2) Comment fusionner des données provenant de sources disparates – certaines données héritées, d’autres basées sur des fichiers, provenant de différents services, dans un ensemble intégral, précis et efficacement stocké qui modélise l’entreprise et ne reflète pas les structures des systèmes source. Rappelez-vous que les systèmes changent / sont remplacés assez rapidement, mais le modèle de base de l’entreprise évolue lentement.

3) Comment structurer les données pour répondre à des exigences analytiques et de reporting spécifiques pour des personnes / départements particuliers de l’entreprise, aussi rapidement et précisément que possible.

La solution à ces trois problèmes très différents nécessite des couches architecturales différentes pour les résoudre

Staging Layer Nous répliquons les structures des sources, mais seules les données modifiées provenant des sources sont chargées chaque nuit. Une fois que les données sont extraites de la couche intermédiaire dans la couche suivante, les données sont supprimées. Les requêtes sont des requêtes à table unique avec un simple filtre data_time. Très peu d’effet sur la source.

Enterprise Layer Il s’agit d’une troisième firebase database orientée métier. Les données sont extraites (et ensuite supprimées) de la couche intermédiaire dans la couche d’entreprise, où elles sont nettoyées, intégrées et normalisées.

Couche Présentation (Star Schema) Ici, nous modélisons dimensionnellement pour répondre aux exigences spécifiques. Les données sont délibérément normalisées pour réduire le nombre de jointures. Les hiérarchies pouvant occuper plusieurs tables de la couche Entreprise sont regroupées dans une seule table de dimension et plusieurs tables transactionnelles peuvent être fusionnées en une seule table de faits.

Vous faites toujours face à ces trois problèmes. Si vous choisissez de supprimer la couche entreprise, vous devez toujours résoudre le deuxième problème, mais vous devez le faire dans la couche de schéma en écanvas. À mon avis, ce n’est pas le bon endroit pour le faire.