Domanda

Sono nuovo per il magazzino dei dati. Innanzitutto, voglio preciso della mia copia del toolkit di Data Warehouse è sulla sua strada per la mia casella di posta (posta della snail: P). Ma sto già studiando tutte queste cose con quello che trovo in rete.

Quello che non trovo in rete, tuttavia, è cosa fare quando sembra che abbia più di un fatto in un DW. Nel mio caso (assicurazione), ho rimborsi che si verificano su base non regolare. Un cliente non può avere nessuno per 3 mesi e poi dieci negli stessi mesi. Delle altre mani, ho "tassa di iscrizione" (non sono sicuro di quale sia il termine inglese corretto, ma ottieni il punto), che si verificano ogni mese o ogni tre mesi. Sembra chiaramente come me per me due fatti distinti.

Quei due sono tipi di liberamente accoppiati da alcune dimensioni, come il cliente o il "prodotto assicurativo". Ora sono questi due diversi magazzini, su cui devo produrre due rapporti diversi e quindi collegare i report al di fuori del DW? O c'è un modo per progettarlo per adattarsi a una singola discesa DW. O dovrei combinare questi due fatti in uno? Probabilmente perderei la granularità sui rimborsi allora.

Qualche blog Ho letto detto che un DW ha sempre una tabella di fatto. Altri menzionano la fase di progettare quali sono le tabelle fatte con una S, ma non c'è un'istruzione chiara se c'è un legame tra loro o sono solo componenti distinti di uno stesso progetto DW.

Qualcuno conosce alcuni riferimenti su quella precisa parte del design DW?

È stato utile?

Soluzione

Prendendo le tue domande all'indietro.

Un data warehouse può avere più di una tabella di fatto. Tuttavia, vuoi minimizzare il minimizzare i join tra le tabelle fatte. Va bene duplicare informazioni di fatto in diverse tabelle di fatto.

degli oggetti che hai menzionato:

Il rimborso è un dato di fatto. Timestamp è la dimensione del fatto di rimborso.

La tassa di sottoscrizione è un dato di fatto. Timestamp è la dimensione del pagamento della tassa di sottoscrizione.

Un rimborso può succedere più di una volta. Immagino che ogni cliente abbia una tassa di abbonamento. Quindi sembra che abbiamo due tabelle di fatto finora, cliente e rimborso dei clienti.

Se sapessi che potesse esserci solo al massimo 3 rimborsi (come esempio), elimineresti la tabella dei fatto di rimborso del cliente e inserire 3 colonne di rimborso nella tabella dei clienti.

Si menziona anche l'assicurazione. Un cliente può avere più di una politica. Quindi abbiamo una terza tabella di fatto.

Un magazzino di dati è solitamente progettato utilizzando un schema a stella . Lo schema Star è fondamentalmente una tabella di fatto collegata a una o più tabelle di dimensione. Probabilmente avrai più di una stella in un data warehouse, dal momento che abbiamo già definito 3 tavoli fatti.

Altri suggerimenti

Mi rendo conto che sto rispondendo a un vecchio post, ma non sono soddisfatto di nessuna delle risposte fornite. Sento che né rispose la domanda.

Uno schema può avere uno o più fatti, ma questi fatti non sono collegati da alcuna relazione chiave. È la migliore pratica non aderire alle tabelle fatte in una singola query in quanto tu voglia di strattonare un database normalizzato / transazionale. A causa della natura di molti a molti unici, ecc. - I risultati sarebbero errati se tentati.

La risposta che stai cercando è che devi "perforare" il che fondamentalmente significa che stai interrogando ogni tabella di fatto (schema) separatamente e unendo i risultati. Ciò può verificarsi utilizzando SQL o preferibilmente tramite uno strumento di reporting / analytics che potrebbe aver fatto riferimento al data warehouse. Invece di duplicare le risposte su come fare questo, dirigerò tutti a due ottimi articoli:

Tre modi per praticare attraverso Chris Adamson

e

dovrebbe del magazzino - perforando attraverso Ralph Kimball

Puoi avere tutte le tabelle fatte come preferisci.Nel tuo esempio potresti avere qualcosa come:

 Fact_ins_Transaction

Dimproduct Elenca diversi prodotti - Abbonamento è uno di quelli. DimtransActionType Elencherebbero possibili transazioni (acquisto, rimborso, tassa di sottoscrizione ricorrente ...)

Ora supponiamo che tu sia interessato a segnalazione di sottoscrizione semplificata, è possibile aggiungere una Headsubscription come questa:

 fact_ins_subscription

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