Domanda

Sto impostando le tabelle Fact e Dim e sto cercando di capire il modo migliore per impostare i miei valori temporali. AdventureworksDW utilizza un timekey (UID) per ciascuna voce temporale nella tabella DimTime. Mi chiedo che ci sia qualche ragione per cui non dovrei semplicemente usare un valore temporale invece di 0106090800 (La mia granularità è oraria)?

È stato utile?

Soluzione

" Chiavi intelligenti " (in questo caso, una data e un numero di ora codificati) può causare problemi quando si desidera modificare le definizioni nella propria dimensione. Ad esempio, i tuoi utenti potrebbero insistere su un passaggio dall'ora locale all'ora UTC. Ora la tua chiave non è più un numero utile, è il vecchio valore nella dimensione.

Inoltre, con un problema di roll-over di mezzanotte, la parte della data della chiave intelligente potrebbe non corrispondere alla data effettiva del cambio UTC rispetto all'ora locale.

Per evitare che la chiave diventi un problema, non è possibile utilizzarla per alcun calcolo di alcun tipo. In tal caso, è leggermente meglio di un semplice GUID o numero di incremento automatico.

I tasti di incremento automatico (o GUIDS) sono veloci e semplici. Soprattutto, sono banalmente coerenti in tutte le dimensioni.

Il tempo sembra avere una mappatura numerica, ma aiuta a guardare questa è una strana coincidenza, non una base per un buon design.

Altri suggerimenti

Ecco le ultime di Ralph Kimball sulla dimensione temporale. È datato 2004, ma è ancora buono.

Anche questo sarà di aiuto.

La chiave primaria dovrebbe essere surrogata, insignificante, tuttavia è difficile resistere all'utilizzo di AAAAMMGG per la chiave della dimensione della data e consente anche un facile partizionamento delle tabelle. Il trucco è che dovrebbe ancora essere considerato privo di significato - il fatto che assomigli ad una data dovrebbe essere considerato puramente casuale. Questa chiave non dovrebbe mai essere esposta agli utenti aziendali.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top