Il mio sistema sta importando i dati da un certo numero di fonti esterne su base notturna in tabelle di staging nel mio DB locale. Il processo esegue il backup della tabella pertinente (copiando tutti i dati in una tabella di replica con un nome speciale per indicare che si tratta di una tabella di backup), cancella la tabella, quindi importa i dati dalle origini. Se il processo di importazione non riesce, ripristina semplicemente i dati dalla tabella di backup.
Il motivo per il backup delle tabelle di staging è perché se il lavoro fallisce, preferiremmo vedere i dati che sono un giorno o più vecchi di non avere dati fino a quando non viene corretto il motivo dell'errore. Esiste una sola tabella di backup per tabella di staging critica e, con il backup successivo, il backup precedente viene cancellato.
Il problema con questo approccio è che il numero di "tabelle di backup" sta crescendo in modo significativo man mano che il sistema si espande. Stavo pensando di cancellare la tabella di backup dopo che il lavoro è riuscito, ma questa è una buona pratica? (eliminazione e ricreazione ogni notte)
Un altro motivo per mantenere la tabella di backup sarebbe, se il lavoro è riuscito, ma i dati sono disallineati in qualche modo, qualcosa che verrà raccolto solo una volta che il giorno lavorativo inizia il mattino successivo, la tabella di backup può darti l'opportunità di torna rapidamente alla versione precedente all'importazione danneggiata.
L'intero approccio non sembra giusto, e mi chiedo se ci siano approcci migliori a questo progetto.
Il sistema utilizza MS SQL Server 2012, ma ci è concesso pochissimo in termini di strumenti e attività di amministrazione del server.