Bases de datos de documentos en un entorno de datos grande
Usted encontrará dos tipos de bases de datos de documentos para proyectos de datos grandes. Uno a menudo se describe como un repositorio de contenido completo de estilo de documento. La otra es una base de datos para el almacenamiento de componentes de documentos para el almacenamiento permanente como una entidad estática o dinámica para el montaje de las partes de un documento. La estructura de los documentos y sus partes es proporcionada por javascript Object Notation (JSON) y / o JSON binario (BSON).
Bases de datos de documentos son más útiles cuando se tiene que producir una gran cantidad de informes y que necesitan para ser montados de forma dinámica a partir de elementos que cambian con frecuencia.
En su esencia, JSON es un formato de intercambio de datos, basado en un subconjunto del lenguaje de programación javascript. Aunque parte de un lenguaje de programación, es textual en la naturaleza y muy fácil de leer y escribir. También tiene la ventaja de ser fácil para los ordenadores de manejar. Existen dos estructuras básicas en JSON, y son apoyados por muchos, si no todos, los lenguajes de programación modernos.
La primera estructura básica es una colección de pares nombre / valor, y se representan mediante programación como objetos, registros, listas de la forma adecuada, y así sucesivamente. La segunda estructura básica es una lista ordenada de valores, y están representados mediante programación como arrays, listas o secuencias. BSON es una serialización binaria de las estructuras JSON diseñados para aumentar el rendimiento y la escalabilidad.
MongoDB para grandes datos
MongoDB es el nombre del proyecto para la " hu (mongo) nos la base de datos " sistema. Es mantenido por una empresa llamada 10gen como código abierto y está disponible libremente bajo la licencia GNU AGPL v3.0. Las licencias comerciales con soporte completo están disponibles en 10gen.
MongoDB se compone de bases de datos que contienen " colecciones ". Una colección se compone de " documentos, " y cada documento se compone de campos. Al igual que en las bases de datos relacionales, puede indexar una colección.
Si lo hace, aumenta el rendimiento de las operaciones de búsqueda de datos. A diferencia de otras bases de datos, sin embargo, MongoDB vuelve algo llamado " cursor, " que sirve como un puntero a los datos. Esta es una capacidad muy útil, ya que ofrece la opción de contar o clasificar los datos sin extraerlo. Nativamente, MongoDB soporta BSON, la implementación binaria de documentos JSON.
MongoDB es también un ecosistema que consta de los siguientes elementos:
De alta disponibilidad y servicios de replicación para la ampliación a través de redes locales y de área amplia.
Un sistema de archivos basado en la red, que permite el almacenamiento de objetos grandes dividiéndolas entre varios documentos.
MapReduce para apoyar el análisis y agregación de diferentes colecciones / documentos.
Un servicio sharding que distribuye una sola base de datos en un clúster de servidores en una sola o en múltiples centros de datos. El servicio es accionado por una llave fragmento. La clave fragmento se utiliza para distribuir documentos de forma inteligente a través de múltiples instancias.
Un servicio de consulta que admite consultas ad hoc, consultas distribuidas y búsqueda de texto completo.
Implementaciones eficaz MongoDB incluyen
Gestión de contenidos de gran volumen
Redes Sociales
Archivado
Análisis en tiempo real
CouchDB para grandes datos
Otra base de datos no relacional muy popular es CouchDB. Como MongoDB, CouchDB es de código abierto. Es mantenido por la Apache Software Foundation y está disponible bajo la licencia Apache v2.0. A diferencia de MongoDB, CouchDB fue diseñado para imitar la web en todos los aspectos.
Por ejemplo, CouchDB es resistente a los abandonos de red y seguirá funcionando muy bien en zonas donde la conectividad de red es irregular. También está en casa en un teléfono inteligente o en un centro de datos. Todo esto viene con algunas ventajas y desventajas. Debido a la mímica web subyacente, CouchDB es alta latencia que resulta en una preferencia para el almacenamiento de datos local.
CouchDB no se adapta bien a las implementaciones más pequeñas. Usted debe determinar si estas compensaciones pueden ser ignorados al comenzar su aplicación de datos grande.
Bases de datos CouchDB se componen de los documentos que constan de los campos y los archivos adjuntos, así como un " Descripción " del documento en la forma de metadatos que se mantiene automáticamente por el sistema. La tecnología subyacente cuenta con todas las capacidades de ACID. La ventaja en CouchDB sobre relacional es que los datos se empaqueta y listo para la manipulación o el almacenamiento en lugar de dispersos a través de filas y tablas.
CouchDB es también un ecosistema con las siguientes capacidades:
Compactación: Las bases de datos se comprimen para eliminar espacio desperdiciado cuando se alcanza un cierto nivel de vacío. Esto ayuda a rendimiento y eficiencia para la persistencia.
Ver modelo: Un mecanismo para filtrar, organizar y presentación de informes sobre los datos que utilizan un conjunto de definiciones que se almacenan como documentos en la base de datos. Usted encontrará una relación de uno a muchos de bases de datos a puntos de vista, para que puedas crear muchas formas diferentes de representar los datos que tiene " en lonchas y en dados ".
Replicación y distribuidos servicios: Almacenamiento de documentos está diseñado para proporcionar la replicación bidireccional. Réplicas parciales se pueden mantener para apoyar la distribución basada en criterios o migración a dispositivos con conectividad limitada. Replicación nativo es entre iguales basada, pero se puede aplicar Maestro / Esclavo, Maestro / Maestro, y otros tipos de modalidades de replicación.
Implementaciones efectivas CouchDB incluyen
Gestión de contenidos de gran volumen
La ampliación del smartphone para centro de datos
Las aplicaciones con conectividad de red limitada o lenta