Eduardo Zarate Ing. En Computación Developer en Crowdfunder @iLaliux facebook.com/iLaliux...

40
Introducción al análisis de información con bases de datos NoSQL Eduardo Zarate Ing. En Computación Developer en Crowdfunder @iLaliux facebook.com/iLaliux [email protected]

Transcript of Eduardo Zarate Ing. En Computación Developer en Crowdfunder @iLaliux facebook.com/iLaliux...

Page 1: Eduardo Zarate Ing. En Computación Developer en Crowdfunder @iLaliux facebook.com/iLaliux eduardo@bbfour.com.

Introducción al análisis de información con bases de datos

NoSQL

Eduardo ZarateIng. En Computación

Developer en Crowdfunder

@iLaliux facebook.com/iLaliux [email protected]

Page 2: Eduardo Zarate Ing. En Computación Developer en Crowdfunder @iLaliux facebook.com/iLaliux eduardo@bbfour.com.

El objetivo es demostrar cómo se pueden integrar diversas herramientas y tecnologías para el desarrollo de aplicaciones con bases de datos no relaciones.

Introducción al análisis de información con bases de datos NoSQL

www.bigdataconf.mx

Page 3: Eduardo Zarate Ing. En Computación Developer en Crowdfunder @iLaliux facebook.com/iLaliux eduardo@bbfour.com.

“Welcome to the jungle” ..www.bigdataconf.mx

Page 4: Eduardo Zarate Ing. En Computación Developer en Crowdfunder @iLaliux facebook.com/iLaliux eduardo@bbfour.com.

Un nuevo paradigma

Relacional

◦ Base de datos◦ Tablas◦ Columnas◦ Relaciones

No relacional

◦ Base de datos◦ Documentos◦ Campos o atributos◦ NO relaciones, no INNER

JOIN, LEFT JOIN, etc..

www.bigdataconf.mx

Page 5: Eduardo Zarate Ing. En Computación Developer en Crowdfunder @iLaliux facebook.com/iLaliux eduardo@bbfour.com.

Clasificación de bases de datos NoSQLwww.bigdataconf.mx

Page 6: Eduardo Zarate Ing. En Computación Developer en Crowdfunder @iLaliux facebook.com/iLaliux eduardo@bbfour.com.

Pros y contras del NoSQL

Diseños “al vuelo” ..Borrón y cuenta nueva

Ventaja

◦ Estructura flexible para el almacenamiento de datos.

Desventajas

◦ Gran variedad, muchas bases de datos con diferentes características.

◦ No hay un lenguaje estándar de consulta.

www.bigdataconf.mx

Page 7: Eduardo Zarate Ing. En Computación Developer en Crowdfunder @iLaliux facebook.com/iLaliux eduardo@bbfour.com.

¿Qué base de datos elegir?

Todo depende .. ¿Vale la pena?

Consideraciones

◦ ¿Qué tipo de información se manejará?

◦ ¿Qué tipo de aplicación o sistema será?

◦ ¿Volumen de datos?

◦ ¿Volumen de transacciones?

◦ ¿Tiempos de respuesta?

www.bigdataconf.mx

Page 8: Eduardo Zarate Ing. En Computación Developer en Crowdfunder @iLaliux facebook.com/iLaliux eduardo@bbfour.com.

El elegido es ...www.bigdataconf.mx

Page 9: Eduardo Zarate Ing. En Computación Developer en Crowdfunder @iLaliux facebook.com/iLaliux eduardo@bbfour.com.

¿Por qué CouchDB?

Todo depende .. ¿Vale la pena?

Características

◦ Consume muy poca memoria.

◦ Sencilla de usar.

◦ Almacena documentos en formato JSON.

◦ Notificaciones de cambios en tiempo real.

◦ De forma nativa soporta el protocolo HTTP.

www.bigdataconf.mx

Page 10: Eduardo Zarate Ing. En Computación Developer en Crowdfunder @iLaliux facebook.com/iLaliux eduardo@bbfour.com.

Instalación CouchDB

Para Ubuntu Linux ..

sudo apt-get install software-properties-common -y

sudo add-apt-repository ppa:couchdb/stable -y

sudo apt-get install -V couchdb

www.bigdataconf.mx

Page 11: Eduardo Zarate Ing. En Computación Developer en Crowdfunder @iLaliux facebook.com/iLaliux eduardo@bbfour.com.

Verificación de que está en ejecuciónwww.bigdataconf.mx

Page 12: Eduardo Zarate Ing. En Computación Developer en Crowdfunder @iLaliux facebook.com/iLaliux eduardo@bbfour.com.

Acceso a Futon, administrador de CouchDBwww.bigdataconf.mx

Page 13: Eduardo Zarate Ing. En Computación Developer en Crowdfunder @iLaliux facebook.com/iLaliux eduardo@bbfour.com.

Creación de una base de datoswww.bigdataconf.mx

Page 14: Eduardo Zarate Ing. En Computación Developer en Crowdfunder @iLaliux facebook.com/iLaliux eduardo@bbfour.com.

Creación de un nuevo documentowww.bigdataconf.mx

Page 15: Eduardo Zarate Ing. En Computación Developer en Crowdfunder @iLaliux facebook.com/iLaliux eduardo@bbfour.com.

Almacenar un documentowww.bigdataconf.mx

Page 16: Eduardo Zarate Ing. En Computación Developer en Crowdfunder @iLaliux facebook.com/iLaliux eduardo@bbfour.com.

Consulta de un documento a través de webwww.bigdataconf.mx

Page 17: Eduardo Zarate Ing. En Computación Developer en Crowdfunder @iLaliux facebook.com/iLaliux eduardo@bbfour.com.

Instalación NodeJS

#Módulo nodejs-twitter y nodejs-couchdb

sudo add-apt-repository ppa:chris-lea/node.js

sudo apt-get update

sudo apt-get install nodejs

npm install ntwitter npm install cradle

www.bigdataconf.mx

Page 18: Eduardo Zarate Ing. En Computación Developer en Crowdfunder @iLaliux facebook.com/iLaliux eduardo@bbfour.com.

Script para descargar amigos de un usuario de Twitter

www.bigdataconf.mx

Page 19: Eduardo Zarate Ing. En Computación Developer en Crowdfunder @iLaliux facebook.com/iLaliux eduardo@bbfour.com.

www.bigdataconf.mx

Page 20: Eduardo Zarate Ing. En Computación Developer en Crowdfunder @iLaliux facebook.com/iLaliux eduardo@bbfour.com.

Script para descargar seguidores de un usuario en Twitter

www.bigdataconf.mx

Page 21: Eduardo Zarate Ing. En Computación Developer en Crowdfunder @iLaliux facebook.com/iLaliux eduardo@bbfour.com.

Descarga de datos de Twitter

www.bigdataconf.mx

#Bajar datos de los amigos de @ilaliux node friends.js ilaliux

#Bajar datos de los seguidores de @ilaliux node followers.js ilaliux

Page 22: Eduardo Zarate Ing. En Computación Developer en Crowdfunder @iLaliux facebook.com/iLaliux eduardo@bbfour.com.

Verificar que hay registros agregadoswww.bigdataconf.mx

Page 23: Eduardo Zarate Ing. En Computación Developer en Crowdfunder @iLaliux facebook.com/iLaliux eduardo@bbfour.com.

Checar datos de algunos registroswww.bigdataconf.mx

Page 24: Eduardo Zarate Ing. En Computación Developer en Crowdfunder @iLaliux facebook.com/iLaliux eduardo@bbfour.com.

El momento de la verdad ..www.bigdataconf.mx

Page 25: Eduardo Zarate Ing. En Computación Developer en Crowdfunder @iLaliux facebook.com/iLaliux eduardo@bbfour.com.

Elasticsearch

Motor de búsqueda y análisis en tiempo real.

Excelente integración con CouchDB.

www.bigdataconf.mx

Page 26: Eduardo Zarate Ing. En Computación Developer en Crowdfunder @iLaliux facebook.com/iLaliux eduardo@bbfour.com.

Instalación y ejecución

www.bigdataconf.mx

#Requisito tener instalado Java sudo apt-get install openjdk-7-jdk

#Descomprimir y ejecutar unzip elasticsearch-1.4.1.zip cd elasticsearch-1.4.1 ./bin/elasticsearch

Page 27: Eduardo Zarate Ing. En Computación Developer en Crowdfunder @iLaliux facebook.com/iLaliux eduardo@bbfour.com.

Verificar que Elasticsearch está en ejecuciónwww.bigdataconf.mx

Page 28: Eduardo Zarate Ing. En Computación Developer en Crowdfunder @iLaliux facebook.com/iLaliux eduardo@bbfour.com.

Instalación de plugins

river.couchdb se comunica con CouchDB

#Detener Elasticsearch, instalar plugins e iniciar nuevamente Elasticsearch

./bin/plugin -install mobz/elasticsearch-head

./bin/plugin -install elasticsearch/elasticsearch-lang-javascript/2.4.1

./bin/plugin -install elasticsearch/elasticsearch-river-couchdb/2.4.1

www.bigdataconf.mx

Page 29: Eduardo Zarate Ing. En Computación Developer en Crowdfunder @iLaliux facebook.com/iLaliux eduardo@bbfour.com.

Definición y creación de un índice

www.bigdataconf.mx

El comando “bash users.index” manda la ejecución para la creación del índice.

Page 30: Eduardo Zarate Ing. En Computación Developer en Crowdfunder @iLaliux facebook.com/iLaliux eduardo@bbfour.com.

Interfaz del plugin “head” permite interactuar con Elasticsearch

www.bigdataconf.mx

Page 31: Eduardo Zarate Ing. En Computación Developer en Crowdfunder @iLaliux facebook.com/iLaliux eduardo@bbfour.com.

Configuración mínima

www.bigdataconf.mx

Las últimas líneas permiten el acceso a Kibana.

Page 32: Eduardo Zarate Ing. En Computación Developer en Crowdfunder @iLaliux facebook.com/iLaliux eduardo@bbfour.com.

Análisis de datos de seguidores de Twitter

www.bigdataconf.mx

Page 33: Eduardo Zarate Ing. En Computación Developer en Crowdfunder @iLaliux facebook.com/iLaliux eduardo@bbfour.com.

Análisis de datos de seguidores de Twitter

www.bigdataconf.mx

Page 34: Eduardo Zarate Ing. En Computación Developer en Crowdfunder @iLaliux facebook.com/iLaliux eduardo@bbfour.com.

Análisis de datos de amigos de Twitter

www.bigdataconf.mx

Page 35: Eduardo Zarate Ing. En Computación Developer en Crowdfunder @iLaliux facebook.com/iLaliux eduardo@bbfour.com.

Análisis de datos de amigos de Twitter

www.bigdataconf.mx

Page 36: Eduardo Zarate Ing. En Computación Developer en Crowdfunder @iLaliux facebook.com/iLaliux eduardo@bbfour.com.

Definición de parámetros de búsqueda en Kibana

www.bigdataconf.mx

Page 37: Eduardo Zarate Ing. En Computación Developer en Crowdfunder @iLaliux facebook.com/iLaliux eduardo@bbfour.com.

Definición de parámetros de búsqueda en Kibana

www.bigdataconf.mx

Page 38: Eduardo Zarate Ing. En Computación Developer en Crowdfunder @iLaliux facebook.com/iLaliux eduardo@bbfour.com.

Búsquedas desde el plugin elasticsearch-head

www.bigdataconf.mx

Page 39: Eduardo Zarate Ing. En Computación Developer en Crowdfunder @iLaliux facebook.com/iLaliux eduardo@bbfour.com.

Búsquedas desde el plugin elasticsearch-head

www.bigdataconf.mx

Page 40: Eduardo Zarate Ing. En Computación Developer en Crowdfunder @iLaliux facebook.com/iLaliux eduardo@bbfour.com.

GraciasEduardo Zarate

@iLaliux facebook.com/iLaliux [email protected]