Bonjour,
Pour faire simple et court, j'ai une dimension Dim A de type SCD 2( RowStart, RowEnd et FlgIsCurrentRow) et une Fact 1. J'alimente cette fact à partir d'une source Source 1 qui contient les identifiants de la Dim A.
Exemple Dimension DimA:
SK| ID | ... | RowStart | RowEnd | FlgIsCurrent
---------------------------------------------------------------
1 | AAA| ...| 01/03/2012| 05/03/2012| 0
2 | AAA| ...| 05/03/2012| 26/03/2012| 0
3 | AAA| ...| 26/03/2012| 31/12/9999| 1
Lorsque j’alimente la fact, je fais un LOOKUP sur la Dim A pour récupérer le bon SK, en créant une requête dans le composant LOOKUP de SSIS. Je fais un INNER JOIN de la manière suivante :
J'aurai voulu savoir si c'est bien ainsi qu'on procède dans ce cas ? Et ensuite, y-a t-il une autre façon de faire ? Car j'ai remarqué que pour ce cas, le LOOKUP est assez lent (cache mode: partial cache et je fais une custom query)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT * FROM DimA INNER JOIN Source1 ON Source1.ID = DimA.ID AND Source1.DateStart >= DimA.RowStart AND Source1.DateStart < DimA.RowEnd
Partager