Considérations relatives à l’entrepôt de données: quand et pourquoi?

Un petit fond ici:

Je sais ce qu’est un entrepôt de données , plus ou moins. J’ai lu plusieurs dizaines de guides sur l’entreposage de données, j’ai joué avec SSAS, je sais ce qu’est un schéma en écanvas et une table de dimension et une table de faits, je sais ce qu’est ETL et comment le faire. Ce n’est pas une question “comment” ou une demande de tutoriels.

Mon problème est que tout le matériel que j’ai lu sur l’entreposage de données semble échapper à la justification de la construction d’un entrepôt de données. Ils ont tous, au sens figuré, ou dans certains cas, littéralement, la phrase ” alors vous avez décidé de construire un entrepôt de données … ” Sauf que je n’ai pas encore pris cette décision.

J’espère donc que les membres SO pourront m’orienter ou aider à trouver une sorte de test semi-objective. Quelque chose que je peux adapter à un système particulier et aboutir soit à “oui, nous avons besoin d’un entrepôt de données” ou “non, le gain aujourd’hui serait trop petit”. Je pense que les questions spécifiques auxquelles je devrais pouvoir répondre sont les suivantes:

  1. À quel point la construction d’un entrepôt de données est-elle une option à considérer? En d’autres termes, quels signes indicateurs, indicateurs ou autres critères devrais-je rechercher, ce qui pourrait indiquer qu’un environnement transactionnel standard n’est plus suffisant?

  2. Quelles sont les alternatives à un entrepôt de données complet? La dénormalisation dans la firebase database transactionnelle et le “serveur de rapports” répliqué conforme à la norme bog en sont deux exemples. Est-ce qu’il y en a d’autres que je devrais explorer avant de m’engager dans le DW?

  3. Pourquoi un entrepôt de données est-il préférable aux autres solutions? Si la réponse est “ça dépend”, alors de quoi ça dépend?

  4. Quand ne devrais- je pas essayer de construire un entrepôt de données? Je suis sceptique sur tout ce qui est déclaré comme “meilleure pratique”, quel que soit le contexte. Il doit sûrement y avoir des scénarios où un DW est le mauvais choix – qu’est-ce que c’est?

  5. Existe-t-il des exemples pratiques de systèmes améliorés par la mise en place d’un entrepôt de données? Quelque chose qui m’expliquerait, de bout en bout, les types de décisions ou d’parsings dont ils avaient besoin dans l’entrepôt, comment ils décidaient de les intégrer et comment l’entrepôt finissait par s’intégrer dans un environnement plus vaste? Je ne veux pas d’un “fabriquons un cube à partir de la firebase database AdventureWorks” – l’implémentation n’est pas pertinente pour moi, je m’intéresse aux spécifications et conceptions et au processus de reflection global impliqué.

J’essaie généralement de ne pas poser de questions à plusieurs participants, mais je pense que tout cela est étroitement lié. Je suis prêt à accepter toute réponse portant au moins sur les 4 premières questions, bien que la dernière aide vraiment à cristalliser cela dans mon esprit. Les liens sont bons si quelqu’un a déjà écrit à ce sujet, du moment qu’ils sont assez concis et spécifiques (lien vers la page d’accueil de Ralph Kimball = pas utile).

J’espère avoir clarifié la question – merci d’avance pour vos réponses!

Je vais voir si je peux faire de mon mieux pour répondre à vos questions de manière succincte.

1.À quel point la construction d’un entrepôt de données est-elle une option à considérer? En d’autres termes, quels signes indicateurs, indicateurs ou autres critères devrais-je rechercher, ce qui pourrait indiquer qu’un environnement transactionnel standard n’est plus suffisant?

une. Si vous constatez que la création de rapports et la surveillance compromettent les performances de votre système de production et / ou d’un magasin de données hors ligne.

b. Si vous trouvez que trouver des réponses à vos questions professionnelles nécessite de générer beaucoup de SQL complexe à chaque fois.

c. Si vous trouvez que chaque fois que vous modifiez votre schéma transactionnel, vous devez revenir en arrière et retravailler toutes vos requêtes de génération de rapports.

ré. Si vous souhaitez rassembler des données provenant de plusieurs sources.

2. Quelles sont les alternatives à un entrepôt de données complet? La dénormalisation dans la firebase database transactionnelle et le “serveur de rapports” répliqué conforme à la norme bog en sont deux exemples. Est-ce qu’il y en a d’autres que je devrais explorer avant de m’engager dans le DW?

3.Pourquoi un entrepôt de données est-il meilleur que les autres solutions? Si la réponse est “ça dépend”, alors de quoi ça dépend?

Je vais répondre à ces questions ensemble. Je ne penserais pas à un entrepôt de données comme à tout ou rien. C’est simplement une phrase concise qui signifie “stocker vos données d’une manière qui vous permet de répondre plus facilement et plus rapidement aux questions professionnelles”.

Les bases de données transactionnelles sont conçues pour une interface efficace avec les applications. Les entrepôts de données, les magasins de données, les magasins de données opérationnelles et les tableaux de rapports sont conçus pour interagir efficacement avec les personnes, si cela est logique.

4.Quand ne devrais-je pas essayer de construire un entrepôt de données? Je suis sceptique sur tout ce qui est déclaré comme “meilleure pratique”, quel que soit le contexte. Il doit sûrement y avoir des scénarios où un DW est le mauvais choix – qu’est-ce que c’est?

Bonne question. Si votre système transactionnel vous fournit des informations suffisantes sur votre entreprise, vous n’avez probablement pas besoin d’entreposage.

Si vous ne disposez que d’une seule source de données et que les performances ne posent aucun problème, vous pouvez probablement obtenir des informations à partir de la création de tableaux de génération de rapports simples.

5. Existe-t-il des exemples pratiques de systèmes améliorés par la mise en place d’un entrepôt de données? Quelque chose qui m’expliquerait, de bout en bout, les types de décisions ou d’parsings dont ils avaient besoin dans l’entrepôt, comment ils décidaient de les intégrer et comment l’entrepôt finissait par s’intégrer dans un environnement plus vaste? Je ne veux pas d’un “fabriquons un cube à partir de la firebase database AdventureWorks” – l’implémentation n’est pas pertinente pour moi, je m’intéresse aux spécifications et conceptions et au processus de reflection global impliqué.

C’est une grande question qui prendrait beaucoup plus de place que ce que je suis ici.

Sur ce point, je peux vous indiquer quelques endroits qui pourraient vous donner l’idée que vous recherchez.

  • “Implémenter un entrepôt de données: une méthodologie qui a fonctionné” par Bruce Ullrey est un livre documentant le parcours d’un homme dans la construction d’un entrepôt de données. Ce n’est pas très poli, ce qui lui donne plus de réalisme. Il se lit comme un journal avec beaucoup de modèles et d’autres visuels qui illustrent bien ses efforts.
  • “Business Intelligence Roadmap” de Larissa Moss. Tarif standard. Vous accompagne dans le processus de création d’une pratique de BI à un niveau élevé.
  • “L’impact de la Business Intelligence sur les bénéfices” par Steve Williams donne un certain nombre d’études de cas qui montrent la valeur des entrepôts de données de construction.
  1. L’objective principal d’un DW est d’accélérer (simplifier) ​​le reporting et l’parsing. Il permet de découper et de découper des données de la manière que peut imaginer un utilisateur professionnel.

  2. Pour une première étape DW, vous pouvez simplement implémenter un schéma en écanvas Kimball et exécuter des requêtes SQL sur celui-ci. Si cela s’avère encore trop lent, commencez à penser à des agrégations pré-calculées (cubes).

  3. Le découpage et le découpage des informations par rapport à une DW est beaucoup plus simple qu’avec une firebase database normalisée. Un serveur de rapports répliqué améliorera les performances, mais ne simplifiera pas le découpage et le découpage. Gardez également à l’esprit que le DW appartient aux utilisateurs professionnels. Il leur incombe donc de proposer à tout moment différentes idées de tranches / dés: les informaticiens doivent simplement fournir un environnement dans lequel quelque chose de semblable est possible.

  4. Si vous exécutez peu de rapports de temps à autre sur votre système d’exploitation et que vous êtes satisfait des performances, vous n’avez pas besoin de DW.

  5. Toute mon expérience concerne les systèmes où les utilisateurs professionnels se plaignent sans cesse des rapports lents et de l’incapacité à écrire des «requêtes compliquées», tandis que les responsables de la production se plaignent que la firebase database s’enlève à cause des rapports. Dans tous les cas, une simple écanvas Kimball et un serveur de rapports avec cache et instantanés étaient suffisants.

  1. Vous devez envisager de créer un entrepôt de données lorsque deux des critères suivants correspondent:

    • Énorme quantité de données
    • Beaucoup de grandes sélections complexes (éventuellement comparées à quelques insertions, mises à jour et suppressions) qui prennent trop de temps à exécuter (et sont compliquées à écrire)
    • Les données provenant de différents systèmes doivent être combinées
  2. C’est vraiment la question que vous considérez comme un entrepôt de données. Dans de nombreux cas, vous pouvez passer progressivement des systèmes OLTP avec certains rapports à un entrepôt de données complet, à condition que vous puissiez vous en tenir à un système de gestion de firebase database relationnelle. La première pourrait être de créer une première table de faits et de continuer à utiliser les tables normalisées pour la dimension. Ensuite, append plus de faits, plus de tables de faits ou de tables de dimension dédiées au jeu. D’abord dans la même firebase database (ou l’une des bases de données des systèmes concernés), éventuellement dans une firebase database séparée ultérieurement.

  3. Un entrepôt de données complet (firebase database distincte, schéma en écanvas) offre les meilleures options pour optimiser les instructions sélectionnées, en plus du passage à un système spécialisé. Il est également découplé proprement du ou des systèmes OLTP. Pensez à la conception de schémas, mais aussi à des ressources telles que le processeur, les E / S et la mémoire, ainsi que les ressources organisationnelles, comme la planification de nouvelles versions. Bien sûr, c’est beaucoup de travail dont vous n’avez peut-être pas besoin.

  4. C’est dans les réponses ci-dessus: le fait que vous ayez une poignée de requêtes complexes ne signifie pas que vous devez construire un DWH, même chose pour les autres critères, s’ils sont isolés.

  5. Je ne peux pas offrir grand chose ici, mais le conseil: agile. Les exigences pour un DWH dépendent extrêmement des possibilités des utilisateurs. Là pour les exigences sont susceptibles de changer. L’automatisation des tests avec les bases de données est une tâche pénible, mais il est pire de tromper dans un système de production sans tests appropriés.

À quel point la construction d’un entrepôt de données est-elle une option à considérer? En d’autres termes, quels signes indicateurs, indicateurs ou autres critères devrais-je rechercher, ce qui pourrait indiquer qu’un environnement transactionnel standard n’est plus suffisant?

Je recommande un entrepôt de données lorsque vous avez constaté que l’exécution d’activités de création de rapports et d’parsing dans le magasin de données transactionnel était néfaste pour les deux.

Quelles sont les alternatives à un entrepôt de données complet? La dénormalisation dans la firebase database transactionnelle et le “serveur de rapports” répliqué conforme à la norme bog en sont deux exemples. Est-ce qu’il y en a d’autres que je devrais explorer avant de m’engager dans le DW?

Je n’ai rien à offrir ici. Je dirais que garder les bases de données transactionnelles et de reporting me semble raisonnable, que vous l’appeliez ou non un entrepôt. L’exploration de données peut être une activité très gourmande en ressources CPU.

Pourquoi un entrepôt de données est-il préférable aux autres solutions? Si la réponse est “ça dépend”, alors de quoi ça dépend?

Je n’ai rien à offrir ici.

Quand ne devrais-je pas essayer de construire un entrepôt de données? Je suis sceptique sur tout ce qui est déclaré comme “meilleure pratique”, quel que soit le contexte. Il doit sûrement y avoir des scénarios où un DW est le mauvais choix – qu’est-ce que c’est?

Je dirais que si vous n’avez pas besoin de conserver une longue histoire, ne faites pas une parsing intensive des données et que vos besoins en matière de rapports se limitent à une requête ponctuelle, alors un entrepôt de données n’est peut-être pas nécessaire.

Existe-t-il des exemples pratiques de systèmes améliorés par la mise en place d’un entrepôt de données? Quelque chose qui m’expliquerait, de bout en bout, les types de décisions ou d’parsings dont ils avaient besoin dans l’entrepôt, comment ils décidaient de les intégrer et comment l’entrepôt finissait par s’intégrer dans un environnement plus vaste? Je ne veux pas d’un “fabriquons un cube à partir de la firebase database AdventureWorks” – l’implémentation n’est pas pertinente pour moi, je m’intéresse aux spécifications et conceptions et au processus de reflection global impliqué.

Mes employeurs ont tous utilisé des entrepôts de données pendant de nombreuses années avant mon arrivée. Je ne peux donc pas vous dire à quoi ressemblaient les choses avant mon arrivée.

D’après mon expérience, le premier signe pour commencer à penser à l’entreposage de données est lorsque vous avez (ou êtes en train de développer) une firebase database transactionnelle et que les utilisateurs commencent à append un grand nombre d’exigences en matière de rapports et de données. Ce qui est à peu près toujours. Il est toujours plus facile d’avoir un entrepôt de données ou une firebase database de rapports distincte que d’essayer de concevoir un système transactionnel qui gère les besoins de rapport des utilisateurs finaux. Le stockage de l’historique (pour les entités commerciales) dans un système transactionnel ajoute de la complexité et gonfle une firebase database qui doit être aussi réactive que possible.

D’un autre côté, j’ai été dans de grandes entresockets où de nombreux groupes ont créé des entrepôts de données parce que les données d’intérêt étaient réparties sur de nombreux systèmes et étaient donc difficiles à interroger. Le problème était que chaque groupe créait son propre entrepôt de données car tous les entrepôts existants de la société ne disposaient pas du sous-ensemble d’informations adéquat ou d’un modèle de données considéré comme non optimal ou incorrect. Cela a aggravé la situation en créant des systèmes de données encore plus disparates, difficiles à comparer.

DW pourrait être considéré si, on utilise un «système transactionnel» sur une longue période. Plus tard, ils se rendent compte qu’ils doivent effectuer des fouilles de données pour déterminer différents modèles de données de l’entreprise. Et finalement, à l’aide des modèles de données déterminés, on veut aider la direction à prendre d’autres décisions au bénéfice de l’entreprise.

Les étapes suivantes doivent être suivies pour construire un entrepôt de données:

  1. Une plateforme et une firebase database ETL doivent être définies pour la firebase database.
  2. Un outil de reporting tel que SSRS, Tableau, etc. doit être choisi pour la visualisation.
  3. On peut opter pour le langage Data Analytical comme R, pour une utilisation ultérieure.
  4. Enfin, tout cela aidera à développer le magasin de données et l’outil de création de rapports.

“Je pense que pourquoi certains projets échouent?”

Il y a cinq raisons principales:

  • manque de partenariat entre le service informatique et les utilisateurs professionnels;
  • architecture d’entrepôt de données incorrecte;
  • pas assez de gens expérimentés;
  • une planification inadéquate, telle que l’absence de méthode éprouvée et un plan pour s’assurer qu’aucun détail n’est omis;
  • et en fonction de la technologie de pointe.