in

UGISS Community

Il sito della community dello User Group Italiano di SQL Server

GESTIONE STORICA PARTIZIONI

Last post 03-28-2008 16.03 by stecas. 2 replies.
Page 1 of 1 (3 items)
Sort Posts: Previous Next
  • 03-28-2008 14.35

    • stecas
    • Top 25 Contributor
    • Joined on 10-05-2007
    • Posts 27
    • Points 495

    GESTIONE STORICA PARTIZIONI

    Avrei bisogno di un aiuto per la valutazione di uno scenario che mi hanno prospettato e per il quale ho bisogno di un consiglio.

     

    Ho un DB relazione che mi viene reso disponibile in sola lettura per effettuare il popolamento di cubi OLAP che a cadenza regolare provvedo ad aggiornare.Le varie fact che mi vengono messe a disposizione, vengono realizzate ad hoc per l’aggiornamento.Ogni qualvolta che devo aggiornare i miei cubi le varie fact vengono asfaltate e ricreate con il dato aggiornato.Detto questo, mi viene richiesto di fornire una serie storica di questi aggiornamenti, ovvero rendere disponibile sulla base delle varie date di aggiornamento tutta una serie di aggiornamenti che sul DB non vengono salvate ma che teoricamente ho sul mio cubo se le memorizzassi ad ogni aggiornamento.Di fatto quando svolgo l’aggiornamento dei miei vari cubi modifico l’unica partizione all’interno del mio DB olap quindi fornendo in linea sempre l’ultimo aggiornamento disponibile dal mio db. Per conservare quindi queste informazioni in maniera storica pensavo di gestire la cosa conservando le varie partizioni ed aggiungendo ad ogni aggiornamento una partizione nuova con l’ultimo dato disponibile; successivamente procederò processando dimensioni e la nuova partizione.Successivamente a questa idea mi sono nate alcune domande quali ad esempio: ma se in partizioni mi trovo dei riferimenti a qualche valore che in dimensione non esiste più cosa succede a quei dati? Se dovessi modificare la struttura del mio DB olap, aggiungendo per esempio una misura nuova, ci sono ripercussioni sulle vecchie partizioni? Ho tralasciato qualche aspetto di una gestione simile a questa? Chiedo a voi un consiglio su come potrei gestire queste situazioni magari alla luce anche di esperienze che in passato avete già avuto.Mi sembra che l’argomento non sia particolarmente semplice da gestire, almeno ai miei occhi.Considerate sempre che non ho DB (intesi diversi da olap) su cui poter memorizzare informazioni storiche. Grazie,  Stefano.

     

    • Post Points: 20
  • 03-28-2008 15.40 In reply to

    Re: GESTIONE STORICA PARTIZIONI

    Non sottovalutare questo problema.

    Per fare *bene* quello di cui stai parlando dovresti:

    1) Avere un'area di staging dove fare l'analisi del dato in ingresso e derivare le fotografie dei dati "grezzi" da caricare

    2a) Opzionalmente, usare un data warehouse in metodologia InMon (anziché Kimball) per archiviare i dati rilevati

    2b) In alternativa, fare una tua tabella di storicizzazione del dato che altrimenti perderesti

    3) Alimentare lo star schema in metodologia Kimball da 2a o 2b, a seconda di quello che hai scelto

    4) Alimentare il cubo dallo star schema

    Può sembrare lungo, ma la cosa migliore da fare. Certo, costa un po' di spazio su disco, ma costa molto meno che risolvere tutti i casini che sorgono se provi qualche scorciatoia. Ricorda inoltre che le partizioni hanno una funzione di ottimizzazione, non possono essere usate con una funzione "logica" - prima ancora di pensare se funzionerebbe o no, so che è sbagliato da un punto di vista metodologico (banalmente - a fronte di un cambio di modello del cubo, le partizioni le butti via...).

    Spero di non scoraggiarti con questo... ma questo genere di cose va fatto prendendole dal punto di vista corretto, che è quello di pensare che è un lavoro molto, molto più impegnativo che non fare l'aggiornamento sui dati correnti e basta.

    Marco Russo
    http://www.sqlbi.eu
    http://blogs.devleap.com/marco
    http://sqlblog.com/blogs/marco_russo
    • Post Points: 20
  • 03-28-2008 16.03 In reply to

    • stecas
    • Top 25 Contributor
    • Joined on 10-05-2007
    • Posts 27
    • Points 495

    Re: GESTIONE STORICA PARTIZIONI

    Caro Marco, 

    mi fa "piacere" essere d'accordo con te, nel senso che queste cose le avevo fatte presente a chi mi ha richiesto uno studio di fattibilità (persona di alto livello quindi non troppo tecnica da porter subito dire che era abbastanza problematica).

    Il DB relazionale che intendevo dire, era appunto un DWH (non ti so dire se la metodologia è InMon piuttosto che Kimball) però come business unit di BI possiamo solamente leggerlo e non operare direttamente inoltre non abbiamo a disposizione lato nostro di così tanto storage da dedicare a memorizzare queste tabelle lette dai cubi.

    Non ci permettono la conservazione del dato in tabelle storiche (lato DWH) perchè non è necessario al DWH per sua natura e soprattutto non hanno storage da dedicare a questo discorso.

    Pensavo che ci fosse una possibilità non ancora valutata da me che potesse ovviare con qualche alchimia a questo discorso.

    Ti ringrazio comunque per i suggerimenti.

     

    • Post Points: 5
Page 1 of 1 (3 items)
(C) 2007 User Group Italiano di SQL Server