6
votes

Meilleure pratique pour renseigner les faits et les tables de dimensions du DB plat transactionnel

Je veux peupler un schéma / cube étoile en SSIS / SSAS.

J'ai préparé toutes mes tables de dimensions et ma table de faits, clés primaires, etc.

La source est une table 'plate' (niveau d'article) et mon problème est maintenant comment le diviser et l'obtenir d'un dans les tables respectives.

J'ai fait un peu de googling mais je n'ai pas pu trouver une solution satisfaisante au problème. On pourrait imaginer que c'est un problème / une situation assez courante dans le développement de BI?!

merci, Alexl


0 commentaires

3 Réponses :


11
votes

Pour un début, cela dépend de savoir si vous souhaitez effectuer un simple transfert de données initial ou quelque chose de plus sophistiqué (par exemple incrémental). Je vais supposer que vous effectuez un transfert de données initial.

Dites que votre table d'article a des colonnes comme suit: ID, CAT1, CAT2, CAT3, CAT4, ... Code> En supposant des catégories 1 -4 avoir des colonnes id, cat_name code>, vous pouvez charger DIM_CAT1 (Tableau de dimension de la catégorie d'élément 1) comme suit: P>

insert into fact_table (id, cat1_id, cat2_id, cat3_id, cat4_id, ...)
  select id, dc1.id
    from item_table it
      join dim_cat1 dc1 on dc1.cat_name = it.cat1
      join dim_cat2 dc2 on dc2.cat_name = it.cat2
      join dim_cat3 dc3 on dc3.cat_name = it.cat3
      join dim_cat4 dc3 on dc4.cat_name = it.cat4
 ...


0 commentaires

3
votes

Nous faisons cela en utilisant une tâche de Dataflow pour copier des informations depuis le dernier temps d'exécution du package dans des tables de stadification temporaire, puis mettez à jour les archives / entrepôt avec des données de ces tableaux de stadification basés sur une clé, puis insérez ces rangées que Don ' existe encore. Tronquez la table de mise en scène prête pour la prochaine fois, ajoutez une charge d'audit. Job fait?


0 commentaires

0
votes

Je construisez souvent des cubes contre des magasins de données opérationnelles au lieu de Star Schemas. Les performances seront presque toujours meilleures avec un schéma d'étoiles, mais pour le prototypage / les tests, n'ayez pas peur de développer des cubes contre les données que vous n'avez pas l'étoile. schéma que vous voulez.


0 commentaires