Ho un file CSV con alcuni dati di transazione. Diciamo data, volume, prezzo e direzione (vendere / acquistare). Inoltre c'è un ID per ogni transazione e su ogni transazione di chiusura (quella più recente) c'è un riferimento alla transazione corrispondente. Riferimenti classici al database.
Ora voglio fare delle statistiche e disegnare delle trame. Questo potrebbe essere fatto tramite Octave, LaTeX / TikZ, Gnuplot o qualsiasi altra cosa. Per fare questo ho bisogno sia di comprare che di vendere il prezzo in una riga. Il mio pensiero era di pre-elaborare il CSV per ottenere un altro CSV contenente le informazioni necessarie e poi per fare le statistiche. Alla fine mi piacerebbe avere una soluzione basata su script e non su un foglio di calcolo in quanto i dati potrebbero cambiare spesso (esportati dal DB online).
La mia soluzione reale (vedi http://paste.ubuntu.com/6262822/ ) è uno script bash che analizza il CSV riga per riga e verifica se esiste una transazione corrispondente. Se trovato, una nuova riga viene scritta nel CSV di destinazione. Se non viene stampato un avvertimento.
Le cattive notizie: per ogni riga del file sorgente devo leggere l'intero file alcune volte. Ciò causa lunghi tempi di esecuzione di 10 secondi per 300 linee. Dato che il numero di riga potrebbe aumentare presto (& gt; 10k linee), questo non è perfetto. Sono consapevole che ci sono molte shell da aprire nello script che potrebbero causare problemi di prestazioni.
Ora le mie domande:
- Bash / awk / sed / .... un buon modo per fare le cose?
- Dovrei prima importare tutti i dati in un database locale "reale" per usare SQL?
- C'è un modo semplice per ottenere i risultati desiderati?