2015-10-19 1 views
-1

Je ne suis pas un développeur BI chevronné, j'ai donc besoin d'aide pour remplir ma table de faits. Tout d'abord, j'ai rempli toutes mes dimensions de ma base de données de production (je n'utilise pas une base de données intermédiaire ou des tables) en utilisant les composants SSIS appropriés.Comment puis-je remplir ma table de faits?

DimParent, DimStudent, DimManager et DimFacilitator utilisent la clé naturelle comme la clé primaire. Le reste des dimensions utilise une clé de substitution comme primaire. La raison de l'utilisation des clés naturelles est parce que j'ai le même modèle de base de données pour ma base de données de production (OLTP) sur plusieurs schémas différents (qui agissent comme mes différents emplacements Campus). Mes données mesurables sont toujours dans ma base de données de production et je n'arrive pas à comprendre comment remplir ma table de faits. Production OLTP

Je pensais à l'aide d'une grande requête avec une jointure, mais il pourrait devenir trop complexe en ce qui concerne la façon dont je peuplaient mon DimAssessmentType en utilisant la requête:

select PK_Assessment, [Description] 
from Auckland_Park.Assessment 
union 
select 3, 'International' 
+0

Je ne comprends pas .... avez-vous besoin d'aide pour écrire une instruction d'insertion ou quelque chose? –

+0

Et? Qu'avez-vous essayé? Où êtes-vous coincé? De quelle aide avez-vous besoin? – Ragul

+0

Je veux remplir ma table de faits. J'ai essayé une grande déclaration select avec des jointures mais comme je l'ai mentionné, je ne pense pas que cela fonctionnera. Pourrait-il? Est-ce que ce sera aussi simple? – Jnr

Répondre

2

Ne pas être incompatibles. Utilisez des clés de substitution pour tout. Ensuite, peu importe ce qui se passe (c'est-à-dire qu'un campus est en ligne et ne respecte pas cette règle), vous pouvez en tenir compte. Être inconsistant, c'est juste faire du travail pour vous-même. Faites le design dès maintenant. C'est un sacré boulot de recharger une dimension et un fait après que vous ayez des données sur trois ans dans votre réalité.

Quoi qu'il en soit. La façon dont je remplis un fait est:

  1. Charger les faits dans une table de transfert.
  2. La table de mise en scène comporte des colonnes supplémentaires qui contiennent vos clés de substitution
  3. Exécution d'une déclaration de mise à jour sur votre table de mise en scène qui remplit les clés de substitution
  4. Choisissez une fenêtre appropriée dans votre fait. Supprimez et rechargez cette fenêtre

Il semble que vous souhaitiez effectuer une recherche en ligne dans SSIS à la place pour trouver des SK. C'est bien, mais cela rend difficile le dépannage. De même, le composant de recherche SSIS ne se redimensionne pas bien (c'est-à-dire fonctionne pour quelques lignes et est très très lent pour de nombreuses lignes). En outre, il ne fait pas très bien SCD.

Votre affirmation "Je n'arrive pas à comprendre ..." est très vague. Suivez les quatre étapes ci-dessus et dites-moi lequel vous ne pouvez pas comprendre. Un problème est peut-être que vous ne préservez pas les clés du système source dans votre écran. Vous ne pouvez donc pas rechercher les nouvelles clés de substitution en fonction des clés du système source.

+0

Merci, je vais travailler dessus et revenir vers vous. – Jnr

+0

J'ai lu un blog [ici] (http://sqlblog.com/blogs/jorg_klein/archive/2008/10/22/ssis-decrease-your-fact-table-loading-time-up-to-40.aspx) qui stipule que votre entreprise/clé naturelle doit être la clé primaire de liaison à vos tables de faits clé étrangère. Et comme vous l'avez dit "vous devriez utiliser des clés de substitution pour tout". Cela signifie que je devrais utiliser une colonne _Identity_ (clé de substitution) et aussi une colonne _primary key_ (clé métier) dans ma table Dimensions puis lier la clé primaire à la clé étrangère de la table Fact. – Jnr

+1

Vous avez les deux clés dans votre dimension. Vous vous assurez qu'ils sont tous les deux uniques (via des contraintes). Ce blog dit _Store l'enregistrement des faits dans la table de faits DWH avec les clés de substitution gagnées des dimensions_. Donc, il est dit de faire correspondre sur les clés _business_ dans les transactions de source étagées et dimensionner et dériver votre clé de substitution, et et _that_ SK va dans votre fait. Nous disons la même chose. Voir mon dernier commentaire: "vous ne préservez pas les clés du système source (clés commerciales) dans votre dimension". Vous devez stocker les deux types de clés dans votre dimension, mais seulement les clés de substitution sur votre fait. –