<div dir="ltr">Il giorno 31 marzo 2013 22:02, Manlio Perillo <span dir="ltr"><<a href="mailto:manlio.perillo@gmail.com" target="_blank">manlio.perillo@gmail.com</a>></span> ha scritto:<br><div class="gmail_extra"><div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im"><br></div>Ok.<br>
Allora andiamo con ordine.<br>
Che database usi?<br>
Quanto tempo impiega il tuo codice, e quanto tempo vorresti impiegasse?<br>
<br>
Ciascun file CSV e vista ODBC serve per inserire i dati in una tabella<br>
diversa?<br></blockquote><div><br></div><div style>I dati dei CSV e le viste ODBC servono, dopo opportune bonifiche (spazi superflui, caratteri speciali, valori numerici trasformati in valori testuali, etc), per compilare diverse tabelle diverse. Si tratta di anagrafiche di prodotti, che hanno logiche di gestione diverse, con disponibilità e prezzi variabili anche più volte al giorno. Questi dati vengono poi consultati su un database MySQL, ma qui non ho nessun vincolo, potrei usare anche altro. Le origini dei dati non sono fisicamente sulla macchina dove risiedono script in Python e database MySQL.</div>
<div style><br></div><div style>Attualmente il tempo di importazione è di 4 ore o poco meno. Voglio ridurre il tempo, ma non so fino a quanto posso arrivare. Tutto è nato perchè ho notato che 3 core su 4 dormono i sonni dei giusti mentre l'altro corse lavora come un pazzo e quindi vorrei impegnare la CPU per ridurre questi tempi.</div>
<div><br></div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im"><span style="color:rgb(34,34,34)">Supponi che ciascun file CSV contenga i dati da inserire in una sola</span><br>
</div>
tabella.<br>
Invece di processare ciascun file CSV in seguenza, puoi farlo in<br>
parallelo usando un processo separato.<br>
<br>
Ciascun processo si occuperà di:<br>
- - aprire il file CSV<br>
- - aprire una connessione al database<br>
- - fare il parsing del file CSV<br>
- - inserire i dati nel database<br>
<br>
<br>
Dai una occhiata alla documentazione del modulo multiprocessing,<br>
disponibile da Python 2.6.<br></blockquote><div><br></div><div style>Non è la base di partenza che ho, cioè non ho CSV tutti uguali da importare in processi separati, ma ho capito esattamente il tuo suggerimento.<br></div>
<div style><br></div><div style>Ancora grazie mille delle risposte e dell'attenzione.</div></div></div></div>