martes, 16 de julio de 2013

Primeros pasos MongoDB con Twitter. Parte 2



Ahora comprobaremos que información hemos almacenado en la BBDD “twitter” para que tenga ese tamaño en tampoco tiempo.
Twitter 101” tiene un script php con el que podemos ver el contenido de la base de datos. El código del script podemos verlo en la página (http://learnmongo.com/posts/mongodb-php-twitter-part-1/), desde esta página copiamos el código y generamos en el directorio “c:\xampp\htdocs\mongodb” (que es donde estamos dejando todos nuestros scripts de php) el archivo php llamándolo “ver.php” para ello seguiremos los siguientes pasos:

·          Paso 1: desde la página http://learnmongo.com/posts/mongodb-php-twitter-part-1/ buscaremos el código “displaying your tweets” full del scripts y lo marcaremos para copiarlo.

·      
Paso 2: abrimos el editor de texto y pegamos el código del script en un nuevo documento.


·         Paso 3: grabamos el fichero llamándolo “ver.php”.


Para poder ver el resultado de la ejecución el script seguimos los siguientes pasos:

·         Paso 1: Lanzamos una ventana de navegador web (Iexplorer, Firefox,..).
·         Paso 2: En la barra de dirección tecleamos “127.0.0.1/MongoDB/ver.php” y pulsamos “enter”.

Nota: La dirección 127.0.0.1 (localhost) corresponde a la dirección interna de la propia máquina.

 Podemos ver que el resultado son  tweets, para poder ver más claramente los tweets sin las “notice” procederemos a modificar el scripts “ver.php” para ello seguiremos los siguientes pasos:

·         Paso 1: Editaremos (con un editor de textos plano) el script PHP “ver.php”.
·        
Paso 2: Añadiremos al principio del script la instrucción “error_reporting(0);

·         Paso 3: Volvemos a grabar el script
·        
Paso 4: Actualizamos la página web o volvemos a ejecutar “127.0.0.1/MongoDB/ver.php” para ver los nuevos resultados de forma más clara.
 

Como podemos ver,  ahora más claro, nos informa del texto del tweet y la fecha en que se creó el mismo. La base de datos es de 0,2 GB y es demasiado tamaño para contener solo el texto del tweet y la fecha de creación, esto es debido a la configuración del script “ver.php” que solo nos muestra los datos “value[text]” y “value[created_at]


Para poder verificar porque la base de datos es tan grande, seguiremos los siguientes pasos:
·         Abriremos una consola de comandos y navegaremos hasta el directorio “c:\mongodb\bin” (o sitio donde hayamos instalado MongoDB).
·         En ese directorio ejecutaremos “mongo” accediendo al prompt > que nos permite interactuar con Mongo.
 
·         Ejecutaremos el comando “Use twitter” para indicar a Mongo que usaremos  la base de datos donde se han almacenado los tweets para las siguientes consultas.
·         Ahora ejecutaremos la orden “Db.tweets.findone()” con esto Mongo nos devolverá un registro al azar de la base de datos “twitter” con el siguiente formato:
--------- Comienzo del tweet ---------
{
        "_id" : ObjectId("51041b8e4eecfe481400000f"),
        "created_at" : "Tue Dec 18 17:47:48 +0000 2012",(Información que ya habíamos visto)
        "id" : 281093421668634620,
        "id_str" : "281093421668634624",
        "text" : "Ensalada de Bits: ATAQUES DE INYECCIÓN (Parte 1)\n\n SQL inye
cción\n\n1 ... http://t.co/kGX0ELfF", (Información que ya habíamos visto)
        "source" : "<a href=\"http://twitter.com/tweetbutton\" rel=\"nofollow\">
Tweet Button</a>",
        "truncated" : false,
        "in_reply_to_status_id" : null,
        "in_reply_to_status_id_str" : null,
        "in_reply_to_user_id" : null,
        "in_reply_to_user_id_str" : null,
        "in_reply_to_screen_name" : null,
        "user" : {
                "id" : 279907517,
                "id_str" : "279907517",
                "name" : "María",
                "screen_name" : "mirojo84",
                "location" : "Madrid",
                "url" : "http://ensaladadebits.blogspot.com.es/",
                "description" : "Ingeniera informática de sistemas.",
                "protected" : false,
                "followers_count" : 24,
                "friends_count" : 55,
                "listed_count" : 0,
                "created_at" : "Sun Apr 10 07:38:55 +0000 2011",
                "favourites_count" : 0,
                "utc_offset" : null,
                "time_zone" : null,
                "geo_enabled" : false,
                "verified" : false,
                "statuses_count" : 30,
                "lang" : "es",
                "contributors_enabled" : false,
                "is_translator" : false,
                "profile_background_color" : "ACDED6",
                "profile_background_image_url" : "http://a0.twimg.com/images/the
mes/theme18/bg.gif",
                "profile_background_image_url_https" : "https://si0.twimg.com/im
ages/themes/theme18/bg.gif",
                "profile_background_tile" : false,
                "profile_image_url" : "http://a0.twimg.com/profile_images/165579
8522/cara_normal.gif",
                "profile_image_url_https" : "https://si0.twimg.com/profile_image
s/1655798522/cara_normal.gif",
                "profile_link_color" : "038543",
                "profile_sidebar_border_color" : "EEEEEE",
                "profile_sidebar_fill_color" : "F6F6F6",
                "profile_text_color" : "333333",
                "profile_use_background_image" : true,
                "default_profile" : false,
                "default_profile_image" : false,
                "following" : null,
                "follow_request_sent" : null,
                "notifications" : null
        },
        "geo" : null,
        "coordinates" : null,
        "place" : null,
        "contributors" : null,
        "retweet_count" : 0,
        "favorited" : false,
        "retweeted" : false,
        "possibly_sensitive" : false
}
--------- Fin del tweet ------------
Como podemos observar, hay muchos más datos almacenados por registro que los que habíamos observado con el script “ver.php”, datos asociados al tweet desde las imágenes del usuario hasta la situación geográfica, los fondos de pantalla del usuario,…
Es una gran cantidad de información que dependiendo del objetivo que se persiga en el tratamiento de la información nos será de utilidad o no.
En un primer momento para el trabajo seguiremos usando el script pre_configurado, teniendo en cuenta que en cualquier momento podemos modificar tanto los datos a visualizar como los datos a almacenar o tratar.
En este momento ya tenemos la plataforma para trabajo con MongoDB instalada y una serie de scripts sencillos que nos permite guardar los tweets del usuario que queramos para analizarlos con Hadoop.
Para poder conseguir realizar el análisis procederemos a instalar Hadoop y su conexión con Mongo.

No hay comentarios:

Publicar un comentario

Esperando tu comentario...