2012-02-24 19 views
5

Sto lavorando a un progetto di rilevamento della comunità con i dati di Twitter in cui ho bisogno di creare una rete sulla base delle relazioni. Ho raccolto e filtrato 200.000 UID. Il mio prossimo passo prevede la creazione di una rete di amici/follower tra di loro.C'è un modo migliore per raccogliere i dati di Twitter?

Sto utilizzando gli script Ruby e una gemma di Twitter per raccogliere, elaborare e archiviare i dati. Per superare il limite delle chiamate API, sto usando il proxy Apigee quindi non c'è nessun problema di rate limiting per ora.

La chiamata per ottenere lo status relazione tra due UID e ': https://dev.twitter.com/docs/api/1/get/friendships/show

ho bisogno di accelerare il processo di raccolta dei dati. Attualmente ho molti script in esecuzione contemporaneamente nel mio terminale. Trovo questo metodo molto difficile da gestire e scalare. Esiste un modo più rapido, efficiente e gestibile per fare la stessa cosa? O C'è un approccio completamente diverso e migliore che mi manca?

+0

se il 1 risposta non aiuta, considerare l'aggiunta di informazioni sul perché si pensa che sta impiegando troppo tempo. Se si dispone di un gruppo di script in esecuzione simul., Uno strumento di controllo lavoro o uno script master può essere appropriato. Dato l'aspetto della programmazione di rete del tuo progetto, avrei pensato che ci sarebbero state gemme di rubini per aiutarti. Quanto profondamente hai guardato su quel fronte. Lo scaling può significare che devi guardare a GNU-parallel, Amazon Elastic Cloud o altro. Inoltre, per quanto riguarda gli strumenti di elaborazione dei dati su larga scala come Hadoop (richiederebbe quasi sicuramente la codifica personalizzata in java o ??). In bocca al lupo. – shellter

+0

E guardando il link dev.twitter che hai incluso, il documento json, sembra maturo per il caricamento in MongoDB. (Questo da una persona che si trova nel capitolo 4 di MongoDB in Action (Manning Press, nessuna affiliazione).). Il libro include un esempio di recupero dei dati da Twitter direttamente nel DB. Quindi potrebbe valere la pena dare un'occhiata. In bocca al lupo. – shellter

+0

strumento di controllo del lavoro o master script è quello che sto guardando. Qualche suggerimento per quelli? Inoltre, un cambiamento nella programmazione lang causerà un aumento significativo della velocità? – s2n

risposta

0

Una cosa che mi veniva in mente è quello di utilizzare istanza EC2 e distribuire lo script, si potrebbe ottenere il più grande esempio e utilizzarlo per un paio d'ore . Un vantaggio è che hai un'istanza più potente e una connessione Internet più veloce.

E anche se stai raccogliendo dati pubblici che significa che non devi autenticarti tramite OAuth (correggimi se ho torto), userei lo script Perl o Python che è più veloce di Ruby with Gem .

0

Perché non utilizzare il logstash per raccogliere i dati. Logstash ti offre molte opzioni per inviare i dati in modo da poterli filtrare facilmente. È anche possibile filtrare tutti i dati tramite logstash prima di inviarli a un'uscita. Le opzioni di output disponibili sono Elasticsearch (utilizzato per cercare, analizzare e visualizzare in tempo reale), database (mysql, MSSQL, ecc.) E molto altro.

Logstash - https://www.elastic.co/products/logstash

Twitter Logstash Plugin - https://www.elastic.co/guide/en/logstash/current/plugins-inputs-twitter.html

Problemi correlati