- Ciclo de Vida: El ciclo de vida de los datos comienza en los Tweets que producen los usurios de Twitter, aquellos tweets deben estar relacionados con unas palabras a las que llamaremos keywords, que para nuestro caso son "Coca-cola" y "Pepsi". Twitter entonces proveera una interfaz por medio de una API (Apps Twitter), dicha API sera accedida por un agente que tomara los datos bajo tecnicas de DataStreaming y lo almacenara en alguna tecnologia de Storage (Para el caso HDFS).
- Almacenamiento: Dado que es un proceso constante e inserción de datos, es fundamental tener un sistema de almacenamiento escalable que garantice el acceso a los datos, y que ojalá sea de una manera sencilla. Inicialmente los datos son extraidos con un formato JSON del cual pueden extraerse atributos fundamentales para el análisis.
Esquema de lectura:
hive> describe tweets
OK
id bigint from deserializer >
created_at string from deserializer
source string from deserializer
favorited boolean from deserializer
retweet_count int from deserializer
retweeted_status struct<text:string,user:struct<screen_name:string,name:string>> from deserializer
entities struct<urls:array<struct<expanded_url:string>>,user_mentions:array<struct<screen_name:string,name:string>>,hashtags:array<struct<text:string>>> from deserializer
text string from deserializer
lang string from deserializer
user struct<screen_name:string,name:string,friends_count:int,followers_count:int,statuses_count:int,verified:boolean,utc_offset:in
t,time_zone:string> from deserializer
in_reply_to_screen_name string from deserializer
hive>
Para acceder a los datos se requiere un sistema que permita realizar agrupaciones, consultas, y análisis de esos mismos datos.
- Procesamiento: Utilizando una plataforma de procesamiento distribuido en memoria como Apache Spark, se recuperan los tweets capturados para procesarlos utilizando tecnologías de procesamiento de lenguaje natural. Mediante este proceso, se realiza un análisis de sentimientos en el conjunto de tweets de manera que se puedan identificar cuantos se pueden identificar como una impresión positiva y una impresión negativa de la marca analizada.
La ingesta de datos fue implementada con flume. Se realizó un archivo de configuración que especifica las palabras clave a buscar en los tweets, donde se almacena el resultado, el tamaño de los archivos a almacenar y la conexión con el API de Twitter. Para fácil manejo de los datos se utilizo una biblioteca de flume que permite descargar los datos como JSON. Para la lectura de datos, éstos fueron insertados a una tabla de Hive utilizando una biblioteca llamada serDes para fácil inserción de JSON a tablas. Para el análisis de datos se utilizo Spark, con SparkSQL para fácil acceso a la tabla y Spark-NLP[1] para el análisis de sentimientos.