2015-06-19 16 views
7

Sto costruendo una casella di raccolta dati di una casa intelligente. È previsto che venga eseguito su una macchina di classe Raspberry-pi (~ 1G RAM), gestendo circa 200.000 punti dati al giorno (ciascuno con un int di 64 bit). Abbiamo lavorato con Vanilla MySQL, ma le prestazioni stanno iniziando a crollare, soprattutto per le query sul numero di voci in un dato intervallo di tempo.Scelta di un TSDB per un'installazione one-off di una casa intelligente

Come ho capito, questo è fondamentalmente esattamente ciò per cui sono progettati i database di serie temporali. Se non altro, la cosa insolita della mia situazione è che il volume è relativamente basso, così come la quantità di RAM disponibile.

Una rapida occhiata a Wikipedia suggerisce OpenTSDB, InfluxDB e possibilmente BlueFlood. OpenTSDB suggerisce 4G di RAM, anche se potrebbe essere per le impostazioni di volume elevato. InfluxDB menziona effettivamente letture di sensori, ma non riesco a trovare molte informazioni su quale tipo di risorse sono richieste.

Ok, ecco la mia domanda attuale: ci sono evidenti bandiere rosse che renderebbero inappropriati questi sistemi per il progetto che descrivo?

Mi rendo conto che questo è un invito alla fiamma, quindi conto sulla gente per mantenerla sul lato luminoso e utile. Molte grazie in anticipo!

+0

* le prestazioni stanno iniziando a sbriciolarsi, soprattutto per le query sul numero di voci in un dato momento * suona più come indici insufficienti/inappropriati o query mal scritte (non sganciabili), per me. –

+0

Non avendo familiarità con raspberry-pi, mi chiedo quali siano le distribuzioni Linux supportate. C'è una lista di distro che potresti condividere? –

+0

Ecco la lista: https://www.raspberrypi.org/downloads/ –

risposta

3

InfluxDB dovrebbe andare bene con 1 GB di RAM a quel volume. Sensori incorporati e dispositivi a bassa potenza come Raspberry Pi sono decisamente un caso d'uso principale, anche se non abbiamo fatto molti test con le ultime beta oltre alla compilazione su ARM.

InfluxDB 0.9.0 è stato appena rilasciato e 0.9.x dovrebbe essere disponibile nel nostro ambiente Hosted in poche settimane. Le istanze di fascia bassa hanno 1 GB di RAM e 1 CPU equivalente, quindi sono un proxy ragionevole per la tua performance Pi e la prova gratuita dura due settimane.

Se avete domande più specifiche, vi preghiamo di contattarci a [email protected] o [email protected] e vedremo come possiamo aiutare.

1

Hai provato con OpenTSDB. Stiamo utilizzando OpenTSDB per quasi 150 case per raccogliere dati sui contatori intelligenti in cui i dati vengono raccolti ogni 10 minuti. ci sono molti punti dati in un giorno. Ma non l'abbiamo testato in Raspberry pi. Per Raspberry pi OpenTSDB potrebbe essere piuttosto pesante dato che ha bisogno di eseguire webserver, HBase e Java. Solo per suggerimenti. È possibile utilizzare Raspberry pi come hub di raccolta per la casa intelligente e inviare i dati da Raspberry pi al server e memorizzare tutti i punti nel server. Più avanti nel server è possibile eseguire qualsiasi operazione di aggregazione, eseguire analisi statistiche, ecc. E quindi è possibile inviare i risultati allo smart hub.

+0

Il raspberry pi * è * il server :). Potrebbe non esserci una connessione di rete esterna. Grazie per la tua risposta! –

2

ATSD supporta l'architettura ARM e può essere installato su un Raspberry Pi 2 per memorizzare i dati del sensore. Attualmente, è richiesto il sistema operativo Ubuntu o Debian. Assicurarsi che il dispositivo abbia almeno 1 GB di RAM e una scheda SD con elevata velocità di scrittura (60 MB/s o più). La dimensione della scheda SD dipende dalla quantità di dati che si desidera archiviare e per quanto tempo, si consiglia almeno 16 GB, è necessario pianificare in anticipo. Si consiglia inoltre l'uso di batterie di riserva per proteggersi da arresti anomali e spegnimenti non corretti.

Here è possibile trovare una guida approfondita sulla configurazione di un sensore di temperatura/umidità associato a un dispositivo Arduino. Usando la guida sarete in grado di trasmettere i dati del sensore in ATSD usando il protocollo MQTT o TCP. Sono inclusi schizzi open-source.