Scegliere un tipo di dimensione a modifica lenta

Completato

Le tabelle delle dimensioni in un data warehouse acquisisce attributi descrittivi sulle entità aziendali, ad esempio clienti, prodotti o dipendenti. Questi attributi cambiano nel tempo e il modo in cui le modifiche vengono gestite direttamente influiscono sulla capacità di eseguire analisi cronologiche accurate. Le dimensioni a modifica lenta (SCD) forniscono framework per la gestione di queste modifiche e la scelta del tipo scD corretto è una decisione di progettazione fondamentale.

In qualità di data engineer, devi comprendere i tipi SCD e implementarli quando richiesto. Anche se gli architetti dei dati spesso effettuano le decisioni di progettazione iniziali, sono necessarie conoscenze sufficienti per valutare i compromessi, consigliare approcci ed eseguire correttamente le implementazioni. Questa unità consente di comprendere le caratteristiche di ogni tipo scD in modo da poter selezionare l'approccio appropriato per i requisiti aziendali.

Comprendere le modifiche delle dimensioni

Prima di selezionare un tipo SCD, considera cosa accade quando cambiano i dati di origine. Si supponga che un cliente di nome Hank Zoeng passi da Seattle a Portland. La tua tabella delle dimensioni del cliente mostra attualmente Seattle come sua città. Sono disponibili tre opzioni fondamentali:

  • Sovrascrivere il valore esistente con Portland, perdendo ogni traccia che fosse mai stato a Seattle.
  • Mantenere la registrazione di Seattle e creare una nuova versione che mostri Portland, mantenendo la cronologia completa.
  • Tenere traccia di una cronologia limitata aggiungendo una colonna "città precedente" insieme al valore corrente.

Ogni approccio soddisfa esigenze analitiche diverse. I report sulle vendite che mostrano la "posizione corrente del cliente" necessitano di una gestione diversa rispetto all'analisi dei "modelli di migrazione dei clienti" o "vendite per area geografica del cliente al momento dell'acquisto".

Tipo SCD 0

Il tipo SCD 0 rappresenta l'approccio più semplice: non aggiornare mai gli attributi della dimensione dopo l'inserimento iniziale. I valori originali rimangono in modo permanente, indipendentemente dalle modifiche del sistema di origine.

Diagramma che illustra il tipo 0 di scD.

Questo tipo funziona bene per:

  • Costanti vere: date di nascita, date di registrazione originali o date di fondazione che realmente non cambiano mai.
  • Requisiti di controllo: quando le normative richiedono di conservare il valore originale esattamente come registrato per la prima volta.
  • Dati di riferimento: valori di ricerca che rappresentano classificazioni permanenti.

Il tipo 0 viene usato raramente in isolamento perché la maggior parte degli attributi della dimensione cambia nel tempo. Tuttavia, le singole colonne all'interno di una tabella delle dimensioni potrebbero usare il trattamento di tipo 0, mentre altre colonne usano tipi scD diversi.

SCD tipo 1

ScD Type 1 sovrascrive il record di dimensione esistente con nuovi valori. Quando Hank si sposta da Seattle a Portland, aggiorni direttamente la sua riga. La tabella delle dimensioni riflette sempre lo stato corrente del sistema di origine.

Diagramma che illustra il tipo scD 1.

Il tipo 1 è appropriato quando:

  • I valori cronologici non sono importanti: correggere gli errori di immissione dei dati, aggiornare gli indirizzi di posta elettronica o aggiornare i numeri di telefono.
  • L'analisi è incentrata sullo stato corrente: report che rispondono a "dove vivono oggi i nostri clienti?" invece di "dove vivono quando hanno effettuato acquisti?"
  • La semplicità è prioritaria: il tipo 1 non richiede colonne aggiuntive o logica di controllo delle versioni.

Importante

Le modifiche di tipo 1 influiscono sulle aggregazioni cronologiche. Se Hank ha acquistato $10.000 di prodotti mentre si trova a Seattle, tali vendite ora vengono attribuite a Portland dopo l'aggiornamento. Questo comportamento potrebbe rappresentare erroneamente le prestazioni cronologiche in base all'area.

Prendere in considerazione l'uso del tipo 1 per gli attributi supplementari che non influiscono sull'accuratezza analitica, ad esempio:

  • Informazioni di contatto (e-mail, telefono, correzioni degli indirizzi).
  • Campi di testo descrittivi (descrizioni dei prodotti, note cliente).
  • Correzioni di errore in qualsiasi attributo.

SCD Type 2

Il tipo SCD 2 mantiene la cronologia completa inserendo nuove righe per ogni versione di un membro della dimensione. Quando Hank si sposta a Portland, la riga di Seattle esistente rimane e viene creata una nuova riga Portland. Entrambe le righe condividono la stessa chiave naturale (ID cliente) ma hanno chiavi surrogate diverse.

Annotazioni

Una chiave naturale viene anche definita chiave aziendale o chiave di sistema di origine. Rappresenta l'identificatore univoco dell'origine dati originale, ad esempio ID cliente, numero di dipendente o codice prodotto.

Le dimensioni di tipo 2 richiedono attributi di rilevamento aggiuntivi:

Attribute Scopo
Chiave surrogata Identificatore univoco per ogni versione
Data di inizio validità Quando questa versione è diventata effettiva
Data di fine validità Quando questa versione è scaduta (spesso 31/12/9999 per la versione corrente)
Flag corrente Valore booleano che indica la versione attiva

La tabella seguente mostra come appare il record cliente di Hank Zoeng dopo il passaggio da Seattle a Portland:

SK ID Cliente Nome Città ValidFrom ValidTo Current
1001 C-555 Hank Zoeng Seattle 2020-01-15 2024-03-01 FALSE
1002 C-555 Hank Zoeng Portland 2024-03-01 9999-12-31 TRUE

Il tipo 2 è appropriato quando:

  • Accuratezza storica: analisi delle vendite in base alla localizzazione del cliente al momento dell'acquisto.
  • I registri di controllo sono necessari: per il monitoraggio di assegnazioni dei dipendenti, modifiche del territorio o ristrutturazioni organizzative nel tempo.
  • Analisi delle tendenze necessaria: informazioni sull'evoluzione degli attributi delle dimensioni.

Il tipo 2 aumenta la complessità e i requisiti di archiviazione. Ogni versione crea una nuova riga e le tabelle dei fatti fanno riferimento a versioni specifiche tramite chiavi surrogate. La complessità delle query aumenta perché gli analisti devono comprendere il modello di controllo delle versioni.

Suggerimento

Riservare il tipo 2 per gli attributi in cui la prospettiva cronologica influisce sulle decisioni aziendali. Non applicare il Tipo 2 a ogni attributo modificabile. L'overhead non è giustificato per informazioni aggiuntive come i numeri di telefono.

SCD Tipo 3

ScD Type 3 tiene traccia della cronologia limitata aggiungendo colonne per i valori precedenti. Invece di creare nuove righe, si aggiunge una colonna "città precedente" insieme a "città corrente". Questo approccio tiene traccia solo della modifica più recente, non della cronologia completa.

La tabella seguente mostra come appare il record cliente di Hank Zoeng dopo il passaggio da Seattle a Portland:

ID Cliente Nome CurrentCity Città precedente
C-555 Hank Zoeng Portland Seattle

Il tipo 3 è appropriato quando:

  • Solo il valore precedente è importante: confronto tra struttura attuale e struttura organizzativa precedente.
  • Esistono vincoli di archiviazione: quando il versionamento di tipo 2 creerebbe troppe righe.
  • L'analisi confronta prima e dopo: riformulazioni dei prodotti, modifiche al livello di prezzo o aggiornamenti dei criteri.

Il tipo 3 è il tipo di scD meno comune perché:

  • Acquisisce un solo valore precedente (o un numero fisso di valori precedenti).
  • L'aggiunta di colonne per ogni attributo rilevato può aumentare significativamente le tabelle.
  • I modelli semantici possono trovare strutture di tipo 3 difficili da usare.

La maggior parte degli scenari che sembrano richiedere il tipo 3 è migliore gestita dal tipo 2, che fornisce cronologia completa senza modifiche dello schema per ogni attributo.

Confrontare i tipi SCD

La tabella seguente riepiloga quando selezionare ogni tipo di scD:

Considerazione Tipo 0 Tipo 1 Tipo 2 Tipo 3
Storia preservata Solo l'originale. None Completo Limitato
Impatto sull'archiviazione Minime Minime High Moderato
Complessità delle query Simple Simple Complex Moderato
casi d'uso comuni Costanti, requisiti di controllo Correzioni degli errori, aggiornamenti dei contatti Attribuzione delle vendite, rilevamento del territorio Confronti precedenti/successivi
Relazione tra tabelle dei fatti Chiave naturale Chiave naturale Chiave surrogata Chiave naturale

Applicare strategie SCD miste

Le tabelle dimensioni di produzione spesso combinano più tipi SCD. Una dimensione del cliente può gestire gli attributi in modo diverso in base al significato analitico:

  • Tipo 0: data di registrazione originale (mai modificata).
  • Tipo 1: indirizzo di posta elettronica, numero di telefono (stato corrente è sufficiente).
  • Tipo 2: area di vendita assegnata (accuratezza cronologica necessaria per l'attribuzione delle vendite).

Questo approccio ibrido bilancia l'efficienza di archiviazione con i requisiti analitici. Durante la progettazione delle dimensioni, valutare ogni attributo singolarmente per determinare la strategia di gestione delle modifiche appropriata.

Comprendere quando applicare ogni tipo di scD consente di implementare dimensioni che supportano in modo accurato i requisiti analitici dell'organizzazione. I dettagli di implementazione per il caricamento e la gestione delle tabelle SCD in Azure Databricks sono illustrati nelle unità successive.