Modelo de Gobierno de Datos con SPARK

Modelo de Gobierno de Datos con SPARK ¿QUÉ HAY EN ESTE CAPÍTULO? Definición de NoSQL Configuración de contexto al explicar la historia de la apar
Author:  Silvia Salas Tebar

2 downloads 139 Views 359KB Size

Recommend Stories


Modelo de base de datos única con múltiples geobases de datos. Modelo de múltiples bases de datos espaciales
Modelo de múltiples bases de datos espaciales Modelo de base de datos única con múltiples geobases de datos Con la versión 9.0 de ArcSDE , era fact

2.1 Definición de modelo de datos
2.1 Definición de modelo de datos De acuerdo a [ Ullman1999 ]: ``Un modelo de datos es un sistema formal y abstracto que permite describir los datos d

Bases de Datos. Modelo relacional de Codd
Departamento de Lenguajes y Sistemas Informáticos Avda Reina Mercedes s/n. 41012 Sevilla Tlf/Fax 954 557 139 E-mail [email protected] www.lsi.us.es E.T.S

Story Transcript

Modelo de Gobierno de Datos con SPARK ¿QUÉ

HAY

EN

ESTE

CAPÍTULO?

Definición de NoSQL Configuración de contexto al explicar la historia de la aparición de NoSQL Presentación de las variantes NoSQL Listado de algunos productos NoSQL populares Al igual que las tecnologías más nuevas y próximas, NoSQL está envuelta en una neblina de miedo, incertidumbre y duda. El mundo de los desarrolladores esta, probablemente, dividido en tres grupos cuando se trata de NoSQL: Los que lo aman - Las personas de este grupo están explorando cómo NoSQL cabe en una pila de aplicaciones. Lo están usando, creando, y manteniendo al día con las novedades en el mundo de NoSQL. Los que lo niegan - Los miembros de este grupo están centrados en las deficiencias de NoSQL, o están desde fuera para demostrar que es inútil.

Página

NoSQL es, literalmente, una combinación de dos palabras: No y SQL. La implicación es que NoSQL es una tecnología o producto de los contadores de SQL. Los creadores y primeros adoptantes de la palabra de moda NoSQL probablemente quería decir que No RDBMS o No relacional, pero se enamoró de la forma en que suena NoSQL y lo pegajoso que es. A su debido tiempo, algunos han propuesto NonReal como una alternativa a NoSQL. Algunos otros han tratado de rescatar el término original, proponiendo que NoSQL es en realidad un acrónimo que se expande a "Not Only SQL" (no solo SQL). Cualquiera que sea el significado literal, NoSQL se utiliza hoy en día como un término genérico para todas las bases de datos y almacenes de datos que no siguen los principios de RDBMS populares y bien establecidos y con frecuencia se relacionan con grandes conjuntos de datos accedido y manipulado en una escala Web. Esto significa NoSQL no es un producto único o incluso no es una sola tecnología. Esto

1

Aquellos que lo ignoran Los desarrolladores de este grupo son agnósticos ya sea porque están esperando a que la tecnología madure, o creen NoSQL es una moda pasajera e ignoran que les proteja de la montaña rusa ", un ciclo de bombo" o simplemente no han tenido la oportunidad de llegar a él.

Modelo de Gobierno de Datos con SPARK representa una clase de productos y una colección de diversos conceptos, y relaciona a veces, acerca del almacenamiento y manipulación de datos. Google, a lo largo de los últimos años, construyó una infraestructura escalable masivamente por su motor de búsqueda y otras aplicaciones, como Google Maps, Google Earth, Gmail, Google Finance y Google Apps. El enfoque de Google era resolver el problema en todos los niveles de la pila de aplicaciones. El objetivo era construir una infraestructura escalable para el procesamiento paralelo de grandes cantidades de datos. Google por lo tanto crea un mecanismo completo que incluye un sistema de ficheros distribuido, una columna-orientada a la familia almacén de datos, un sistema de coordinación distribuida, y un entorno paralelo MapReduce algoritmo basado en la ejecución. La publicación de los documentos de Google para el público estimuló un gran interés entre los desarrolladores de código abierto. Los creadores del motor de búsqueda de código abierto Lucene, fueron los primeros en desarrollar una versión de código abierto que replican algunas de las características de la infraestructura de Google. Posteriormente, los desarrolladores de Lucene centrales se unieron a Yahoo, donde con la ayuda de una gran cantidad de otros colaboradores, crearon un universo paralelo que imitaba todas las piezas de la pila de computación distribuida por Google. Esta alternativa de código abierto es Hadoop, sus sub-proyectos, y los proyectos conexos. El tamaño de datos aumenta día con día y las fuentes de la creación de datos es cada vez más diversa.

Página

La escalabilidad es la capacidad de un sistema para aumentar el rendimiento con la adición de recursos para atender el aumento de carga. Escalabilidad puede lograrse ya sea mediante el suministro de un recurso grande y potente para satisfacer las demandas adicionales o se puede lograr basándose en un conjunto de máquinas ordinarias para trabajar como una unidad. La participación de las máquinas grandes y potentes se clasifica típicamente como escalabilidad vertical. El suministro de superordenadores con muchos núcleos de CPU y grandes cantidades de almacenamiento directamente conectado es una solución típica de escala vertical. Estas opciones de escala verticales suelen ser caros. La

2

Escalabilidad

Modelo de Gobierno de Datos con SPARK alternativa a la escalabilidad vertical es la escalabilidad horizontal. Escalabilidad horizontal implica un conjunto de sistemas de productos donde las escalas de conjunto son a medida que aumenta la carga. Escalabilidad horizontal típicamente implica agregar nodos adicionales al servicio de carga adicional. Definición e introducción MapReduce es un modelo de programación paralela que permite distribuir el procesamiento de grandes conjuntos de datos en un grupo de ordenadores. Al igual que la función de un mapa, la programación funcional tiene un concepto “función reduce”. Una “función reduce” en la programación funcional es más comúnmente conocida como una función de plegado. Esta misma idea simple de mapa y reducir se ha extendido a trabajar en grandes conjuntos de datos. La idea es ligeramente modificado para trabajar en colecciones de tuplas o pares clave / valor. Bigtable de Google un modelo en que los datos almacenados esta de forma orientada a columnas. Esto contrasta con el formato de filas orientadas en RDBMS. Cada unidad de datos puede ser pensado como un conjunto de pares clave / valor, cuando se identifica la propia unidad con la ayuda de un identificador primario, a menudo referida como la clave primaria. Bigtable y sus clones tienden a llamar a esta clave principal de la fila de clave.

Los datos son persistentes de forma tolerante a fallos donde tres copias de cada conjunto de datos se mantienen.

Página

Hive es un sistema de almacenamiento de datos para Hadoop que facilita resúmenes de datos fáciles, consultas ad-hoc, y el análisis de grandes conjuntos de datos almacenados en los sistemas de archivos compatibles con Hadoop. Hive proporciona un mecanismo para proyectar la estructura sobre estos datos y consultar los datos utilizando un lenguaje SQL, llamado HiveQL. Al mismo tiempo,

3

HIVE:

Modelo de Gobierno de Datos con SPARK este lenguaje también permite tradicionalmente mapa / reducir los programadores para conectar sus mappers personalizados y reductores cuando es inconveniente o ineficiente para expresar esta lógica en HiveQL. ¿QUÉ ES EL AHORRO? El ahorro es un marco de software y un lenguaje de definición de interfaz que permite entre lenguajes servicios y desarrollo de API. HQL: Hypertable es una fuente de alto rendimiento, abierto, base de datos escalable masivamente el modelo de Bigtable, propiedad de Google, base de datos masivamente escalables. Un almacén simple, potente, clave / valor es Berkeley DB de Oracle. Berkeley DB es un motor de almacenamiento puro donde la clave y el valor son una matriz de bytes. El motor de almacenamiento de base de datos Berkeley no atribuye significado a la clave o el valor. Se necesita pares de matrices de bytes y devuelve en la misma vuelta al cliente que llama. Berkeley DB permite que los datos se almacenan en caché en la memoria y volcado a disco a medida que crece. También hay una noción de indexación de las teclas de búsqueda más rápida y de acceso. Berkeley DB ha existido desde mediados de la década de 1990. Fue creado para reemplazar ndbm AT & T como parte de la migración de BSD 4.3 a 4.4. En 1996, Sleepycat Software fue creada para mantener y proporcionar soporte para Berkeley DB.

Página

Debido a una base de datos incluye más nuevos conjuntos de datos, es posible la estructura de la colección se convertirá en una restricción y por lo tanto necesita modificación. En el sentido tradicional de base de datos relacional, es posible que deba modificar el esquema de la tabla. En bases de datos relacionales, alterando esquemas de tabla también significa asumir una tarea de migración de datos complicados de hacer que los datos estén en el antiguo y el nuevo esquema de

4

Otro sistema de almacenamiento en caché popularmente utilizado en aplicaciones web es Memcached, que es un código abierto y de alto rendimiento del sistema de almacenamiento en caché de objetos.

Modelo de Gobierno de Datos con SPARK existir juntos.

CASSANDRA: Es una base de datos no relacional distribuida y basada en un modelo de almacenamiento de «clave-valor», escrita en Java. Permite grandes volúmenes de datos en forma distribuida. Por ejemplo, lo usa Twitter para su plataforma. Su objetivo principal es la escalabilidad lineal y la disponibilidad. La arquitectura distribuida de Cassandra está basada en una serie de nodos iguales que se comunican con un protocolo P2P con lo que la redundancia es máxima. Cassandra es desarrollada por la Apache Software Foundation. En las versiones iniciales utilizaba un API propia para poder acceder a la base de datos. En los últimos tiempos están apostando por un lenguaje denominado CQL (Cassandra Query Language) que posee una sintaxis similar a SQL aunque con muchas menos funcionalidades. Esto hace que iniciarse en el uso de la misma sea más sencillo. Permite acceder en Java desde JDBC. MONGO DB Lo siguiente es una breve descripción de las características principales de MongoDB: Consultas Ad hoc MongoDB soporta la búsqueda por campos, consultas de rangos y expresiones regulares. Las consultas pueden devolver un campo específico del documento pero también puede ser una función JavaScript definida por el usuario. Indexación Cualquier campo en un documento de MongoDB puede ser indexado, al igual que es posible hacer índices secundarios. El concepto de índices en MongoDB es similar a los encontrados en base de datos relacionales.

Página

MongoDB soporta el tipo de replicación maestro-esclavo. El maestro puede ejecutar comandos de lectura y escritura. El esclavo puede copiar los datos del

5

Replicación

Modelo de Gobierno de Datos con SPARK maestro y sólo se puede usar para lectura o para copia de seguridad, pero no se pueden realizar escrituras. El esclavo tiene la habilidad de poder elegir un nuevo maestro en caso del que se caiga el servicio con el maestro actual. Balanceo de carga MongoDB se puede escalar de forma horizontal usando el concepto de “shard”.10 El desarrollador elije una llave shard, la cual determina cómo serán distribuidos los datos en una colección. Los datos son divididos en rangos (basado en la llave shard) y distribuidos a través de múltiples shard. Un shard es un maestro con uno o más esclavos. MongoDB tiene la capacidad de ejecutarse en múltiple servidores, balanceando la carga y/o duplicando los datos para poder mantener el sistema funcionando en caso que exista un fallo de hardware. La configuración automática es fácil de implementar bajo MongoDB y nuevas máquinas pueden ser agregadas a MongoDB con el sistema de base de datos corriendo. Almacenamiento de archivos MongoDB puede ser utilizado con un sistema de archivos, tomando la ventaja de la capacidad que tiene MongoDB para el balanceo de carga y la replicación de datos utilizando múltiples servidores para el almacenamiento de archivos. Esta función (que es llamada GridFS11 ) está incluida en los drivers de MongoDB y disponible para los lenguajes de programación que soporta MongoDB. Esta base de datos expone funciones para la manipulación de archivos y contenido a los desarrolladores. En un sistema con múltiple servidores, los archivos pueden ser distribuidos y copiados entre los mismos varias veces y de una forma transparente, de esta forma se crea un sistema eficiente que maneja fallos y balanceo de carga. Agregación La función MapReduce puede ser utilizada para el procesamiento por lotes de datos y operaciones de agregación. Esta función permite que los usuarios puedan obtener el tipo de resultado que se obtiene cuando se utiliza el comando SQL “group-by”. Ejecución de JavaScript del lado del servidor MongoDB tiene la capacidad de realizar consultas utilizando JavaScript, haciendo que estas sean enviadas directamente a la base de datos para ser ejecutadas.

Página

Berkeley DB viene en tres sabores distintos y admite varias configuraciones:

6

BERKELEY DB:

Modelo de Gobierno de Datos con SPARK Berkeley DB - almacén clave / valor programado en C. Este es el sabor original. Berkeley DB Java Edition (JE) - Key / valor tienda reescrito en Java. Puede ser fácilmente incorporado en una pila de Java. Berkeley DB XML - Escrito en C + +, esta versión se ajusta al almacén de claves / valor que se comporte como un sistema de almacenamiento indexado y optimizado XML. Berkeley DB, también conocida como BDB, es un almacén de claves / valor profundo de sus entrañas. Tan simple como puede ser en el fondo, una serie de diferentes configuraciones son posibles con BDB. Por ejemplo, BDB se puede configurar para proporcionar concurrente no bloquear el acceso o las operaciones de apoyo. Se puede escalar como un clúster de alta disponibilidad de réplicas amo-esclavo.

Página

BDB se puede ejecutar como un almacén en memoria para contener pequeñas cantidades de datos o puede ser configurado como almacén de datos grande, con una forma rápida en memoria caché. Varias bases de datos se pueden configurar en una sola instalación física con la ayuda de una abstracción de nivel superior, llamado medio ambiente. Un ambiente puede tener varias bases de datos. Tienes que abrir un ambiente y luego una base de datos para escribir datos en él o leer datos de él. Usted debe cerrar una base de datos y el medio ambiente cuando haya completado sus interacciones para hacer un uso óptimo de los recursos. Cada elemento de la base de datos es un par clave / valor. La clave suele ser única, pero usted puede tener duplicados. Un valor se accede mediante una clave. Un valor recuperado se puede actualizar y volver a guardar en la base de datos. Se accede a múltiples valores y reiterado sobre el uso de un cursor. Los cursores le permiten recorrer la colección de valores y manipular una a la vez. Las transacciones y el acceso concurrente también se apoyan. La clave de un par clave / valor casi siempre sirve como clave principal, que está

7

BDB es una tienda de clave / valor de datos. Se trata de un motor de almacenamiento puro que no hace suposiciones sobre un esquema implícito o estructura a los pares clave / valor. Por lo tanto, BDB fácilmente permite un mayor nivel de API, consulta, y las abstracciones de modelado en la parte superior del subyacente clave / valor tienda. Esto facilita el almacenamiento rápido y eficiente de las aplicaciones específico de datos, sin la sobrecarga de traducirlo a un formato resumieron los datos. La flexibilidad que ofrece este diseño simple, pero elegante, que permite almacén datos estructurados y semi-estructurados en BDB.

Modelo de Gobierno de Datos con SPARK indexado. Otras propiedades en el valor podría servir como índices secundarios. Los índices secundarios se mantienen por separado en una base de datos secundaria. La base de datos principal, que tiene la clave / valor, por lo tanto, también se refiere a veces como la base de datos primaria. BDB se ejecuta como un servidor de automatización del almacén de datos, por lo que de forma estática o dinámica se enlaza con él, al acceder mediante el C, C + +, C #, Java, o lenguaje de scripting API desde un programa correspondiente. Almacenamiento de configuración Clave / valor se puede almacenar en cuatro tipos de estructuras de datos: B-tree, Serie de Hash, y regnum.

Página

Almacenamiento Hash Al igual que el B-tree, un hash también permite a los tipos complejos ser claves. Los valores hash tienen una estructura más lineal, en comparación con un B-tree. BDB estructuras hash permite duplicados. Mientras tanto un B-tree y unas llaves de apoyo complejas hash, hash de una base de datos por lo general supera a un árbol B cuando el conjunto de datos es muy superior a la cantidad de memoria disponible porque un árbol B mantiene más metadatos de un hash, y establecer una base de datos más grandes implica que los metadatos B-tree no puede caber en la memoria caché de la memoria. En una situación tan extrema de los metadatos de árbol-B, así como el registro de datos en sí a menudo se deben recoger archivos, lo que puede causar múltiples I /O s por operación. El método de acceso hash está diseñado para minimizar la I / Os requerido para acceder al registro de datos y por lo tanto en estos casos extremos, puede funcionar mejor

8

Un B-tree no necesita presentación, pero si lo hace es necesario revisar su definición. Es un árbol de equilibrada estructura de datos que mantiene sus elementos ordenados y permite un rápido acceso secuencial, inserciones y eliminaciones. Las claves y los valores pueden ser tipos de datos arbitrarios. En BDB el método de acceso B-tree permite duplicados. Esta es una buena opción si usted necesita tipos de datos complejos como claves. También es una gran opción si los patrones de acceso a datos para llevar acceso de registros contiguos o cercanos. B-tree mantiene una cantidad sustancial de metadatos para llevarlos a cabo eficientemente. Más aplicaciones BDB usan la configuración de almacenamiento B-tree.

Modelo de Gobierno de Datos con SPARK que un árbol B. Serie de almacenamiento Una serie es un conjunto secuencialmente almacenado de registros de longitud fija. Las claves se limitan a los números de registros lógicos, que son los tipos enteros. Los registros se añaden secuencialmente para permitir extremadamente rápido escribe. Si usted está impresionado por Apache Cassandra escrituras rápidas añadiendo a los registros, BDB dar con el método de acceso a la serie una prueba y usted no será decepcionado. Métodos también permiten la lectura y la actualización efectiva de la cabeza de la serie. Una serie tiene un apoyo adicional para el bloqueo a nivel de fila. Esto permite que la integridad transaccional eficaz incluso en casos de procesamiento concurrente. Registros numerados de almacenamiento Regnum es similar a una serie, pero permite registros de longitud variable. Como una serie, las llaves RECNO se limitan a enteros. Las diferentes configuraciones permiten almacenar tipos arbitrarios de datos en una colección. No hay otro esquema fijo que las impuestas por el modelo. En la situación extrema, eres bienvenido para almacenar tipos diferentes de valores para dos claves de una colección. Los tipos de valor pueden ser clases complejas, lo que podría representar un documento JSON, una compleja estructura de datos o un conjunto de datos estructurados. La única restricción es que realmente el valor debe ser serializable a una matriz de bytes. Una sola llave o un único valor pueden ser tan grande como 4 GB de tamaño. La posibilidad de índices secundarios permite filtrado sobre la base de las propiedades de valor. La base de datos principal no almacena los datos en un formato tabular y tan inexistentes propiedades no se almacenan en conjuntos de datos dispersos. Un índice secundario se salta todos los pares clave / valor que carecen de la propiedad en la que se crea el índice. En general, el almacenamiento es eficiente compacto y eficiente.

Página

Es un gestor de bases de datos de código abierto, cuyo foco está puesto en la facilidad de su uso y en ser "una base de datos que asume la web de manera completa". Se trata de una base de datos NoSQL que emplea JSON para almacenar los datos, JavaScript como lenguaje de consulta por medio de

9

COUCH DB:

Modelo de Gobierno de Datos con SPARK MapReduce y HTTP como API. Una de sus características más peculiares es la facilidad con la que permite hacer replicaciones. A diferencia de una base de datos relacional, CouchDB no almacena los datos y sus relaciones en tablas. En cambio, cada base de datos es una colección de documentos independientes. Cada documento mantiene sus propios datos y su esquema auto contenido. Una aplicación puede acceder a múltiples bases de datos, por ejemplo una residente en el teléfono móvil del usuario y otra residente en un servidor. Los metadatos del documento contienen información acerca de la versión del mismo, permitiendo refundir cualesquiera diferencias que puedan haberse producido mientras las bases de datos estaban desconectadas. CouchDB implementa una forma de control de concurrencia multiversión (MVCC) a fin de evitar la necesidad de bloquear el archivo de base de datos durante las escrituras. La resolución de conflictos se delega a la aplicación. Para resolver un conflicto generalmente se requiere primero refundir los datos en uno de los documentos para luego eliminar el otro. Almacenamiento de documentos CouchDB almacena los datos como "documentos", esto es, uno o más pares campo/valor expresados en JSON. Los valores de los campos pueden ser datos simples como cadenas de caracteres, números o fechas. Pero también se pueden usar listas ordenadas y vectores asociativos. Todos los documentos en una base de datos CouchDB tienen un identificador único y no requieren un esquema determinado. Semántica ACID CouchDB provee una semántica de atomicidad, consistencia, aislamiento y durabilidad. Lo hace implementando una forma de control de concurrencia multiversión, lo que significa que CouchDB puede manejar un gran número de lectores y escritores en paralelo, sin que surjan conflictos.

Página

Los datos almacenados se estructuran por medio de vistas. En CouchDB, cada vista se construye por medio de una función JavaScript que actúa como la mitad Map de una operación map/reduce. La función recibe un documento y lo

10

Vistas e índices Map/Reduce

Modelo de Gobierno de Datos con SPARK transforma en un único valor, retornándolo. CouchDB puede indexar vistas y mantener actualizados esos índices a medida de que se agregan, eliminan o actualizan documentos. Arquitectura distribuida con replicación CouchDB se diseñó con teniendo en mente la replicación bidireccional (o sincronización) y la operación off-line. Eso significa que múltiples réplicas pueden tener cada una sus propias copias de los mismos datos, modificarlas y luego sincronizar esos cambios en un momento posterior. Interfaz REST Todos los ítems tienen una URI única que queda expuesta vía HTTP. REST usa los métodos HTTP POST, GET, PUT y DELETE para las cuatro operaciones básicas CRUD (Create, Read, Update, Delete) con todos los recursos. Consistencia Eventual CouchDB garantiza consistencia eventual para poder ofrecer tanto disponibilidad como tolerancia a las particiones. Hecha para operar offline CouchDB puede replicar datos a dispositivos (como smartphones) que pueden quedar offline y manejar automáticamente la sincronización de los datos cuando el dispositivo vuelve a estar en línea. CouchDB también ofrece una interfaz de administración incorporada y accesible vía web llamada Futon.

Página

HBase es una base de datos abierta que implementa el concepto de BigTable, que si recuerdan es la tecnología que permite que Google escale toda su infraestructura a centenares de miles de servidores de bajo costo de una manera homogenea, sin las restricciones de una base de datos relacional (como MySQL, Oracle o MS SQL Server).

11

HBASE:

Modelo de Gobierno de Datos con SPARK Más específicamente, HBase es una base de datos distribuida que permite escalar casi linealmente con simplemente agregar más servidores al sistema. Para esto HBase puede utilizar opcionalmente una tecnología llamada HDFS (Hadoop Distributed File System) que básicamente es el análogo del GFS (Google File System), que no es más que un fichero de archivos distribuidos. Con esta arquitectura es posible lograr no solo altos niveles de rendimiento, sino que además altos niveles de redundancia en datos, ya que a cierto nivel los datos están distribuidos de manera redundante similar a como los datos son distribuidos en un sistema de discos duros con tecnología RAID 5 por ejemplo (aunque esta funcionalidad tengo que aun verificarla personalmente, pero sepan que es parte al menos del concepto original). Algo importante a notar aquí es que si algo hemos aprendido del Internet, y en particular de Aplicaciones Web, es que en muchos casos la demanda de usuarios es impredecible, en donde una pequeña empresa con una gran idea puede de la noche a la mañana recibir millones de visitas, y para eso mejor estar preparado que perder esas visitas, y es ahí en donde se le verá la importancia a HBase. Sin embargo, HBase no es solo una base de datos altamente escalable, sino que además es un nuevo paradigma que por fin quizás deje atrás las bases de datos relacionales en muchos casos típicos.

Página

12

Por décadas hemos dependido de bases de datos relacionales, y estas han sobrevivido las bases de datos de objetos, de XML, y toda variedad bajo el sol, pero gracias a las lecciones que Google le ha dado al mercado con su infraestructura, se ha hecho evidente que esta nueva filosofía de diseñar bases de datos es quizás la más adaptable para las necesidades de hoy en Internet.

Página

13

Modelo de Gobierno de Datos con SPARK

Página

14

Modelo de Gobierno de Datos con SPARK

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.