Domanda

Sto lavorando a un data warehouse che, alla fine, mi richiederà di creare report basati sull'orario di lavoro. Attualmente, la mia dimensione temporale è granulare all'ora. Mi chiedo se dovrei modificare la mia dimensione temporale per includere un campo bit per & Quot; orario di apertura & Quot; o dovrei creare una sorta di misura calcolata per questo alla fine dell'analisi? Qualche esempio sarebbe magnifico?

È stato utile?

Soluzione

Usa un bit (o anche un'altra colonna) per specificare se un'ora è un'ora lavorativa nel momento in cui è memorizzata. Altrimenti quando cambi l'orario di lavoro non sarai in grado di riprodurre rapporti storici.

Altri suggerimenti

Tutti i tuoi dati di vendita sono nello stesso fuso orario? Ad esempio, stai monitorando le vendite per punti vendita in fusi orari diversi o utenti finali in fusi orari diversi? In tal caso, potresti voler creare quel campo di bit per & Quot; orario di apertura & Quot; nella tabella dei fatti di vendita, perché sarà piuttosto difficile calcolarlo al volo per utenti e punti vendita in diversi fusi orari.

Inoltre, vuoi calcolarlo solo una volta, quando la vendita viene importata nel data warehouse, perché è probabile che questi dati non cambino molto spesso. Non è come stai per dire, & Quot; Questa vendita era in orario d'ufficio, ma non lo è più. & Quot;

gli orari di apertura sono regole aziendali, pertanto potrebbero cambiare in futuro

rappresenta l'orario di lavoro come orario base e durata, ad es. StartTime 0900, durata 9,5 ore, in questo modo puoi facilmente cambiare l'intervallo, fare scenari ipotetici basati su orari di lavoro diversi e l'orario di lavoro può incrociare le date senza complicare le query

ovviamente, tutti i tempi devono essere GMT (UTC), mai ora locale, per evitare la complessità dell'ora legale

EDIT: penso di aver frainteso la domanda, i tuoi dati sono già granulari all'ora ... No, penso che la mia risposta sia valida, ma con l'aggiunta delle date di inizio e fine effettive per gli intervalli di ore lavorative. Ciò consentirebbe alla granularità di cambiare in futuro preservando la storia

Non sono sicuro che possa essere d'aiuto, ma utilizzerei UCT per archiviare tutte le volte e quindi disporre di un orario di inizio e fine per specificare l'orario di lavoro. Una volta impostato, sarà una semplice If (SpecificHour >= BusinessStartingHour) And (SpecificHour <= BusinessEndingHour) Then ... operazione.

È possibile giocare e testare con le diverse opzioni se si utilizza Microsoft PerformancePoint 2007. È possibile modificare le dimensioni e generare i risultati in grafici, tabelle pivot, altri strumenti di reporting ecc.

http://office.microsoft.com/en-us/performancepoint /FX101680481033.aspx

Potrebbe il " orario di apertura " cambiare nel tempo? Immagino che sto chiedendo se ogni riga deve essere associata a un contrassegno di orario di ufficio o se solo la tabella dei report stessi (o qualche riferimento) decida se tale transazione è avvenuta durante l'orario di lavoro o meno.

A parità di tutti gli altri, probabilmente farei in modo che il rapporto lo faccia per te, invece di contrassegnare le righe, ma se l'orario di lavoro è instabile nel tempo, dovresti contrassegnare le righe per assicurarti che i tuoi dati storici rimangano corretti.

Penso che sia una chiamata di giudizio ... che dipende da test delle prestazioni, utilizzo del sistema, ecc. Personalmente, probabilmente creerei un campo indicizzato per contenere un flag nell'interesse di gestire la logica per determinare cosa sia e non è un orario di apertura iniziale (ovvero quando i dati vengono caricati). Se fatto correttamente (e ancora, a seconda dell'uso specifico) penso che potresti essere in grado di ottenere anche un guadagno in termini di prestazioni.

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