Mirada a bases de datos NoSQL de código abierto orientadas a documentos A look to the NoSQL open source document databases



Documentos relacionados
Conectores Pentaho Big Data Community VS Enterprise

acenswhitepapers Bases de datos NoSQL. Qué son y tipos que nos podemos encontrar

Capítulo 5. Cliente-Servidor.

Arquitectura de sistema de alta disponibilidad

Día :00h Lugar: Obra Social Ibercaja, Sala De actos, Rambla Ferran 38, 3º, Lleida

La Pirámide de Solución de TriActive TRICENTER

BIG DATA. Jorge Mercado. Software Quality Engineer

SISTEMAS DE INFORMACIÓN II TEORÍA

CURSO: APACHE SPARK CAPÍTULO 2: INTRODUCCIÓN A APACHE SPARK.

Título: Implementación de un servicio de acceso a Internet por correo electrónico. Navegación total.

Alumna: Adriana Elizabeth Mendoza Martínez. Grupo: 303. P.S.P. Miriam De La Rosa Díaz. Carrera: PTB. en Informática 3er Semestre.

QUE ES COMLINE MENSAJES? QUE TIPO DE MENSAJES PROCESA COMLINE MENSAJES?

Guía de Laboratorio Base de Datos I.

Capítulo 3 Diseño del Sistema de Administración de Información de Bajo Costo para un Negocio Franquiciable

El universo en la palma de tu mano. El software de gestión para organizaciones políticas e instituciones

Manual de uso de la plataforma para monitores. CENTRO DE APOYO TECNOLÓGICO A EMPRENDEDORES -bilib

La web 2.0 CÓMO EXPORTAR? J U A N O R T I Z T A N I A C A S T R O

Ventajas del software del SIGOB para las instituciones

Una propuesta de valor para la gran empresa: Atlassian Data Center

CAPÍTUL07 SISTEMAS DE FILOSOFÍA HÍBRIDA EN BIOMEDICINA. Alejandro Pazos, Nieves Pedreira, Ana B. Porto, María D. López-Seijo

SISTEMA DE ESPECIICACION DE REQUERIMIENTOS

SEGURIDAD Y PROTECCION DE FICHEROS

Multipedidos es un sistema de ventas on-line que permite gestionar pedidos por internet en tiempo real de manera económica, simple y eficaz.

BASES DE DATOS TEMA 3 MODELO ENTIDAD - RELACIÓN

a3asesor doc cloud nos proporciona inmediatez y calidad a la hora de atender al cliente EXPERIENCIAS Wolters Kluwer

1.1.- Objetivos de los sistemas de bases de datos Administración de los datos y administración de bases de datos Niveles de Arquitectura

Sistema de Mensajería Empresarial para generación Masiva de DTE

APACHE HADOOP. Daniel Portela Paz Javier Villarreal García Luis Barroso Vázquez Álvaro Guzmán López

CAPITULO I EL PROBLEMA

Aplicación para la gestión de prácticas en empresas. Memoria

Big Data y BAM con WSO2

Componentes de Integración entre Plataformas Información Detallada

CAPÍTULO 3 VISUAL BASIC

Novedades en Q-flow 3.02

Curso PHP Advanced and Ajax

Q-flow 3.1: Enterprise Edition

Software Libre para Aplicaciones de Big Data

La Unidad Inmobiliaria del BBVA (ANIDA) gestiona más de 7 millones de registros en menos de un año

Universidad de Colima Facultad de Ingeniería Mecánica y Eléctrica. Base de Datos I. Maestra: Martha E. Evangelista Salazar


Seminario Electrónico de Soluciones Tecnológicas sobre VPNs de Extranets

Arquitectura: Clusters

Instrucciones.

General Parallel File System

Análisis de aplicación: BlueFish

La interoperabilidad se consigue mediante la adopción de estándares abiertos. Las organizaciones OASIS y W3C son los comités responsables de la

Sesión No. 7. Contextualización: Nombre de la sesión: Intelisis Business Intelligence PAQUETERÍA CONTABLE

SERVIDOR WEB PARA ACCESO EN TIEMPO REAL A INFORMACIÓN METEOROLÓGICA DISTRIBUIDA

Gestor de Contenidos CMS. Prof: Ing. Henrry Servitá

Elementos requeridos para crearlos (ejemplo: el compilador)

Qué es SPIRO? Características

Hadoop. Cómo vender un cluster Hadoop?

TEDESCO NEXT EL EXITO DE SU GESTION SE REFLEJA EN EL CRECIMIENTO DE SU EMPRESA

computadoras que tienen este servicio instalado se pueden publicar páginas web tanto local como remotamente.

Análisis de aplicación: Virtual Machine Manager

CAPITULO IV. HERRAMIENTAS DE CÓDIGO ABIERTO

Windows Server 2012: Infraestructura de Escritorio Virtual

LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN

Sistema para el control y tramitación de documentos SITA MSc. María de la Caridad Robledo Gómez y Ernesto García Fernández.

MODERNIZANDO PCN Y RECUPERACION DE DESASTRES UTILIZANDO VIRTUALIZACION Y LA NUBE

D- Realiza un informe sobre los diferentes programas que existen en el mercado informático que permite crear imágenes de respaldo de tu equipo.

MANUAL DE USUARIO SISTEMA DE ALMACEN DIF SONORA

Oracle vs Oracle por Rodolfo Yglesias Setiembre 2008

Catoira Fernando Fullana Pablo Rodriguez Federico [MINERIA DE LA WEB] Proyecto Final - Informe Final

Service Oriented Architecture: Con Biztalk?

SIEWEB. La intranet corporativa de SIE

Creación y administración de grupos de dominio

Análisis y diseño del sistema CAPÍTULO 3

CAPITULO I FORMULACION DEL PROBLEMA

Gestión de Permisos. Bizagi Suite. Copyright 2014 Bizagi

CMS JOOMLA. Características

1 EL SISTEMA R/3 DE SAP AG

NBC /Febrero/2006 Modalidad Llave en mano Propuesta

Índice INTERNET MARKETING 1

Introducción CAPÍTULO 1

4. Programación Paralela

GlusterFS. Una visión rápida a uno de los más innovadores sistema de archivos distribuido

Alfresco permite su integración y personalización en sistemas de gestión documental para implementar funcionalidades específicas

GENERALIDADES DE BASES DE DATOS

BASE DE DATOS RELACIONALES

Custodia de Documentos Valorados

Unidad III. Software para la administración de proyectos.

Windows Server 2012: Infraestructura de Escritorio Virtual

Diseño, desarrollo e implementación de una nueva versión de la Herramienta Helpdesk

GUIA DEL ADMINISTRADOR INSTITUCIONAL

Cloud Security 4.1.0

ARQUITECTURA DE DISTRIBUCIÓN DE DATOS

MENSAREX: SISTEMA DE MENSAJERÍA DEL MINREX Gretel García Gómez Ministerio de Relaciones Exteriores Cuba.

Fecha de entrada en vigor: 3 de diciembre de 2013

En la nueva versión encontrarás

Mi Negocio en Línea. DESCRIPCIÓN y CONCEPTO DEL PRODUCTO

u Eliminación de cargos de suscripción al tener el sistema en la empresa, puede eliminar los costos de servicio mensuales.

Soluciones innovadoras para optimizar su infraestructura TI. Virtualización con el sistema operativo i, PowerVM y Power Systems de IBM

MANUAL COPIAS DE SEGURIDAD

POTENCIANDO NEGOCIOS EN TIEMPO REAL. Especificaciones Técnicas

Centro Virtual de Procesamiento y su uso para los servicios de inteligencia empresarial

I. CONCEPTO DE ERP. II. ORIGEN DE LOS ERP.

I INTRODUCCIÓN. 1.1 Objetivos


INFORME TECNICO ESTANDARIZACION DEL SERVICIO DE SOPORTE DE LA PLATAFORMA TRANSACCIONAL TRANSLINK TRANSACTION SERVICES OCTUBRE

Transcripción:

Mirada a bases de datos NoSQL de código abierto orientadas a documentos A look to the NoSQL open source document databases MsC. Yudisney Vazquez Ortíz 1 *, MsC. Anthony Rafael Sotolongo León 2 1* Departamento de PostgreSQL, Centro DATEC, Facultad 6, Universidad de las Ciencias Informáticas, yvazquezo@uci.cu. Carretera a San Antonio de los Baños Km 2 ½, Boyeros, Ciudad de La Habana, Cuba. 2 Departamento de PostgreSQL, Centro DATEC, Facultad 6, Universidad de las Ciencias Informáticas, asotolongo@uci.cu. Carretera a San Antonio de los Baños Km 2 ½, Boyeros, Ciudad de La Habana, Cuba. Resumen Por más de veinte años el escenario de almacenamiento de la información ha sido dominado por las bases de datos relacionales. Un novedoso concepto de almacenamiento de datos ha venido ganando espacio, las llamadas bases de datos NoSQL, especialmente debido a la escalabilidad y velocidad de sus tiempos de respuestas, superiores a las de los sistemas relacionales. En el presente artículo se realiza una introducción a este tipo de tecnologías, haciendo énfasis en MongoDB, CouchDB y Terrastore, bases de datos orientadas a documentos y de código abierto con gran aceptación en el mercado que facilitan el trabajo en la Web, sobre todo en aplicaciones de comercio electrónico. Se detallan las características más relevantes de cada una, brindando elementos para la selección de alguna acorde a las necesidades de entornos reales de producción. Palabras clave: bases de datos, NoSQL, orientadas a documentos Abstract For more than 20 years the information storage scenario had been dominated by the relational databases. A new concept of data storage has been gaining space, the called NoSQL databases, especially for their scalability and velocity of their responses times, superiors to the relational systems. This paper makes an introduction to these technologies types, emphasizing in MongoDB, CouchDB and Terrastore, open source document databases with a great acceptation in the market, that make more easy the work in the Web above all in e-commerce applications. It provides 1

the relevant features of them, give elements for the selection of someone agree with the needs of real production environments. Keywords: databases; NoSQL, document-oriented Introducción Por más de veinte años el escenario de almacenamiento de la información ha sido dominado por las bases de datos relacionales. Un novedoso concepto de almacenamiento de datos ha venido ganando espacio, las llamadas bases de datos NoSQL, especialmente debido a la escalabilidad y velocidad de sus tiempos de respuestas, superiores a las de los sistemas relacionales. (Leavitt, 2010) Estas bases de datos han estado entre las tendencias de uso de las tecnologías de la información. Dentro del grupo de compañías que las desarrollan destacan Facebook con Cassandra, Amazon con Dynamo y Google con Bigtable. Otras las usan para manipular su información, como el gestor de blogs Tumblr que utiliza Redis y Hbase. (Qcon, 2012)- (Cassandra, 2012)- (DynamoDB, 2012)- (Bigtable, 2012)- (Tumblr, 2012) Las bases de datos NoSQL se dividen en cuatro grupos: llave-valor, llave valor por columnas, grafos y orientadas a documentos. Son las orientadas a documentos las que almacenan su información en forma de documentos, como su nombre lo dice, utilizando la Notación de Objetos JavaScript (JSON, por sus siglas en inglés). (Von der Weth, 2012)- (Harrison, 2010) Entre las bases de datos de código abierto más populares orientadas a documentos destacan MongoDB, CouchDB y Terrastore. Algunas empresas y entidades las están usando, tal es el caso de la Organización Europea de Investigaciones Nucleares con Couchdb y, Cragslist y MTV con MongoDB. (Von der Weth, 2012)- (MongoDB, 2012)- (CouchDB, 2012)- (Terrastore, 2012)- (MongoDB-1, 2012)- (CouchDB-1, 2012) Debido al interés creciente a nivel mundial en estas tecnologías de bases de datos NoSQL orientadas a documentos, el objetivo del presente artículo es detallar las características y potencialidades que brindan tres de las más empleadas, que permitan la selección de alguna según las necesidades y peculiaridades para entornos reales de producción, permitiéndoles a los usuarios hacer un mejor aprovechamiento de ellas. 2

Características de las bases de datos NoSQL orientadas a documentos Las bases de datos orientadas a documentos son libres de esquemas, permitiendo almacenar diferentes tipos de información en las mismas estructuras y, auto-describirse en la estructura de cada documento usando JSON. (Harrison, 2010) Cada documento simula una fila de una tabla de los sistemas relacionales, pero al ser libres de esquemas, permiten almacenar documentos de diferentes formatos; como se muestra en la siguiente representación en formato JSON: {"_id": "doc1", att1 : value1, att2 :value2} Entre las bases de datos NoSQL más empleadas se encuentran MongoDB, CouchDB y Terrastore. MongoDB es una base de datos de código abierto orientada a documentos, líder de las bases de datos NoSQL. Está escrita en C++ y, de sus características destacan que permite: (MongoDB, 2012) - El almacenamiento orientado a documentos, empleando el formato JSON, con esquemas dinámicos que ofrecen simplicidad y poder. - El soporte completo de indexado, sobre cualquier atributo. - La replicación y alta disponibilidad, estableciendo espejos a través de la red. - El escalamiento horizontal sin comprometer la funcionalidad. - Una amplia variedad de consultas a documentos. - La realización de consultas Map/Reduce, agregaciones flexibles y procesamiento de datos. - El almacenamiento GridFS, para archivos de cualquier tamaño. CouchDB es una base de datos de código abierto orientada a documentos. Entre sus características destacan que: (CouchDB, 2012) - Almacena los datos con JSON. - Permite consultar, combinar y transformar los datos con JavaScript. - Permite la replicación de datos maestro-maestro. Terrastore es una base de datos de código abierto orientada a documentos, que provee funcionalidades de escalabilidad y elasticidad avanzadas sin sacrificar la consistencia. Sus características fundamentales son: (Terrastore, 2012) 3

- Soporta despliegue de un clúster simple o múltiples clústeres. - Permite añadir o eliminar nodos dinámicamente del clúster que está corriendo, son necesidad de apagarlo a realizar cambios en su configuración. - Permite escalar los datos, los documentos son particionados y distribuidos a través de los nodos, con un rebalanceo automático y transparente. - Permite escalar las operaciones de cómputo, las consultas y actualizaciones son distribuidas a los nodos que contienen los datos a consultar o actualizar, minimizando el tráfico de la red y distribuyendo la carga. - Provee consistencia por documento, garantizando que siempre se entregue el último valor del documento. - Provee soporte para la partición de datos personalizada, el procesamiento de eventos, las consultas de rangos, las consultas y procesamiento de funciones Map/Reduce y, la actualización de funciones del lado del servidor. La tabla 1 muestra un resumen de las características generales de cada gestor. Tabla 1: Características generales de MongoDB, CouchDB y Terrastore Características MongoDB 2.0 CouchDB 1.0.1 Terrastore 0.8 Lenguaje C++ Erlang Java Objetos Colecciones (paquetes), documentos Documentos, vistas Cubos (paquetes), documentos Acceso TCP/IP HTTP HTTP Compresión de datos Sí No No Sistema operativo Multiplataforma Multiplataforma Multiplataforma Capacidad de modelación La modelación en bases de datos NoSQL aún es un campo muy reciente pero ya existen las primeras aproximaciones, entre las que destacan las realizadas por Ilya Katsov en Highly Scalable Blog. (Katsov, 2012) Katsov en su post presenta algunas técnicas como la desmoralización, con la que se almacenan copias de la misma información en múltiples documentos o tablas, beneficiándose la complejidad de las consultas y evitando las uniones para encontrar la información. Propone, además, la agregación o el llamado esquema flexible, con el que se pueden anidar entidades dentro de otras disminuyéndose las uniones en la búsqueda de información. (Katsov, 2012) 4

Christian Kvalheim en Data Modeling: sample e-commerce system with MongoDB realiza una demostración de cómo modelar con MongoDB una base de negocios de comercio electrónico utilizando la técnica de agregación. (Kvalheim, 2012) Como las tres bases de datos en cuestión pueden almacenar los datos utilizando JSON, el ejemplo de modelación realizado por Kvalheim puede ser aplicado también en CouchDB y Terrastore. Por tanto, se pueden utilizar las tres bases de datos para el almacenamiento de información de aplicaciones de comercio electrónico u otras aplicaciones similares. Capacidad de consulta La capacidad de consulta está dada por la posibilidad que brinda el gestor de consultar los datos almacenados. Se puede acceder mediante especificaciones de las API de acceso (del inglés Application Program Interface), en dependencia del leguaje de acceso y de las funciones Map/Reduce, que pueden ser escritas en JavaScript o variaciones del propio lenguaje ajustados al gestor, permitiendo el filtro y ordenamiento del resultado. (Chodorow, 2010)- (Anderson, y otros, 2010) MongoDB posibilita realizar consultas en JavaScript, además de algunas funciones de agregación como COUNT, GROUP y DISTINCT, permitiendo escribir funciones propias, siempre especificando la colección a utilizar, y la creación de índices para agilizar búsquedas, como se demuestra en Implementing Aggregation Functions in MongoDB. (Arun Viswanathan, 2012) CouchDB posibilita escribir consultas en JavaScript, además cuenta con un potente motor de vistas que posibilita hacer más eficientes las búsquedas, pues indexa los datos. En las consultas puede además incluir funciones de agregación. (Holt, 2011) Terrastore posibilita la escritura de consulta en JavaScript y utilizando una API en Java que brinda, siempre especificando el cubo a utilizar. (Terrastore, 2012) 5

Por tanto, los tres gestores brindan características de consultas, aspecto necesario para las aplicaciones en producción, destacando cómo MongoDD y CouchDB tienen mecanismos de indexación potentes posibilitando mejores tiempos de respuestas. Replicación La replicación de datos permite tener los datos distribuidos en diferentes nodos. Esta característica es muy útil pues incrementa el rendimiento, sobre todo en las consultas de lectura, traduciéndose en disponibilidad y rapidez. Es, por ende, una de las características más importante en las bases de datos NoSQL orientadas a documentos. (Orend, 2010) MongoDB permite la replicación maestro-esclavo (las escrituras se realizan en un nodo principal y estas se difunden por los nodos esclavos; las lecturas pueden ser en cualquier nodo), contando además con un excelente mecanismo interno de recuperación antes fallos. (MongoDB, 2012) Por su parte, CouchDB permite la replicación maestro-maestro (se puede escribir en cualquier nodo, difundiéndose la información a los demás). Cuenta con un algoritmo de resolución de conflictos para evitar los problemas con la consistencia de la información, el mecanismo de recuperación antes fallos depende de un agente externo pero es totalmente posible pues utiliza la interfaz de comunicación HTTP. (Holt, 2011) Terrastore permite la replicación maestro-maestro, contando además con mecanismos de resolución antes fallos, utilizando para esto un maestro pasivo listo para cualquier caída del maestro primario o activo. (Terrastore, 2012) Como se evidencia, los tres gestores permiten la replicación de datos. Para los negocios donde existen varios servidores de escritura CouchDB se ajusta mejor al entorno, pero el mecanismo de recuperación nativo antes fallos de MongoDB y Terrastore los hacen muy potentes para entornos donde sea imprescindible. Fragmentación La fragmentación de datos permite que se pueda tener la información fragmentada por varios nodos. Es, al igual que la replicación, una de las características más importantes de las bases de datos NoSQL orientadas a documentos. MongoDB permite la fragmentación nativa de datos mediante el mecanismo autoshardind con los llamados Shard Keys. (Chodorow, y otros, 2010) 6

CouchDB, por su parte, no posee una solución nativa de fragmentación, pero se puede lograr mediante aplicaciones intermediarias utilizando el mecanismo de consultas por Map/Reduce. (Holt, 2011) Terrastore posee un mecanismo nativo de fragmentación de datos mediante hash de distribución, aunque el usuario puede escribir su propio mecanismo. (Terrastore, 2012) Lo anterior demuestra que los tres gestores garantizan esta importante característica, que posibilita además la escalabilidad horizontal de las bases de datos. Almacenamiento de archivos El almacenamiento de archivos en el gestor es la capacidad de los gestores de incluir dentro de sus datos información binaria como puede ser imágenes, ejecutables, etc. MongoDB permite el almacenamiento de información binaria utilizando el mecanismo GridFS detallado en el capítulo 7 de MongoDB, The Definitive Guide. CouchDB, por su parte, permite el almacenamiento de información binaria utilizando el concepto de adjunto (attachments) como en los mensajes de correo electrónico, lo cual se detalla en el capítulo 4 de CouchDB, The Definitive Guide. Terrastore no permite el almacenamiento de archivos binarios en su sistema de almacenamiento. (Terrastore, 2012) Conclusiones Las bases de datos NoSQL de código abierto orientadas a documentos MongoDB, CouchDB y Terrastore, poseen un grupo de características avanzadas y muy útiles para las aplicaciones en entornos reales de producción. Cada una con sus peculiaridades que les permiten adaptarse a uno u otro entorno. Se destacan la capacidad de replicación y fragmentación de los datos, que permiten escalar horizontalmente con facilidad, necesidad muy demandada en la actualidad por el crecimiento constante de las aplicaciones. 7

Referencias Anderson, J. Chris, Lebnardt, Jan y Slater, Noah. 2010. CouchDB, The Definitive Guide. s.l. : O'Reilly, 2010. Arun Viswanathan, Shruthi Kumar. 2012. InfoQ. Implementing Aggregation Functions in MongoDB. [En línea] 2012. http://www.infoq.com/articles/implementing-aggregation-functions-in- mongodb?utm_source=nosql+weekly+newsletter&utm_campaign=9b68579e18- NoSQL_Weekly_Issue_83_June_28_2012&utm_medium=email. Bigtable. 2012. Bigtable. Sitio oficial del proyecto Bigtable. [En línea] 2012. http://research.google.com/archive/bigtable.html. Cassandra. 2012. Cassandra. Sitio oficial del proyecto Cassandra. [En línea] 2012. http://cassandra.apache.org. Chodorow, K. 2010. CouchDB vs. MongoDB Benchmark. [En línea] 2010. http://www.snailinaturtleneck.com/blog/2009/06/29/couchdb-vs-mongodb-benchmark/. Chodorow, Kristina y Dirolf, Michael. 2010. MongoDB, The Definitive Guide. s.l. : O Reilly Media, 2010. CouchDB. 2012. CouchDB. Sitio Oficial del proyecto CouchDB. [En línea] 2012. www.couchdb.org. CouchDB-1. 2012. CouchDB. Why Large Hadron Collider Scientists are Using CouchDB. [En línea] 2012. http://www.readwriteweb.com/enterprise/2010/08/lhc-couchdb.php. DynamoDB. 2012. DynamoDB. Sitio oficial del proyecto DynamoDB. [En línea] 2012. http://aws.amazon.com/es/dynamodb. Harrison, G. 2010. dbta.com. NoSQL and Document-Oriented Databases. [En línea] 2010. http://www.dbta.com/articles/columns/notes-on-nosql/nosql-and-document-oriented-databases-72035.aspx. Holt, Bradley. 2011. Csaling CouchDB. s.l. : O'Reilly, 2011. Katsov, Ilya. 2012. Highly Scalable Blog. NoSQL Data Modeling Techniques. [En línea] 2012. http://highlyscalable.wordpress.com/2012/03/01/nosql-data-modeling-techniques/. Kvalheim, Christian. 2012. InfoQ. Data Modeling: Sample E-Commerce System with MongoDB. [En línea] 2012. http://www.infoq.com/articles/data-model- mongodb?utm_source=nosql+weekly+newsletter&utm_campaign=ce56b22f0b- NoSQL_Weekly_Issue_81_June_14_2012&utm_medium=email. Leavitt, N. 2010. "Will NoSQL Databases Live Up to Their Promise? 2010. págs. pág. 12-14. MongoDB. 2012. MongoDB. Sitio Ofical del proyecto MongoDB. [En línea] 2012. www.mongodb.org. MongoDB-1. 2012. MongoDB. Production Deployments. [En línea] 2012. http://www.mongodb.org/display/docs/production+deployments. 8

Orend, Kai. 2010. Analysis and Classification of NoSQL Databases and Evaluation of their Ability to Replace an Object-relational Persistence Layer. Technical University of Munich. Munich : s.n., 2010. Master thesis. Qcon. 2012. infoq.com. Most Important Software Development Trends for 2012, as Voted by QCon London Attendees. [En línea] 2012. http://www.infoq.com/news/2012/03/top-technologies-qcon-london. Terrastore. 2012. Terrastore. Sitio ofical del proyecto Terrastore. [En línea] 2012. http://code.google.com/p/terrastore. Tumblr. 2012. Tumblr Architecture - 15 Billion Page Views A Month And Harder To Scale Than Twitter. [En línea] 2012. http://highscalability.com/blog/2012/2/13/tumblr-architecture-15-billion-page-views-a-month-and-harder.html. Von der Weth, C. 2012. Datta, A. Multiterm Keyword Search in NoSQL Systems. 2012. págs. pág. 34-42. 9