¿Qué implica la creación de una aplicación para consumir, procesar y filtrar la manguera de Twitter de tweets en tiempo real?

Para consumir Twitter Firehose, o cualquiera de las variantes más pequeñas (manguera de jardín, rociadores, etc.), necesitará un servidor dedicado con amplio ancho de banda. Para los niveles más pequeños, es posible que pueda sobrevivir con un servidor privado virtual (VPS).

En cuanto al software, deberá escribirlo en un lenguaje que pueda mantener conexiones abiertas durante largos períodos sin convertirse en un fanático de la memoria o comenzar a funcionar lentamente (todas las especializaciones funcionarán: PHP, Java, Ruby, Perl, etc.) usa PHP). También necesitará un software de colas, como Beanstalkd (usamos este), Gearman, Starling, RabitMQ, etc.

No debe trabajar directamente desde la conexión de Twitter, sino que pondrá en cola todo lo que Twitter le envíe y luego hará que los trabajadores se conecten al servidor de cola para procesar los tweets. Si alguna vez recibe una gran afluencia de tweets, esto lo salvará.

Todas las API de transmisión de Twitter tienen una tasa limitada a un porcentaje específico del volumen actual general. A menos que dirija una gran empresa con una gran chequera, no obtendrá la Firehose de ellos (que tiene todos los tweets). Actualmente no cobran por las otras API de transmisión que ofrecen.

Según nuestro acuerdo con Twitter, no puedo responder las preguntas de volumen.

En cuanto a los servicios de terceros, GNIP es la única compañía de terceros autorizada que ofrece API de transmisión. Recientemente lanzaron un producto llamado Power Track que podría interesarle (no estoy afiliado a ellos y actualmente no uso sus productos).

Consumir una manguera de bomberos no es tarea fácil. Principalmente debido a su volumen. (¡~ 110 millones de tweets al día! Esa es una gran cantidad de datos)

Obtenemos datos de múltiples fuentes y Apache Flume nos ayudó a rescatarnos en el manejo de grandes volúmenes de datos y problemas de escalabilidad.

No pude usar Flume de fábrica, ya que fue diseñado para la recolección de registros. Tuve que hacer varios trucos para que funcionara para mí. Además, Flume tiene una comunidad activa que está lista para ayudar.

Para la segunda parte, GNIP es la única fuente para consumir firehose. Usando Power Track (similar a firehose, decahose, etc.), puede filtrar la transmisión de Twitter de forma remota y se cobran por cada mil tweets.

Si no está dispuesto a pagar, entonces Spritzer es la opción. Esto da ~ 3-5% de la manguera de bomberos. Tendría que hacer la parte de filtrado.