2015-09-11 17 views
5

Sto iniziando a conoscere i big data e Apache Spark e ho un dubbio.Posso eseguire un database di serie temporali (TSDB) su Apache Spark?

In futuro avrò bisogno di raccogliere dati dall'IoT e questi dati verranno da me come time series data. Stavo leggendo su database di serie temporali (TSDB) e ho trovato alcune opzioni open source come Atlas, KairosDB, OpenTSDB, ecc.

In realtà ho bisogno di Apache Spark, quindi voglio sapere: posso usare una serie storica Database su Apache Spark? Ha senso? Per favore, ricorda che sono molto nuovo ai concetti di big data, Apache Spark e tutte le questioni che ho parlato in questa domanda.

Se riesco a eseguire TSDB su Spark, come posso ottenerlo?

+0

si dovrebbe essere in grado di, dare un'occhiata a https://spark.apache.org/docs/latest/api/ Scala/inde x.html # org.apache.spark.sql.sources.package e un'implementazione come https://github.com/databricks/spark-csv/blob/master/src/main/scala/com/databricks/spark/ csv/CsvRelation.scala - Non ho trovato alcuna API Java OpenTSDB, quindi potresti dover scavare. – Reactormonk

+0

Questo è un argomento interessante, ma cosa intendi per 'TSDB su Spark'? Quale parte dell'elaborazione dei dati del sensore è necessario eseguire nel database e quale parte in Spark? –

+1

Ho bisogno di memorizzare tutte le serie temporali in un buon database e in seguito ho bisogno che Spark usi gli algoritmi di Machine Learning su questi dati. – Paladini

risposta

0

Sono un committer OpenTSDB, so che questa è una vecchia domanda, ma volevo rispondere. Il mio suggerimento sarebbe quello di scrivere i dati in arrivo su OpenTSDB, assumendo che tu voglia semplicemente archiviare i dati grezzi ed elaborarli successivamente. Quindi con Spark, esegui query OpenTSDB usando le classi OpenTSDB.

Puoi anche scrivere i dati con le classi, penso che tu voglia usare il costrutto IncomingDataPoint, in realtà non ho i dettagli in mano al momento. Sentiti libero di contattarmi sulla mailing list di OpenTSDB per ulteriori domande.

È un vedere come OpenTSDB gestisce l'incoming "put" richiesta di qui, si dovrebbe essere in grado di fare la stessa cosa nel codice per la scrittura:

https://github.com/OpenTSDB/opentsdb/blob/master/src/tsd/PutDataPointRpc.java#L42

È possibile vedere il progetto Splicer presentando OpenTSDB query qui, un metodo simile potrebbe essere utilizzato nel progetto Spark penso:

https://github.com/turn/splicer/blob/master/src/main/java/com/turn/splicer/tsdbutils/SplicerQueryRunner.java#L87