Devo leggere una quantità enorme di dati di rete da vari file di registro e compilare informazioni rilevanti su tali dati per eseguire analisi statistiche su di esso (i principali comunicatori, gli indirizzi IP principali che inviano in media i pacchetti più grandi, media dimensione del pacchetto, ecc.) Ho deciso di creare una matrice in cui ogni indice nell'array esterno corrisponde a un elenco ordinato di IP in ordine incrementale.
Per avere un'idea del mio set di dati, ho un file di log che viene generato ogni giorno che contiene informazioni su tutte le comunicazioni avvenute all'interno di una rete quel giorno. Ho generato file di registro da metà maggio e ogni file di registro ha circa 5 milioni di righe ciascuno, quindi più efficiente è questo programma, meglio è.
La mia domanda è la seguente:
Quando sto compilando i dati di tutti i file di log in questa matrice, dovrei ordinare il mio array array esterno per IP mentre sto ancora assemblando i dati, o semplicemente aggiungo i nuovi IP alla fine del file come li trovo e poi ordinare l'elenco in seguito? C'è un'opzione migliore qui a cui non ho pensato? quale via sarebbe la più efficiente? Userò python 2.7, se questo fa la differenza. Inoltre, a causa delle restrizioni su ciò che posso fare, non posso installare alcun nuovo modulo sulla macchina su cui verrà eseguito questo codice, quindi a meno che non possa creare un database con python in modo nativo, non è disponibile opzione per me.