Skip to content

ilittleangel/demo-twitter

Repository files navigation

Demo Twitter Streaming Ingestion

Contexto

Aplicación Python super sencilla para descargar tweets en streaming para luego indexar en Elasticsearch y publicar en Kafka.

Muy útil para demos donde se requiera de procesamiento o análisis de datos en tiempo real pudiendo usar diversas tecnologías real time.

Prerequisitos

Crear una cuenta en https://developer.twitter.com y posteriormente una APP para obtener los tokens necesarios y así poder usar la API v1.1.

A continuación exportar estas claves como variables de entorno, en la shell donde vayamos a ejecutar la aplicación python.

export CONSUMER_KEY=xxxxxxxxxxxxxxxxx
export CONSUMER_SECRET=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
export ACCESS_TOKEN=xxxxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
export ACCESS_TOKEN_SECRET=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Pasos para ejecutar ingestion.py

Descargar repo

git clone https://github.com/ilittleangel/demo-twitter.git
cd demo-twitter

Arrancar plataforma

docker-compose up -d

Se arrancarán los servicios necesarios para la ingesta

Creating elasticsearch ... done
Creating zookeeper     ... done
Creating kafka         ... done
Creating kibana        ... done

Esperar unos minutos a que se arranquen los 4 contenedores

Si se desea ver los logs algun contenedor:

docker logs -f kafka

Cargar dashboard en Kibana (opcional)

curl -H 'kbn-xsrf: true' \
     -H 'Content-Type: application/json'\
     -X POST "http://localhost:5601/api/kibana/dashboards/import" \
     -d @kibana/kibana-dashboard.json

Mas info de la API de Kibana aqui.

Modificar filtros del stream de Twitter (opcional)

En el fichero settings.py está la lista de filtros

twitter_filters = ['Beriain', 'covid19', 'vacuna']

Poner tantos como se quieran y/o quitar los actuales

Instalar dependencias

pip install -r requirements.txt

Se recomienda usar un Virtual environment con Python3.6 o superior

Arrancar la aplicación

python ingestion.py

Se recomienda usar un Virtual environment con Python3.6 o superior

Comprobaciones

Para comprobar que se están publicando mensajes en Kafka se puede acceder al contenedor y consumir dichos mensajes.

Abrir otro terminal y ejecutar:

docker exec -it kafka bash
kafka-console-consumer.sh --topic tweets --from-beginning --bootstrap-server localhost:9092

Apareceran por salida estandar todos los tweets ingestados.

Kibana dashboard

kibana dashboard

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published