star gate Datawarehouse: riflessioni sull'ETL - Francesco Quaratino

Datawarehouse: riflessioni sull'ETL

Il fatto che con un package di SSIS ci si possa connettere  in modo quasi elementare a una qualsivoglia sorgente dati per estrarre un insieme di dati di interesse, non ci autorizza a farlo direttamente su database operazionali :)

In un ambiente cosiddetto Enterprise, è quasi impossibile conoscere con certezza l'ambiente operativo di un database. Di solito, la prima cosa che ci si chiede è se il database da cui dobbiamo cavare i dati, possa essere usato anche di notte. E se la risposta è "Sì", viene naturale pensare che la notte sia il periodo candidato per l'estrazione dei dati.

Occorre, però, tener presente che un database viene utilizzato non soltanto dagli utenti di questa o quell'altra applicazione, ma anche da procedure di manutenzione, batch vari, e per finire applicazioni che ignoriamo e di cui il cliente potrebbe aver perso letteralmente la memomoria.

Poi, c'è un problema di sicurezza che non è meno importante di quello prestazionale. E' bene evitare che il cliente ci dia accesso con una Login con i "super-poteri" (vedi "SA" o un utente windows del gruppo "Domain Admins"), accertandosi che l'utente SqlServer o Windows fornito per connettersi al database operazionale di turno, sia il più "povero" possibile in quanto a diritti: in fin dei conti ci basta un permesso di sola lettura (db_datareader congiuntamente a db_denydatawriter) sulle tabelle o le viste interessate, allo scopo di evitare di far danni irreversibili.

Un approccio migliore potrebbe essere quello di avere due procedure distinte (corrispondenti a due diversi package) nell'ambito del nostro ETL: una di estrazione e l'altra di trasformazione e caricamento, dove quella di estrazione si preoccupa unicamente di connettersi alle sorgenti dati, quindi leggere i dati di interesse e scaricarli in file di testo o di altro formato che fungeranno da sorgente al secondo package. Inoltre, se l'estrazione fosse realizzata e pianificata da chi all'interno dell'azienda meglio conosce l'ambiente operativo dei database sorgente, saremmo tutti più felici. In tal modo, siamo certi che quell'estrazione è "certificata" sia nei contenuti, sia nell'impatto prestazionale con le applicazioni concorrenti all'ETL.

Filed under: , ,

Comments

# marco.russo said:

Francesco, probabilmente già lo conosci - comunque noi usiamo SqlBulkTool (www.sqlbi.eu/sqlbulktool.aspx) per fare quello che dici (scaricare i dati OLTP in una staging) con prestazioni superiori a DTS/SSIS e manutenzione decisamente semplificata, senza passare per un file di testo. Dopo più di un anno d'uso in produzione è possibile dire che è un modo ottimale di lavorare con grossi volumi di dati.

giovedì 7 giugno 2007 13.14
# sgainz said:

Ciao Marco, grazie per la segnalazione e soprattutto per il feedback basato sulla tua esperienza sul campo.

giovedì 7 giugno 2007 14.01