[Python] Leggere file stream

2016-12-07 Per discussione Lorenzo Mainardi
Buongiorno a tutti, scrivo per chiedere un consiglio alla lista.
Ho un processo che mi genera un file di log molto grande (un paio di Giga
al giorno, circa 10 righe). Vorrei parsare il file in tempo reale riga
per riga e poi inserire i dati in un DB.
Come posso fare? Ho letto un po' di documentazione del modulo io nella
libreria standard, ma non so se è lo strumento adatto.

Vorrei evitare cose complicate tipo logstash (un divorato di memoria)
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Leggere file stream

2016-12-07 Per discussione Ernesto Arbitrio
Potresti provare con crossbar.io
E.

On Dec 7, 2016 10:37 AM, "Lorenzo Mainardi"  wrote:

Buongiorno a tutti, scrivo per chiedere un consiglio alla lista.
Ho un processo che mi genera un file di log molto grande (un paio di Giga
al giorno, circa 10 righe). Vorrei parsare il file in tempo reale riga
per riga e poi inserire i dati in un DB.
Come posso fare? Ho letto un po' di documentazione del modulo io nella
libreria standard, ma non so se è lo strumento adatto.

Vorrei evitare cose complicate tipo logstash (un divorato di memoria)

___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Leggere file stream

2016-12-07 Per discussione Esalando Prassi
2016-12-07 10:37 GMT+01:00 Lorenzo Mainardi :
> Buongiorno a tutti, scrivo per chiedere un consiglio alla lista.
> Ho un processo che mi genera un file di log molto grande (un paio di Giga al
> giorno, circa 10 righe). Vorrei parsare il file in tempo reale riga per
> riga e poi inserire i dati in un DB.
> Come posso fare? Ho letto un po' di documentazione del modulo io nella
> libreria standard, ma non so se è lo strumento adatto.
>
> Vorrei evitare cose complicate tipo logstash (un divorato di memoria)
>

Tempo fa ho tentato l'approccio di loggare su rsyslog per poi
reindirizzare le righe di log su postgres:

- http://www.rsyslog.com/doc/v8-stable/tutorials/database.html

Il caso d'uso potrebbe essere esattamente il tuo e potresti trovarti
gia' la pappa pronta.

Dovessi rifarlo eviterei e (qualora concesso dall'applcazione)
scriverei direttamente sul DB.

Ciao
-- 
http://alepisa.blogspot.com
Esalando Prassi
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Leggere file stream

2016-12-07 Per discussione Lorenzo Mainardi
>
>
> Dovessi rifarlo eviterei e (qualora concesso dall'applcazione)
> scriverei direttamente sul DB.
>

L'applicazione (un server Radius) scrive già su un DB, ma non è più
gestibile: tutte le volte che devo fare una manutenzione sulla tabella (ad
esempio cancellando i record più vecchi di X) mi ritrovo l'applicazione
bloccata.

Volevo fare in modo di disaccoppiare il log e il DB.


-- 
LORENZO MAINARDI
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Leggere file stream

2016-12-07 Per discussione Marco De Paoli
Il giorno 7 dicembre 2016 12:00, Lorenzo Mainardi  ha
scritto:

>
>> Dovessi rifarlo eviterei e (qualora concesso dall'applcazione)
>> scriverei direttamente sul DB.
>>
>
> L'applicazione (un server Radius) scrive già su un DB, ma non è più
> gestibile: tutte le volte che devo fare una manutenzione sulla tabella (ad
> esempio cancellando i record più vecchi di X) mi ritrovo l'applicazione
> bloccata.
>

su che DB sei?

su PG potresti valutare
https://wiki.postgresql.org/wiki/Table_partitioning

con l'uso delle partizioni puoi praticamente "fare a fette" la tabella
nel tuo caso potrebbe essere sulla base di range di data (es. per mese)
poi elimini le partizioni in tempo minimo

Marco
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Leggere file stream

2016-12-07 Per discussione Lorenzo Mainardi
>
> Message: 3
> Date: Tue, 6 Dec 2016 18:05:31 +0100
> From: Carlo Miron 
> To: Discussioni generali sul linguaggio Python
>
>
> Potresti provare con crossbar.io
> E.
>

Non posso, sono dati sensibili e riservati.

-- 
LORENZO MAINARDI
http://blog.mainardi.me
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Leggere file stream

2016-12-07 Per discussione Ernesto Arbitrio
Ma crossbar puoi anche installarlo sui tuoi server.

On Dec 7, 2016 1:12 PM, "Lorenzo Mainardi"  wrote:

> Message: 3
>> Date: Tue, 6 Dec 2016 18:05:31 +0100
>> From: Carlo Miron 
>> To: Discussioni generali sul linguaggio Python
>>
>>
>> Potresti provare con crossbar.io
>> E.
>>
>
> Non posso, sono dati sensibili e riservati.
>
> --
> LORENZO MAINARDI
> http://blog.mainardi.me
>
> ___
> Python mailing list
> Python@lists.python.it
> http://lists.python.it/mailman/listinfo/python
>
>
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Leggere file stream

2016-12-07 Per discussione Roberto Polli
Il 7 dicembre 2016 11:38, Esalando Prassi
 ha scritto:
>... loggare su rsyslog per poi
> reindirizzare le righe di log su postgres:
> ..eviterei..
Perché?

Usando un log collector hai
 -  un buffer per quando il db è giù.
 -  componenti separate.
 -  scalabilità

Puoi inoltre cambiare soluzione in corsa.

Pax,
R.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Leggere file stream

2016-12-07 Per discussione Esalando Prassi
2016-12-07 14:02 GMT+01:00 Roberto Polli :
> Il 7 dicembre 2016 11:38, Esalando Prassi
>  ha scritto:
>>... loggare su rsyslog per poi
>> reindirizzare le righe di log su postgres:
>> ..eviterei..
> Perché?
>
> Usando un log collector hai
>  -  un buffer per quando il db è giù.
>  -  componenti separate.
>  -  scalabilità
>

Ho pensato lo stesso quando ho utilizzato l'approccio rsyslog + db, ma
quando mi sono trovato i dati sul db mi sono reso conto che quelli nei
logfile erano solo rumore :)
Dipende sempre dall'applicazione e come e' stata disegnata (nel bene e
nel male).

Ciao.
-- 
http://alepisa.blogspot.com
Esalando Prassi
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Leggere file stream

2016-12-07 Per discussione Manlio Perillo
2016-12-07 10:37 GMT+01:00 Lorenzo Mainardi :
> Buongiorno a tutti, scrivo per chiedere un consiglio alla lista.
> Ho un processo che mi genera un file di log molto grande (un paio di Giga al
> giorno, circa 10 righe).

Scrive sempre sullo stesso file, che quindi cresce indefinitivamente?

> Vorrei parsare il file in tempo reale riga per
> riga e poi inserire i dati in un DB.
> Come posso fare?

Non mi sembra troppo complesso, cosa hai provato a fare?

> Ho letto un po' di documentazione del modulo io nella
> libreria standard, ma non so se è lo strumento adatto.
>

Non ti basta leggere il file linea per linea, parsare (eventualmente)
i dati e inviarli tramite un INSERT nel database?

Ciao  Manlio
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Leggere file stream

2016-12-07 Per discussione Lorenzo Mainardi
>
> Message: 7
> Date: Wed, 7 Dec 2016 16:02:10 +0100
> From: Manlio Perillo 
>
> Scrive sempre sullo stesso file, che quindi cresce indefinitivamente?
>

Sì, lo posso ruotare ogni ora od ogni giorno (a seconda di come mi fa
comodo).



>
> > Vorrei parsare il file in tempo reale riga per
> > riga e poi inserire i dati in un DB.
> > Come posso fare?
>
> Non mi sembra troppo complesso, cosa hai provato a fare?
>


Per ora niente, volevo capire se con python potevo "seguire" un file per
poi parsarle. Le linee sono raggruppate per ogni autenticazione e separate
da una linea bianca. Dovrò quindi aggregarle per ogni autenticazione,
infilarle in un dizionario, fare delle elaborazioni e buttarle nel DB.


>
> > Ho letto un po' di documentazione del modulo io nella
> > libreria standard, ma non so se è lo strumento adatto.
> >
>
> Non ti basta leggere il file linea per linea, parsare (eventualmente)
> i dati e inviarli tramite un INSERT nel database?
>

La mia unica paura è che non ce la possa fare a stargli dietro (il file è
circa 1 milione di righe al giorno).


-- 
LORENZO MAINARDI
http://blog.mainardi.me
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Leggere file stream

2016-12-07 Per discussione Roberto Polli
Il 7 dicembre 2016 15:06, Esalando Prassi
 ha scritto:
> quando mi sono trovato i dati sul db mi sono reso conto che quelli nei
> logfile erano solo rumore :)

Buttali dopo il parsing ;)

Io uso quasi sempre collector esterni per fare il gioco.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Leggere file stream

2016-12-07 Per discussione Esalando Prassi
2016-12-07 17:17 GMT+01:00 Lorenzo Mainardi :
>> Message: 7
>> Date: Wed, 7 Dec 2016 16:02:10 +0100
>> From: Manlio Perillo 
>>
>> Scrive sempre sullo stesso file, che quindi cresce indefinitivamente?
>
>
> Sì, lo posso ruotare ogni ora od ogni giorno (a seconda di come mi fa
> comodo).
>

Se sei risposto a rinunciare alla specifica iniziale ("in tempo
reale") puoi usare script di pre o post rotate.
-- 
http://alepisa.blogspot.com
Esalando Prassi
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Leggere file stream

2016-12-07 Per discussione Manlio Perillo
2016-12-07 17:17 GMT+01:00 Lorenzo Mainardi :
>> Message: 7
>> Date: Wed, 7 Dec 2016 16:02:10 +0100
>> From: Manlio Perillo 
>>
>> Scrive sempre sullo stesso file, che quindi cresce indefinitivamente?
>
>
> Sì, lo posso ruotare ogni ora od ogni giorno (a seconda di come mi fa
> comodo).
>

In questo caso puoi fare quello che fa `tail -f`.

Una veloce ricerca con "python read logfile realtime" produce:
http://stackoverflow.com/questions/3290292/read-from-a-log-file-as-its-being-written-using-python
http://stackoverflow.com/questions/11908919/python-parsing-log-file-to-extract-events-in-real-time

>
>>
>>
>> > Vorrei parsare il file in tempo reale riga per
>> > riga e poi inserire i dati in un DB.
>> > Come posso fare?
>>
>> Non mi sembra troppo complesso, cosa hai provato a fare?
>
>
>
> Per ora niente, volevo capire se con python potevo "seguire" un file per poi
> parsarle.

Come detto, "seguire" un file in tempo reale non è un problema.

> Le linee sono raggruppate per ogni autenticazione e separate da
> una linea bianca. Dovrò quindi aggregarle per ogni autenticazione, infilarle
> in un dizionario, fare delle elaborazioni e buttarle nel DB.
>
>>
>>
>> > Ho letto un po' di documentazione del modulo io nella
>> > libreria standard, ma non so se è lo strumento adatto.
>> >
>>
>> Non ti basta leggere il file linea per linea, parsare (eventualmente)
>> i dati e inviarli tramite un INSERT nel database?
>
>
> La mia unica paura è che non ce la possa fare a stargli dietro (il file è
> circa 1 milione di righe al giorno).
>

Il collo di bottiglia dovrebbe essere l'I/O, in particolare il
database, quindi se non riesci a stargli dietro in Python
probabilmente non ci riuscirai nemmeno se riscrivi il programma in C.
Ma con una semplice bozza dovresti capire se la cosa è fattibile.

Che database devi usare?


Ciao  Manlio
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Leggere file stream

2016-12-07 Per discussione salvatore monaco
Ciao ,
non ho letto tutto quanto ma ad occhio e croce dovresti usare gli strumenti
che il sistema operativo
ti mette a disposizione per il logging.

ruota i log, file da 1G non hanno tantissimo senso, processo il file che
non ha in append imput
sarà più agile per la memoria della macchina.

e invece che mandare su un db tipo relazionale usare db nosql tipo mongoDB
o strumenti tipo

ELKhttps://www.elastic.co/

Ciao

Io faccio cosi... e funziona abbastanza bene



Il giorno 7 dicembre 2016 19:43, Manlio Perillo 
ha scritto:

> 2016-12-07 17:17 GMT+01:00 Lorenzo Mainardi :
> >> Message: 7
> >> Date: Wed, 7 Dec 2016 16:02:10 +0100
> >> From: Manlio Perillo 
> >>
> >> Scrive sempre sullo stesso file, che quindi cresce indefinitivamente?
> >
> >
> > Sì, lo posso ruotare ogni ora od ogni giorno (a seconda di come mi fa
> > comodo).
> >
>
> In questo caso puoi fare quello che fa `tail -f`.
>
> Una veloce ricerca con "python read logfile realtime" produce:
> http://stackoverflow.com/questions/3290292/read-from-a-
> log-file-as-its-being-written-using-python
> http://stackoverflow.com/questions/11908919/python-
> parsing-log-file-to-extract-events-in-real-time
>
> >
> >>
> >>
> >> > Vorrei parsare il file in tempo reale riga per
> >> > riga e poi inserire i dati in un DB.
> >> > Come posso fare?
> >>
> >> Non mi sembra troppo complesso, cosa hai provato a fare?
> >
> >
> >
> > Per ora niente, volevo capire se con python potevo "seguire" un file per
> poi
> > parsarle.
>
> Come detto, "seguire" un file in tempo reale non è un problema.
>
> > Le linee sono raggruppate per ogni autenticazione e separate da
> > una linea bianca. Dovrò quindi aggregarle per ogni autenticazione,
> infilarle
> > in un dizionario, fare delle elaborazioni e buttarle nel DB.
> >
> >>
> >>
> >> > Ho letto un po' di documentazione del modulo io nella
> >> > libreria standard, ma non so se è lo strumento adatto.
> >> >
> >>
> >> Non ti basta leggere il file linea per linea, parsare (eventualmente)
> >> i dati e inviarli tramite un INSERT nel database?
> >
> >
> > La mia unica paura è che non ce la possa fare a stargli dietro (il file è
> > circa 1 milione di righe al giorno).
> >
>
> Il collo di bottiglia dovrebbe essere l'I/O, in particolare il
> database, quindi se non riesci a stargli dietro in Python
> probabilmente non ci riuscirai nemmeno se riscrivi il programma in C.
> Ma con una semplice bozza dovresti capire se la cosa è fattibile.
>
> Che database devi usare?
>
>
> Ciao  Manlio
> ___
> Python mailing list
> Python@lists.python.it
> http://lists.python.it/mailman/listinfo/python
>



-- 
@salvatoremonaco
http://blog.smitsolution.net
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Leggere file stream

2016-12-07 Per discussione salvatore monaco
link

https://dzone.com/articles/how-setup-realtime-alalytics

Il giorno 7 dicembre 2016 21:02, salvatore monaco <
salvatore.mon...@gmail.com> ha scritto:

> Ciao ,
> non ho letto tutto quanto ma ad occhio e croce dovresti usare gli
> strumenti che il sistema operativo
> ti mette a disposizione per il logging.
>
> ruota i log, file da 1G non hanno tantissimo senso, processo il file che
> non ha in append imput
> sarà più agile per la memoria della macchina.
>
> e invece che mandare su un db tipo relazionale usare db nosql tipo mongoDB
> o strumenti tipo
>
> ELKhttps://www.elastic.co/
>
> Ciao
>
> Io faccio cosi... e funziona abbastanza bene
>
>
>
> Il giorno 7 dicembre 2016 19:43, Manlio Perillo 
> ha scritto:
>
>> 2016-12-07 17:17 GMT+01:00 Lorenzo Mainardi :
>> >> Message: 7
>> >> Date: Wed, 7 Dec 2016 16:02:10 +0100
>> >> From: Manlio Perillo 
>> >>
>> >> Scrive sempre sullo stesso file, che quindi cresce indefinitivamente?
>> >
>> >
>> > Sì, lo posso ruotare ogni ora od ogni giorno (a seconda di come mi fa
>> > comodo).
>> >
>>
>> In questo caso puoi fare quello che fa `tail -f`.
>>
>> Una veloce ricerca con "python read logfile realtime" produce:
>> http://stackoverflow.com/questions/3290292/read-from-a-log-
>> file-as-its-being-written-using-python
>> http://stackoverflow.com/questions/11908919/python-parsing-
>> log-file-to-extract-events-in-real-time
>>
>> >
>> >>
>> >>
>> >> > Vorrei parsare il file in tempo reale riga per
>> >> > riga e poi inserire i dati in un DB.
>> >> > Come posso fare?
>> >>
>> >> Non mi sembra troppo complesso, cosa hai provato a fare?
>> >
>> >
>> >
>> > Per ora niente, volevo capire se con python potevo "seguire" un file
>> per poi
>> > parsarle.
>>
>> Come detto, "seguire" un file in tempo reale non è un problema.
>>
>> > Le linee sono raggruppate per ogni autenticazione e separate da
>> > una linea bianca. Dovrò quindi aggregarle per ogni autenticazione,
>> infilarle
>> > in un dizionario, fare delle elaborazioni e buttarle nel DB.
>> >
>> >>
>> >>
>> >> > Ho letto un po' di documentazione del modulo io nella
>> >> > libreria standard, ma non so se è lo strumento adatto.
>> >> >
>> >>
>> >> Non ti basta leggere il file linea per linea, parsare (eventualmente)
>> >> i dati e inviarli tramite un INSERT nel database?
>> >
>> >
>> > La mia unica paura è che non ce la possa fare a stargli dietro (il file
>> è
>> > circa 1 milione di righe al giorno).
>> >
>>
>> Il collo di bottiglia dovrebbe essere l'I/O, in particolare il
>> database, quindi se non riesci a stargli dietro in Python
>> probabilmente non ci riuscirai nemmeno se riscrivi il programma in C.
>> Ma con una semplice bozza dovresti capire se la cosa è fattibile.
>>
>> Che database devi usare?
>>
>>
>> Ciao  Manlio
>> ___
>> Python mailing list
>> Python@lists.python.it
>> http://lists.python.it/mailman/listinfo/python
>>
>
>
>
> --
> @salvatoremonaco
> http://blog.smitsolution.net
>



-- 
@salvatoremonaco
http://blog.smitsolution.net
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Leggere file stream

2016-12-07 Per discussione m

* Lorenzo Mainardi (lorma...@gmail.com) [161207 10:37]:


Vorrei evitare cose complicate tipo logstash (un divorato di memoria) 


abbisogna mi amore, ma un amico di cui mi fido usò con soddisfazione
https://github.com/python-beaver/python-beaver

e logstash / elasticsearch e le loro pacate richieste di risorse li
metti su un server dedicato (che avresti comunque, se ho capito il tuo
caso)

--
  .*.finelli
  /V\
 (/ \) --
 (   )   Linux: Friends dont let friends use Piccolosoffice
 ^^-^^ --

"Life, loathe it or ignore it, you can't like it."
-- Marvin, "Hitchhiker's Guide to the Galaxy"
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


[Python] OT: linguaggi come persone

2016-12-07 Per discussione Fundor333
Un artista trasforma i vari linguaggi di programmazione in persone.
Molto simpatico e ben caratterizzati

http://leftoversalad.com/c/015_programmingpeople/
-- 
Fundor333 
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


[Python] [OT] tmux e prefix key su mac

2016-12-07 Per discussione Karim
Ciao a tutti, non so se voi usate tmux da iTerm2 come faccio, ma a me
scassa parecchio le palle usare il prefix `ctrl+a+KEY` per qualsiasi cosa.
Abituato ad usare i3wm trovo molto piu' pratico usare `ALT+KEY`.

L'unico modo per farlo sembra usando un modificatore del terminale e non
nelle configurazioni di tmux.

Per Mac sono riuscito nel mio intento usando `Karabiner`.

Qui la mia configurazione che remappa ALT+KEY per mandare a iTerm
CTRL+a+KEY. Non e' possibile farlo "universalmente" ogni mappatura di tmux
deve essere rimappata.

Spero possa essere utile a qualcuno perche' io ci ho perso un po' di tempo
a trovare la configurazione giusta.

https://github.com/karimone/puntofiles/blob/master/Karabiner/private.xml


​Ciao​


-- 
Karim N. Gorjux
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python