Minería de Datos Con MongoDB

15
Minería de datos con MongoDB JULIO ROBERTO HERNÁNDEZ RODRÍGUEZ

description

Tutorial para realizar mineria de datos con MongoDBMongoDB es una herramienta NoSQL para bases de datos no relacionales, open source.

Transcript of Minería de Datos Con MongoDB

Page 1: Minería de Datos Con MongoDB

Minería de datos con MongoDBJULIO ROBERTO HERNÁNDEZ RODRÍGUEZ

Page 2: Minería de Datos Con MongoDB

¿Qué es?

Es el proceso de detectar la información procesable de los conjuntos grandes de datos.

Utiliza el análisis matemático para deducir los patrones y tendencias que existen en los datos.

Page 3: Minería de Datos Con MongoDB

Modelos de minería de datos

Pronóstico: cálculo de las ventas y predicción de las cargas del servidor o del tiempo de inactividad del servidor.

Riesgo y probabilidad: elección de los mejores clientes para la distribución de correo directo, determinación del punto de equilibrio probable para los escenarios de riesgo, y asignación de probabilidades a diagnósticos y otros resultados.

Recomendaciones: determinación de los productos que se pueden vender juntos y generación de recomendaciones.

Búsqueda de secuencias: análisis de los artículos que los clientes han introducido en el carrito de la compra y predicción de posibles eventos.

Agrupación: distribución de clientes o eventos en grupos de elementos relacionados, y análisis y predicción de afinidades.

Page 4: Minería de Datos Con MongoDB

Pasos para la generación de un modelo de minería de datos

1. Definir el problema

2. Preparar los datos

3. Explorar los datos

4. Generar modelos

5. Explorar y validar los modelos

6. Implementar y actualizar los modelos

Page 5: Minería de Datos Con MongoDB

Bases de datos NoSQL

NoSQL es una clase de SGBD que difiere del modelo clásico SGBDR.

No usan SQL como el principal lenguaje de consultas.

Los datos almacenados no requieren estructuras fijas como tablas.

No soportan operaciones JOIN

No garantizan completamente ACID (atomicidad, consistencia, aislamiento y durabilidad)

Son escalables horizontalmente.

Page 6: Minería de Datos Con MongoDB

Ventajas

Responden a las necesidades de escalabilidad .

Pueden manejar enormes cantidades de datos.

No generan cuellos de botella.

Escalamiento sencillo.

Diferentes BDs NoSQL para diferentes proyectos.

Se ejecutan en clusters de máquinas baratas.

Page 7: Minería de Datos Con MongoDB

Tipos de BD NoSQL

Base de datos documental

Está constituida por un conjunto de programas que almacenan, recuperan y gestionan datos de documentos o datos de algún modo estructurados. A diferencia de las bases de datos relacionales, estas bases de datos están diseñadas alrededor de una noción abstracta de "Documento".

Bases de datos orientadas a grafos

Representan la información como nodos de un grafo y sus relaciones con las aristas del mismo. Debe estar absolutamente normalizada, esto quiere decir que cada tabla tendría una sola columna y cada relación tan solo dos.

Bases de datos clave/valor

La información es vinculada únicamente con un ID y su vinculación a su valor.

Page 8: Minería de Datos Con MongoDB

Bases de Datos Multivalor

Permiten vincular varios campos de la tabla con múltiples valores sin necesidad de tablas intermedias, a diferencia de MySQL, por ejemplo.

Bases de Datos Orientadas a Objetos

La información se representa mediante objetos como los presentes en la programación orientada a objetos. Un ODBMS extiende los lenguajes con datos persistentes de forma transparente, control de concurrencia, recuperación de datos, consultas asociativas y otras capacidades.

Bases de Datos Tabulares

Es una base de datos donde las tablas y las relaciones son las estructuras principales para la representación de datos. Es similar a una BDR, y es más fácil de generar que una multivariable.

Tipos de BD NoSQL

Page 9: Minería de Datos Con MongoDB

EjemplosBases de datos documentalesCouchDB, de Apache CouchDBMongoDB, de 10genRavenDB, de Hibernating Rhinos.BaseXdjondbeXistSimpleDB, de AmazonIBM Lotus DominoTerrastore

Bases de datos en grafoNeo4jDEX/SparkseeAllegroGraphOrientDBInfiniteGraphSones GraphDBInfoGridHyperGraphDB

Bases de datos clave/valorCassandra, de Apache The Apache CassandraBigTable, de GoogleDynamo, de AmazonMongoDBProject Voldemort, de LinkedInRiakRedisOracle NoSQL

Bases de datos multivalorOpenQMExtensible storage engine

Bases de datos orientadas a objetosObjectDBZope Object Databasedb4oGemStone SObjectivity/DB

Bases de datos tabularHBase, de ApacheBigTable, de GoogleLevelDB, versión abierta de BigTableHypertable

Page 10: Minería de Datos Con MongoDB

MongoDB

MongoDB viene de la palabra en inglés “humongous” que significa enorme.

Es un es un sistema de base de datos NoSQL orientado a documentos, desarrollado bajo el concepto de código abierto.

En vez de guardar los datos en tablas como se hace en las base de datos relacionales, MongoDB guarda estructuras de datos en documentos tipo JSON con un esquema dinámico (MongoDB llama ese formato BSON), haciendo que la integración de los datos en ciertas aplicaciones sea más fácil y rápida.

El desarrollo de MongoDB empezó en octubre de 2007 por la compañía de software 10gen. Ahora MongoDB es una base de datos lista para la producción de uso y con muchas características.

Esta base de datos es altamente utilizada en las industrias. MTV Network, Craiglist y Foursquare son algunas de las empresas que utilizan esta base de datos.

El código binario está disponible para los sistemas operativos Windows, Linux, OS X y Solaris.

Page 11: Minería de Datos Con MongoDB

Principales problemas

Bloqueo a nivel de base de datos

MongoDB bloquea la base de datos entera cada vez que se realiza una escritura, lo que reduce la concurrencia drásticamente.

Las escrituras no son durables ni verificables

MongoDB retorna cuando todavía no se ha escrito la información en el espacio de almacenamiento permanente, lo que puede ocasionar pérdidas de información. En MongoDB 2.2 se cambia el valor por defecto para escribir en al menos una réplica, pero esto sigue sin satisfacer la durabilidad ni la verificabilidad.

Problemas de escalabilidad

Tiene problemas de rendimiento cuando el volumen de datos supera los 100GB.

Page 12: Minería de Datos Con MongoDB

Casos de Uso Almacenamiento y registro de eventos

Para sistemas de manejo de documentos y contenido

Comercio Electrónico

Juegos

Problemas de alto volumen de lecturas

Aplicaciones móviles

Almacén de datos operacional de una página Web

Manejo de contenido

Almacenamiento de comentarios Votaciones

Registro de usuarios

Perfiles de usuarios

Sesiones de datos

etc.

Proyectos que utilizan metodologías de desarrollo iterativo o ágiles

Manejo de estadísticas en tiempo real

Page 13: Minería de Datos Con MongoDB

Lenguajes de programación soportados

C

C++

C# / .NET

Erlang

Haskell

Java

JavaScript

Lisp

node.JS

Perl

PHP

Python

Ruby

Scala

Page 14: Minería de Datos Con MongoDB

Ventajas de NoSQL Es de código abierto

Su código fuente es libre para distribuirlo y modificarlo.

Escalamiento sencillo.

Una base de datos NoSQL permite a una empresa distribuir la carga entre varios hosts a medida que aumenta la carga. 

Diferentes BDs NoSQL para diferentes proyectos

MongoDB y Redis son buenas opciones para el almacenamiento de escritura con alta frecuencia, rara vez leen los datos estadísticos, tales como web, contador de visitas. 

Hadoop, una libre, DB distribuida que hace un buen trabajo almacenando grandes de datos tales como estadísticas del tiempo o el trabajo de análisis de negocio. 

Memcache, una db transeúnte, destaca en la web, el almacenamiento de sesiones, y las estadísticas a corto plazo. 

Cassandra y Riak (clusters automáticos, tiendas redundantes) un buen rendimiento en entornos con aplicaciones de alta disponibilidad, donde el tiempo de funcionamiento máximo es de vital importancia.

NoSQL y la nube es un ajuste natural

Los servidores de hoy en día son de bajo costo y fácilmente pueden ser ampliados a petición. Toda la tecnología de la nube se basa en la virtualización, cuya debilidad es que la E/S, la memoria y CPU que deben ser ágiles 

Uso de memoria en vez del disco

Lo que impide inconsistente rendimiento I/O. Y como los almacenes de datos NoSQL aprovechan típicamente particiones horizontales, son capaces de tomar ventaja en la nube de la elástica del aprovisionamiento.

Page 15: Minería de Datos Con MongoDB

Desventajas de noSQL 1.- El código abierto puede significar una "mancha" en el soporte para las empresas

El soporte técnico de pago siempre ha sido mejor que el ofrecido al software libre y no cuentan con el respaldo de una marca global. 

2.- No están lo suficientemente maduros para algunas empresas 

A pesar de sus puestas en práctica en algunas grandes empresas, las bases de datos NoSQL aún se enfrentan a un problema de credibilidad importante con muchas empresas. Los críticos señalan la falta de madurez de NoSQL y los posibles problemas de inestabilidad, mientras que citan la madurez, y una gran funcionalidad y estabilidad de los SGBDR. 

3.- Limitaciones de Inteligencia de Negocios 

¿Pueden estas bases de datos proporcionar la clase de minería de datos rigurosos que las empresas se utilizan con las RDBMSes? ¿Cuántos conocimientos de programación se necesitan para hacer la consulta ad hoc y análisis? 

Las bases de datos NoSQL no tienen muchos ganchos para el uso general de herramientas de BI, mientras que la más simple consulta ad-hoc y análisis implica conocimientos de programación bastante buenos. Por ejemplo, Toad para bases de datos en la nube proporciona capacidades de consulta ad-hoc para algunas bases de datos NoSQL. 

4.- La falta de experiencia 

La novedad de NoSQL significa que no hay una gran cantidad de desarrolladores y administradores que conocen la tecnología lo que hace difícil a las empresas encontrar personas con los conocimientos técnicos apropiados. Por el contrario, el mundo RDBMS tiene miles de personas muy cualificadas. 

5.- Problemas de compatibilidad 

A diferencia de las bases de datos relacionales, las bases de datos NoSQL tienen pocas normas en común. Cada base de datos NoSQL tiene su propia API, las interfaces de consultas son únicas y tienen peculiaridades. Esta falta de normas significa que es imposible cambiar simplemente de un proveedor a otro, por si no quedara satisfecho con el servicio.