Domanda

Mi chiedo come offerte SSIS con operazioni con grandi insiemi di dati. Ho un insieme di dati di grandi dimensioni '' set di circa 150.000 righe, ognuna delle quali deve essere convalidata contro le regole di business come parte di un ETL da un database di gestione temporanea per il database attivo.

Se uno dei dischi falliscono le loro regole di business, nessun record dovrebbero finire nel database attivo (vale a dire rollback della transazione).

La mia domanda è come SSIS gestisce grandi operazioni - o può? Sarà gestire entrare 149.999 record poi rotolare il tutto indietro se l'ultimo record non le sue regole busiless? O c'è una migliore best practice per l'esecuzione di questo tipo di grande operazione di trasferimento dei dati?

Il mio pensiero attuale è quella di elaborare ogni record all'interno di un contenitore di sequenza a livello di flusso di controllo, con le impostazioni transcation abilitati sul contenitore. Tutte le convalide saranno fatti all'interno del contenitore di sequenza, e l'inserto saranno anche essere fatto in questo contenitore.

È stato utile?

Soluzione

SSIS in grado di gestire le transazioni ragionevolmente bene. Dove cade verso il basso sta avendo le operazioni contro più DB o server che utilizzano MSDTC (funziona ancora, ma ci sono alcuni avvertimenti).

È possibile impostare il TransactionOption sul compito Flusso di dati da richiedere. Questo costringerà SSIS di iscriversi in una transazione. Allo stesso modo, si può mettere la TransactionOption di altri compiti da NotSupported (ad esempio tavolo lo stato di aggiornamento di fallire se non riesce).

Non si può effettivamente elaborare ogni record all'interno di un contenitore di sequenza (a meno che non loop su un'attività flusso di dati più volte che probabilmente non è il modo migliore). Invece, avevo messo il flusso di dati per TransactionOption bisogno, e allora dovrebbe fallire l'attività se tutti i record non riescono nel vostro flusso di dati e rollback l'intera transazione.

Altri suggerimenti

Sono d'accordo con Dane, SSIS e SQL server non dovrebbero avere problemi con questa quantità di transazioni condizione che vi sia un'infrastruttura adeguata per sostenere questo.

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