Memorizzare dati in modo continuo su un server, come?

84 views
Skip to first unread message

mfortini

unread,
May 23, 2013, 5:48:36 PM5/23/13
to spaghett...@googlegroups.com
Ciao, è da un po' di giorni che sbatto la testa sul problema, e ho pensato a questo punto di chiedere a voi:
ho da poco installato dei pannelli fotovoltaici sul tetto, e ho preso uno strumento carino per leggere la produzione e il consumo di energia. Dopo aver trovato il modo di leggere i dati in rete, li volevo memorizzare in un DB sul mio server VPS.
Esclusi i DB tradizionali, più perché avrei voluto provare qualche sistema più "moderno", ho installato CKAN sul mio server. Dopo vari tentativi, mi sembra di aver capito che CKAN vada bene per caricare interi dataset, ma non fornisca sistemi per aggiungere/aggiornare/eliminare record.
Cosa usereste come database, in modo che in linea di massima:
- abbia un'API RESTful che possa essere usata senza dover aprire porte strane
- sia leggibile dagli strumenti più comuni, come Python, R, ...
- abbia magari già dei visualizzatori web fatti o comunque interagisca con altri sistemi (come CKAN)

Cosm, ora Xively, fa una cosa simile, ma avrei preferito un sistema open.

Grazie,
Matteo

Paolo Mainardi

unread,
May 23, 2013, 6:40:35 PM5/23/13
to spaghett...@googlegroups.com

Mongodb potrebbe essere la soluzione.

--
Hai ricevuto questo messaggio perché sei iscritto al gruppo "Spaghetti Open Data" di Google Gruppi.
Per annullare l'iscrizione a questo gruppo e non ricevere più i suoi messaggi, invia un'email a spaghettiopend...@googlegroups.com.
Visita questo gruppo all'indirizzo http://groups.google.com/group/spaghettiopendata?hl=it.
Per ulteriori opzioni, visita https://groups.google.com/groups/opt_out.
 
 

Gianluca Sforna

unread,
May 23, 2013, 6:59:12 PM5/23/13
to spaghett...@googlegroups.com
2013/5/23 mfortini <matteo....@gmail.com>:
> Cosm, ora Xively, fa una cosa simile, ma avrei preferito un sistema open.

Forse http://graphite.wikidot.com/ fa al caso tuo


--
Gianluca Sforna

http://morefedora.blogspot.com
http://identi.ca/giallu - http://twitter.com/giallu

Simone Cortesi

unread,
May 24, 2013, 3:29:30 AM5/24/13
to spaghett...@googlegroups.com

2013/5/23 mfortini <matteo....@gmail.com>

Cosm, ora Xively, fa una cosa simile, ma avrei preferito un sistema open.

inoltre, adesso limitano le letture a 30 giorni, passati i quali perti tutto lo storico...


--
-S

G. Allegri

unread,
May 24, 2013, 4:24:19 AM5/24/13
to spaghett...@googlegroups.com

Anch'io, recentemente, mi sono messo alla ricerca di soluzioni simili. Di servizi tipo IaaS ce ne sono a bizzeffe, ma costano tutti un bel po'.
L'unica soluzione open più vicina alle mie necessità (del tutto simili alle tue) è MongoDB. Anche CouchDB si avvicina.
Sarebbe utile riuscire a raccogliere le diverse soluzioni, perché credo sarà sempre più richiesto...

Giovanni

Sent from Nexus

--

Simone Cortesi

unread,
May 24, 2013, 5:01:45 AM5/24/13
to spaghett...@googlegroups.com

2013/5/23 mfortini <matteo....@gmail.com>

eliminare record.
Cosa usereste come database, in modo che in linea di massima:
- abbia un'API RESTful che possa essere usata senza dover aprire porte strane
- sia leggibile dagli strumenti più comuni, come Python, R, ...
- abbia magari già dei visualizzatori web fatti o comunque interagisca con altri sistemi (come CKAN)

Cosm, ora Xively, fa una cosa simile, ma avrei preferito un sistema open.

questo potrebbe essere una alternativa: https://github.com/LaboCitoyen/thingstream

se lo provi, facci sapere, interessa anche a me.

avevo un po' di feed pubblici, ma adesso sono inservibili, poiche' non tengono piu' di 30 giorni e non puoi modificare i grafici: https://xively.com/feeds/58382

--
-S

Rocco Pellegrini

unread,
May 24, 2013, 5:06:00 AM5/24/13
to spaghett...@googlegroups.com
Per questo tipo di cose a mio avviso Redis http://redis.io/ è eccellente. Ma anche Mongodb va benissimo.


2013/5/24 Simone Cortesi <sim...@cortesi.com>

--
Hai ricevuto questo messaggio perché sei iscritto al gruppo "Spaghetti Open Data" di Google Gruppi.
Per annullare l'iscrizione a questo gruppo e non ricevere più i suoi messaggi, invia un'email a spaghettiopend...@googlegroups.com.
Visita questo gruppo all'indirizzo http://groups.google.com/group/spaghettiopendata?hl=it.
Per ulteriori opzioni, visita https://groups.google.com/groups/opt_out.
 
 



--
Leggi e scrivi su Agoravox.it
sito: http://www.mediasenzamediatori.org/
blog condiviso: http://www.mediasenzamediatori.org/weblog/
blog personale: http://roccopellegrini.blogspot.com
gruppo: http://groups.google.com/group/Mediasenzamediatori-Perugia
twitterme: http://twitter.com/roccopellegrini
skype: rocco.pellegrini1
yahoo id: pellegrini.rocco

Simone Cortesi

unread,
May 24, 2013, 5:09:24 AM5/24/13
to spaghett...@googlegroups.com
e per visualizzare, c'e' qualcosa che funziona bene con redis?


2013/5/24 Rocco Pellegrini <r.pell...@gmail.com>



--
-S

Rocco Pellegrini

unread,
May 24, 2013, 5:21:15 AM5/24/13
to spaghett...@googlegroups.com
Io uso Redis con python ma si può usare con tutti o quasi i linguaggi. Ad esempio se usi il php qui trovi un'ottima esercitazione da cui puoi capire come costruire un'interfaccia utente. http://redis.io/topics/twitter-clone


2013/5/24 Simone Cortesi <sim...@cortesi.com>

Matteo Fortini

unread,
May 24, 2013, 5:27:01 AM5/24/13
to spaghett...@googlegroups.com
Redis lo usiamo dove lavoro (ambiente embedded come shared memory fra processi) ed è davvero eccellente.

Il suo limite in questo caso è che il DB deve stare completamente in RAM (si può salvare, ma non fa datastore). Mongo dovrebbe essere più efficace in questo senso.

Xively mi sembra che per le "development" sia limitato a 30 giorni, ma per un numero molto limitato di device "production" faccia storage illimitato anche per le free.

Appena ho un attimo provo le cose che mi avete proposto, grazie.

Se a qualcuno serve ho installato CKAN, mi confermate quindi che non è utile per quello che voglio fare. In ogni modo, non ho molto spazio sul mio server, ma per fare due prove in amicizia e "senza garanzie" possiamo metterci d'accordo.

M
Per annullare l'iscrizione a questo argomento, visita https://groups.google.com/d/topic/spaghettiopendata/vO80_baPjP8/unsubscribe?hl=it.
Per annullare l'iscrizione a questo gruppo e a tutti i suoi argomenti, invia un'email a spaghettiopend...@googlegroups.com.

Rocco Pellegrini

unread,
May 24, 2013, 5:41:28 AM5/24/13
to spaghett...@googlegroups.com
Controllare le chiavi e scaricarle sul disco ad un certo numero per evitare problemi di ram è una pratica assai diffusa nel mondo Redis e molto documentata nella documentazione. Trovo che Mongodb sia un db notevole ma redis è più veloce e questo in situazioni di produzione è sempre un vantaggio, grosso.


2013/5/24 Matteo Fortini <matteo....@gmail.com>

Matteo Fortini

unread,
May 24, 2013, 8:10:28 AM5/24/13
to spaghett...@googlegroups.com
Sono d'accordo che sia possibile fare persistenza su Redis, ma lo riserverei alle situazioni in cui è strettamente necessario: è sempre meglio una soluzione che gestisca già out-of-the-box le cose, piuttosto che accrocchiare cose esterne, anche se ben documentate. Penso solo a come fare per scaricare tutti i dati da una tabella per fare una query, se questa è parte su disco, parte su redis. Ci saranno delle best practice, ma la bellezza di un DB è proprio quella di poter fare una select senza preoccuparsi di come e dove siano stati messi i dati. Redis è fantastico e lo stiamo usando con grosse soddisfazioni in sistemi embedded piuttosto critici, ma sempre in RAM.
Nel mio caso ho bisogno di persistenza, robustezza e flessibilità, i dati li leggo attualmente ogni 30s, che sono comunque aumentabili. Avrei preferito evitare uno schema per non dover fissarmi su un formato specifico, anche se di fatto tutti i dati che ho hanno le stesse colonne.

Grazie ciao,
M

Alessio Dragoni

unread,
May 24, 2013, 8:31:25 AM5/24/13
to spaghett...@googlegroups.com, mfortini
Matteo,
il tutto dipende dal come i dati vengono dai pannelli. Se sono uno
stream continuo
ti consiglio di usare una CEP engine (tipo ESPER) e un DB tipo mongodb o
simili.
in alternativa anche un in-memory DB che puoi persistere come dato
elaborato non e' male

--
@groundrace


On 05/23/2013 11:48 PM, mfortini wrote:
> Ciao, � da un po' di giorni che sbatto la testa sul problema, e ho
> pensato a questo punto di chiedere a voi:
> ho da poco installato dei pannelli fotovoltaici sul tetto, e ho preso
> uno strumento carino per leggere la produzione e il consumo di
> energia. Dopo aver trovato il modo di leggere i dati in rete, li
> volevo memorizzare in un DB sul mio server VPS.
> Esclusi i DB tradizionali, pi� perch� avrei voluto provare qualche
> sistema pi� "moderno", ho installato CKAN sul mio server. Dopo vari
> tentativi, mi sembra di aver capito che CKAN vada bene per caricare
> interi dataset, ma non fornisca sistemi per
> aggiungere/aggiornare/eliminare record.
> Cosa usereste come database, in modo che in linea di massima:
> - abbia un'API RESTful che possa essere usata senza dover aprire porte
> strane
> - sia leggibile dagli strumenti pi� comuni, come Python, R, ...
> - abbia magari gi� dei visualizzatori web fatti o comunque interagisca
> con altri sistemi (come CKAN)
>
> Cosm, ora Xively, fa una cosa simile, ma avrei preferito un sistema open.
>
> Grazie,
> Matteo
> --
> Hai ricevuto questo messaggio perch� sei iscritto al gruppo "Spaghetti
> Open Data" di Google Gruppi.
> Per annullare l'iscrizione a questo gruppo e non ricevere pi� i suoi

Matteo Fortini

unread,
May 24, 2013, 9:25:41 AM5/24/13
to Alessio Dragoni, spaghett...@googlegroups.com
Adesso la domanda diventa ancora più on topic: cosa usare per
pubblicare in modo open dei dati streaming? Supponiamo la produzione
dei miei pannelli, ma anche non so, dati meteo, o dati prelevabili dai
siti di ARPA.

CKAN va bene per i dataset, qui si parla di un feed a cui registrarsi
e consultabile. Il backend può essere a piacere, ma il frontend? Che
sia linkabile e query-able direttamente, non che fornisca degli
snapshot.

Idee o soluzioni già esistenti?

M

Il 24 maggio 2013 14:31, Alessio Dragoni <alessio...@gmail.com> ha scritto:
> Matteo,
> il tutto dipende dal come i dati vengono dai pannelli. Se sono uno stream
> continuo
> ti consiglio di usare una CEP engine (tipo ESPER) e un DB tipo mongodb o
> simili.
> in alternativa anche un in-memory DB che puoi persistere come dato elaborato
> non e' male
>
> --
> @groundrace
>
>
>
> On 05/23/2013 11:48 PM, mfortini wrote:
>>
>> Ciao, è da un po' di giorni che sbatto la testa sul problema, e ho pensato
>> a questo punto di chiedere a voi:
>> ho da poco installato dei pannelli fotovoltaici sul tetto, e ho preso uno
>> strumento carino per leggere la produzione e il consumo di energia. Dopo
>> aver trovato il modo di leggere i dati in rete, li volevo memorizzare in un
>> DB sul mio server VPS.
>> Esclusi i DB tradizionali, più perché avrei voluto provare qualche sistema
>> più "moderno", ho installato CKAN sul mio server. Dopo vari tentativi, mi
>> sembra di aver capito che CKAN vada bene per caricare interi dataset, ma non
>> fornisca sistemi per aggiungere/aggiornare/eliminare record.
>> Cosa usereste come database, in modo che in linea di massima:
>> - abbia un'API RESTful che possa essere usata senza dover aprire porte
>> strane
>> - sia leggibile dagli strumenti più comuni, come Python, R, ...
>> - abbia magari già dei visualizzatori web fatti o comunque interagisca con
>> altri sistemi (come CKAN)
>>
>> Cosm, ora Xively, fa una cosa simile, ma avrei preferito un sistema open.
>>
>> Grazie,
>> Matteo
>> --
>> Hai ricevuto questo messaggio perché sei iscritto al gruppo "Spaghetti
>> Open Data" di Google Gruppi.
>> Per annullare l'iscrizione a questo gruppo e non ricevere più i suoi

Alfredo Serafini

unread,
May 24, 2013, 11:56:05 AM5/24/13
to spaghett...@googlegroups.com, Alessio Dragoni
dipende molto dal tipo di dati, è difficile dare una soluzione a priori.

MongoDB è facile da usare, e si può usare anche in modo più avanzato, quindi è una soluzione sicuramente da provare, concordo con paolo :-)
e poi consente document-driven design, che non è male per questi ambiti.

raffaele messuti

unread,
May 24, 2013, 6:03:32 PM5/24/13
to spaghett...@googlegroups.com


mfortini wrote:
> ho da poco installato dei pannelli fotovoltaici sul tetto, e ho preso
> uno strumento carino per leggere la produzione e il consumo di energia.
> Dopo aver trovato il modo di leggere i dati in rete, li volevo
> memorizzare in un DB sul mio server VPS.

se i dati che raccogli sono una serie storica (dati numerici ordinati
nel tempo) lo strumento che ti puo' bastare e' rrd
http://oss.oetiker.ch/rrdtool/

ci sono api per tutti i linguaggi e puoi disegnare con molta facilita'


--
raffaele
Reply all
Reply to author
Forward
0 new messages