Question

Je suis nouveau dans l'entreposage de données. Premièrement, je souhaite préciser que ma copie de la boîte à outils de données Warehouse se trouve sur ma boîte aux lettres (courrier postal: P). Mais j'étudie déjà tout ce genre de choses avec ce que je trouve sur le net.

Ce que je ne trouve pas sur le net, cependant, c'est quoi faire quand vous semble avoir plus d'un fait dans un DW. Dans mon cas (assurance), j'ai des remboursements qui se produisent sur une base non régulière. Un client ne peut en avoir pas de 3 mois, puis dix au cours des mêmes mois. Sur les autres mains, j'ai "frais d'abonnement" (je ne sais pas quel est le terme d'anglais correct, mais vous obtenez le point), qui se produisent tous les mois ou tous les trois mois. Cela semble clairement comme deux faits distincts pour moi.

Ces deux sont un peu couplés de manière lâche par certaines dimensions, comme le client ou le "produit d'assurance". Vous trouverez maintenant ces deux entrepôts différents sur lesquels je dois produire deux rapports différents, puis connecter les rapports en dehors des DW? Ou existe-t-il un moyen de concevoir cela pour s'adapter à une seule descente DW. Ou devrais-je combiner ces deux faits en un? Je perdrais probablement la granularité sur les remboursements alors.

Un blog j'ai lu dit qu'un DW a toujours une table de fait. D'autres mentionnent l'étape consistant à concevoir quelles sont les tables de fait avec un S, mais il n'y a pas d'instruction claire de s'il y a un lien entre eux ou ne sont que des composants distincts d'un même projet DW.

Est-ce que quelqu'un connaît des références sur cette partie précise de DW Conception?

Était-ce utile?

La solution

Prendre vos questions à l'envers.

Un entrepôt de données peut avoir plus d'une table de fait. Cependant, vous souhaitez minimiser les jointures entre les tables de fait. Il est correct de faire dupliquer les informations réalisées dans différentes tables de fait.

des objets que vous avez mentionnés:

Le remboursement est un fait. L'horodatage est la dimension du fait de remboursement.

Les frais d'abonnement sont un fait. L'horodatage est la dimension du fait de la taxe d'abonnement.

Un remboursement peut arriver plus d'une fois. Je suppose que chaque client a un frais d'abonnement. Il semble donc que nous ayons deux tables de fait jusqu'à présent, le client et le remboursement du client.

Si vous saviez qu'il ne pouvait y avoir que sur le plus 3 remboursements (à titre d'exemple), vous éliminez la table des informations de remboursement du client et placez 3 colonnes de remboursement dans la table client.

Vous mentionnez également une assurance. Un client peut avoir plus d'une politique. Nous avons donc une table de tiers.

Un entrepôt de données est généralement conçu avec un STAR SCHEMA . Le schéma étoile est essentiellement une seule table de fait connectée à une ou plusieurs tables de dimensions. Vous aurez probablement plus d'une étoile dans un entrepôt de données, car nous avons déjà défini 3 tables de fait.

Autres conseils

Je me rends compte que je réponds à un ancien poste, mais je ne suis pas satisfait de l'une ou l'autre des réponses fournies. Je pense que ni non plus répondu à la question.

Un schéma peut avoir un ou plusieurs faits, mais ces faits ne sont liés à aucune relation clé. Il est préférable de ne pas rejoindre les tableaux de fait dans une seule requête que vous souhaitez interroger une base de données normalisée / transactionnelle. En raison de la nature de nombreuses jointures, etc. - les résultats seraient incorrects si une tentative.

La réponse que vous recherchez est que vous devez "forer" qui signifie essentiellement que vous interrogez chaque table de fait (schéma) séparément et fusionnant les résultats. Cela peut se produire en utilisant SQL ou de préférence via un outil de reporting / analysétique que vous pourriez avoir pour lequel vous pouvez avoir référencé l'entrepôt de données. Au lieu de faire dupliquer les réponses sur la façon de faire cela, je dirigerai tout le monde à deux très bons articles:

Trois façons de percer à travers Chris Adamson

et

devrait de l'entrepôt - Forage de Ralph Kimball

Vous pouvez avoir autant de tables de faits que vous le souhaitez.Dans votre exemple, vous pouvez avoir quelque chose comme:

 faits_ins_transaction

dimproduct répertorie plusieurs produits - L'abonnement étant l'un de ceux-ci. DimTransActionType répertorierait les transactions possibles (achat, remboursement, frais d'abonnement récurrent ...)

Supposons maintenant que vous soyez intéressé par une notification de souscription simplifiée, vous pouvez ajouter un factsubscription comme celui-ci:

 faits_ins_subscription

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top