Slowly Changing Dimension stage in DataStage

La fase Slowly Changing Dimension (SCD) è una fase di elaborazione che opera nel contesto di un database con schema a stella. Lo stadio SCD ha un unico collegamento di ingresso, un unico collegamento di uscita, un collegamento di riferimento delle dimensioni e un collegamento di aggiornamento delle dimensioni.

La fase SCD legge i dati di origine sul collegamento di input, esegue una ricerca nella tabella delle dimensioni sul collegamento di riferimento e scrive i dati sul collegamento di output. Il collegamento di output può trasferire i dati a un altro stadio SCD, a un diverso tipo di stadio di elaborazione o a una tabella dei fatti. Il collegamento di aggiornamento delle dimensioni è un collegamento di output separato che trasporta le modifiche alle dimensioni. È possibile eseguire questi passaggi in un unico processo o in una serie di processi, a seconda del numero di dimensioni presenti nel database e dei requisiti di prestazioni.

Gli stadi SCD supportano sia l'elaborazione SCD di tipo 1 che quella di tipo 2:

SCD di tipo 1
Sovrascrive un attributo in una tabella dimensionale.
SCD di tipo 2
Aggiunge una riga a una tabella delle dimensioni.

Ogni fase SCD elabora una singola dimensione ed esegue ricerche utilizzando una tecnica di corrispondenza di uguaglianza. Se la dimensione è una tabella di database, lo stage legge il database per creare una tabella di ricerca nella memoria. Se viene trovata una corrispondenza, la fase SCD aggiorna le righe nella tabella delle dimensioni per riflettere i dati modificati. Se non viene trovata alcuna corrispondenza, lo stage crea una nuova riga nella tabella delle dimensioni. Tutte le colonne necessarie per creare una nuova riga di dimensione devono essere presenti nei dati di origine.

I dati inseriti nelle fasi SCD devono rappresentare accuratamente l'ordine in cui si sono verificati gli eventi. Potrebbe essere necessario preordinare i dati di input in base a un numero sequenziale o a un campo data. Se un processo prevede più fasi SCD, è necessario assicurarsi che l'ordine di ordinamento dei dati di input sia corretto per ciascuna fase.

Se lo stadio SCD è in esecuzione in parallelo, i dati di input devono essere suddivisi in partizioni hash in base alla chiave. Il partizionamento hash consente a tutti i record con la stessa chiave aziendale di essere gestiti dallo stesso processo. La fase SCD divide la tabella delle dimensioni tra i processi creando una tabella di ricerca separata per ciascun processo.