2017-11-22 5 views
0

finden Ich habe Tabelle ich habe untenIn SCD Typ2, wie neueste Rekord


no | name | loc | 
----------------- 
1 | abc | hyd | 
----------------- 
2 | def | bang | 
----------------- 
3 | ghi | chennai | 

dann habe ich laufe den zweiten Lauf laden die angegebenen Daten den Job in scdtype 2 laden die Daten laufen unter


no | name | loc | 
----------------- 
1 | abc | hyd | 
----------------- 
2 | def | bang | 
----------------- 
3 | ghi | chennai | 
-------------------- 
1 | abc | bang | 

hier keine Termine, Flaggen und lief ids wie in dieser Situtation zweiten aktualisierten Datensatz finden

Dank

+1

Ich glaube nicht, dass Sie können. Sie sollten Daten und Flags in Ihrer Dimension haben (gültig ab Datum, gültig bis Datum, aktuelle Flagge wäre ein guter Start). – Rich

+1

Sie können definitiv * neuesten * Datensatz pro Primärschlüssel nicht finden ('nein'). Was Sie * tun können * ist, alle neuen Datensätze für einen bestimmten Schlüssel zu finden (einfach mit 'MINUS'). Sie werden in Schwierigkeiten geraten, wenn mehr als ein Datensatz für einen bestimmten Schlüssel vorhanden ist, um die Sortierreihenfolge festzulegen. Ihre Schnittstelle ist also fraglich. –

+1

Sie können nicht - aufgrund der Tatsache, dass dies keine ordnungsgemäße SCD2-Implementierung ist. Dies muss neu gestaltet werden. – Maciejg

Antwort

2

Ich glaube nicht, Sie in der Lage sein werden zwischen dem aktualisierten Datensatz und dem ursprünglichen Datensatz zu unterscheiden .

eine Dimensionstabelle Typ unter Verwendung von 2 erfordert SCD zusätzliche Spalten, die die Zeit beschreiben, in dem der Datensatz gültig ist (oder Strom), genau aus diesem Grunde.

Die Lösung ist Ihre Dimensionstabelle diese Spalten (In der Regel ValidFrom und ValidTo Datum oder Datum/Zeit, und manchmal eine IsCurrent Flagge für eine gute Maßnahme) hat zu gewährleisten. Ihr ETL-Prozess würde dann diese Spalten als Teil der Aktualisierung von Typ 2 ausfüllen.