Risolvere i cattivi dati in un database: ripristina o incrementale

3

Ho la pseudo-proprietà di un db abbastanza vecchio (dati originali di 30 anni fa, il design attuale è > 15 anni). A mio parere, lo schema è piuttosto rotto e una delle implicazioni di questo è che ci sono molte incongruenze / problemi con i dati. Sto pianificando di scrivere un nuovo schema e trasferire i dati, operazione abbastanza semplice dato che raramente arrivano nuovi dati.

Vorresti prima tentare di correggere le incoerenze nel vecchio database o stenderle come parte del processo di migrazione? Sono tentato di andare con quest'ultimo - dal momento che avrò bisogno di una validazione adeguata in ogni caso, e alcuni errori appariranno in modo naturale con il design dello schema diverso - ma prima sistemare i dati suddividerebbe l'attività in blocchi più piccoli e consentirebbe alle persone che hanno familiarità con vecchio db per convalidare le correzioni.

Pensieri?

    
posta james.haggerty 31.10.2014 - 02:18
fonte

1 risposta

5

La tua ultima strategia è probabilmente la scelta migliore. Sarà difficile trovare tutti i problemi nei dati mentre è ancora nel suo formato attuale.

Tratterei questo di un processo ETL, combinato con un approccio iterativo. Qualcosa del genere:

  1. Crea una versione beta dello schema.
  2. Scrivere un programma per leggere i vecchi dati, scrub / trasformarli e infine caricarli nel nuovo schema. Registra eventuali nuovi e inaspettati problemi con i dati che la logica di trasformazione / trasformazione del tuo programma e / o lo schema non possono gestire.
  3. Rivedi i problemi rilevati nel passaggio 2 e modifica lo schema e / o il programma ETL.
  4. Elimina tutti i dati salvati
  5. Esegui il programma revisionato sullo schema revisionato.
  6. Rilasciare il risciacquo, quindi ripetere finché gli esperti di dati non si sentono a proprio agio con la progettazione dello schema e i dati trasformati. Sposta i dati in produzione.

Modifica

Se gli esperti di dati sono preoccupati di ciò che accadrà durante il processo di trasformazione, fai uno sforzo extra per mantenere un dialogo aperto con loro riguardo a ciò che stai vedendo nei dati e come vogliono che tu lo gestisca.

Questo processo sarà probabilmente un ottimo modo per chiarire quali sono le regole e la logica aziendale per i dati. Poiché il programma di caricamento tenta di confermare i dati con queste regole, potrebbe rilevare problemi con i dati che nessuno sapeva esistessero. Può anche scoprire scenari precedentemente sconosciuti che richiedono nuove regole. Il risultato finale è sia dati migliori che una migliore comprensione di ciò che può dirti.

    
risposta data 31.10.2014 - 02:47
fonte

Leggi altre domande sui tag