Bd NoSQL Familia de Columnas PROFA. MERCY OSPINA

Slides:



Advertisements
Presentaciones similares
Agenda ¿Qué es Big Data? ¿Por qué usar Big Data? ¿Quién usa Big Data? Hadoop Arquitectura de Hadoop.
Advertisements

IMPLEMENTACION CONTIGUA Y NO CONTIGUA
Arreglos Unidimensionales y Bidimensionales ESTRUCTURAS DE DATOS I
Rocío Contreras Aguila Primer Semestre 2010
Diseño de Bases de Datos
DEFINICIONES. TIPOS. SEMANA 12
Base de Datos Distribuidas FUNDAMENTOS DE BASES DE DATOS DISTRIBUIDAS
COLEGIO DE BACHILLERES PLANTEL 13 XOCHIMILCO-TEPEPAN MATERIA:TIC EQUIPO:23 PRESENTACION: BASE DE DATOS ALUMNAS: Velazquez Corona Elsa Ponciano Antonio.
Stuart Pérez A12729.
Confiabilidad en Bases de Datos Distribuidas
U NIDAD 2 L ENGUAJE DE DEFINICIÓN DE DATOS (DDL) 1.
SQL Server Integration Services SSIS
Estructuras de Datos (ARRAYS)
Servicios y Aplicaciones de un Centro de Operaciones de Red (NOC)
Julio Pacheco SQL SERVER 2005 XML APRENDIENDO CON EJEMPLOS.
UNIDAD II Modelo de Datos.
Johanna Lizeth Rodríguez Lorena Fda. Chávarro Ramos
MOTORES DE BASE DE DATOS
PROGRAMACIÓN EN JAVA Curso-taller inicial de programación en JAVA Facultad de Estadística e Informática TEMA II.
UNIDAD I Conceptos Básicos.
PROGRAMACION II.  Es un conjunto de datos no necesariamente del mismo tipo, los cuales se podrán manipular o realizar cualquier operación sobre cada.
Matrices Es una estructura homogénea, compuesta por varios elementos, todos del mismo tipo y almacenados consecutivamente en memoria A cada elemento se.
TIPOS Y ESTRUCTURAS BÁSICAS DE DATOS
Administración de Archivos
Ing. Fabián Ruano.  Definición  Diferencias con BD Centralizadas.
ESTRUCTURAS DE DATOS I Conocer, comprender y analizar algunos de los principales tipos de estructuras de datos.
Bases de datos en la Web n Las bases de datos permiten almacenar de una forma estructurada y eficiente toda la información de un sitio web n Ventajas –Proporcionar.
ESTRUCTURA DE DATOS EN JAVA
Clase 10: Estructuras de datos y arreglos.
ESTRUCTURA DE DATOS ESD-243
BASE DE DATOS BY: Julián Villar Vázquez.
Sistema de archivos Sistemas operativos.
Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),
PROGRAMACION DE ARCHIVOS (MEMORIA SECUNDARIA). Registros y archivos Si bien es cierto que se pueden manejar gran cantidad de datos del mismo y diferente.
(Organización y Manejo de Archivos)
Programacion Web Practica 1 Estudio de la aplicación distribuida: Apache Hadoop.
Cesar Hernández Rafael Machado Sandra Jiménez
Asignación de Espacio No Contiguo
PostgreSQL: Parte 1 Integrantes: Álvaro Marciales Claudio Torrez.
ESCUELA TECNOLÓGICA INSTITUTO TÉCNICO CENTRAL Ing. Johanna Vargas Esp. Gerencia de proyectos.
Fundamentos de Programación
Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 12 Otros Objetos de la Base de Datos.
Tema 2: Base de datos relacionales
Integrantes: Jorge Herrera M. Carlos Rodríguez R..
Los Sistemas de Archivos
Teoría de Sistemas Operativos Administración de Archivos.
Indexación M. Andrea Rodríguez Tastets DIIC - Universidad de Concepción
Estructura de los Sistemas Operativos
COLEGIO DE BACHILLERES PLANTEL 13 XOCHIMILCO-TEPEPAN MATERIA:TIC EQUIPO:21 PRESENTACION: BASE DE DATOS ALUMNAS: Adán Millán Sánchez.
Cristian Fonnegra Marin
Mapeo de Estructuras XML a Bases de Datos Relacionales
¿Qué es una Base de datos?
Sistemas de Archivos Sistemas Operativos.  Se debe proporcionar un almacenamiento secundario que respalda a la memoria principal  El Sistema de archivos.
PLATAFORMA TEÓRICO-CONCEPTUAL
Una base de datos es una colección de información organizada de forma que un programa de ordenador pueda seleccionar rápidamente los fragmentos de datos.
Mínimo equipo necesario Un equipo 586 con 128MB de RAM como mínimo es recomendado para un servidor de Firebird 2.0. Windows demanda mas CPU y memoria que.
MIA - Grupo 5 Unidad 2.
Sistema de ficheros Horizontales 1. Esquema similar a la asignación enlazada. 3. Designación, nombres de archivos dados por el usuario. 5. Información.
Optativa II Carlos Quilumbaqui. ¿Qué es Big Data? Big Data son grandes en cantidad, se capturan a un índice rápido, y son estructurados o no estructurados,
Bd NoSQL Clave Valor PROFA. MERCY OSPINA
Diccionario/Directorio de Datos
BASES DE DATOS CONCEPTOS BASICOS Elizabeth Maite Zarate Machaca “El tratamiento eficiente de la información al servicio del usuario”
Administración de Base de Datos Recuperación Prof Mercy Ospina Torres
Creado por Edgar Codd, 1970: Artículo “A Relational Model of Data for Large Shared Data Banks”. EL MODELO RELACIONAL.
BASES DE DATOS DISTRIBUIDAS M.C.C. María Guadalupe Villanueva Carrasco INGENIERIA EN SISTEMAS COMPUTACIONALES.
Gestión de Memoria – Parte 2
DML Transact SQL Sesión X Triggers. Duración 2 Horas.
*Pérez Pérez Diana Karen *Sánchez García José Luis *Valdespino Hinojosa Erick.
Bases de datos II Universidad del Cauca Ing. Wilson Ortega.
UNIVERSIDAD AUTÓNOMA DEL ESTADO DE MÉXICO FACULTAD DE INGENIERÍA COORDINACIÓN DE MATERIAS PROPEDÉUTICAS INGENIERÍA EN SISTEMAS ENERGÉTICOS SUSTENTABLES.
Transcripción de la presentación:

Bd NoSQL Familia de Columnas PROFA. MERCY OSPINA

Agenda Modelo de datos Operaciones Técnicas usadas Cuando usar Caso de estudio

Modelo de datos Columna: ◦ Concepto análogo a las bases de datos relacionales. ◦ Es una tripleta (nombre de columna, valor, marca de tiempo) ◦ Una familia de columna es similar a una tabla en las bases de datos relacionales ◦ Hay de dos tipos ◦ Familia de Columnas estándar ◦ Super Familia de Columnas

Modelo de datos 4 Familia de Columna estándar: ◦ Es un objeto que contiene columnas de datos relacionados ◦ Una tupla es un par clave: valor donde la clave esta asociada a un conjunto de columnas UserProfile = { Cassandra = age:20}, TerryCho = gender:"male"}, Cath = age:20, gender:"female", address:"Seoul"}, } Familia de columnasTupla Clave Conjunto de columnas

Modelo de datos 5

6 Super Familia de Columna: ◦ Es un objeto que contiene familias de columnas ◦ Una tupla es un par clave: valor donde la clave esta asociada a una familia de columnas

Modelo de datos 7 UserList={ Cath:{ username:{firstname:”Cath”,lastname:”Yoon”} address:{city:”Seoul”,postcode:”1234”} } Terry:{ username:{firstname:”Terry”,lastname:”Cho”} account:{bank:”hana”,accounted:”1234”} } Familia de columnas Clave Super Familia de columnas

Modelo de datos - Estructuras Tabla Super familia de columna Nombre Clave Familias de columnas Familia de columnas Nombre Conjunto de registros Registro Clave Conjunto de Columnas Columna Clave Valor Marca de tiempo (versión) 8

Tipos de datos 9 Los definidos por Json String - Cadenas de caracteres. Integer - Números enteros. Double - Números con decimales. Boolean - Booleanos verdaderos o falsos. Date - Fechas. Timestamp - Marcas de tiempo. Null - Valor nulo. Array - Arreglos de otros tipos de dato. Object - Otros documentos embebidos. Data Binaria - Punteros a archivos binarios. Javascript - código y funciones Javascript

Almacenamiento - columnas 10

Almacenamiento – familia de columnas 11 Columna 1 Columna 2 Columna 3 Columna 4 Columna 5 Columna n -Los miembros de una familia de columnas son almacenados juntos físicamente, tal como sucede en los SMBDR Orientados a Columna ◦ Pero no hay limitaciones en el tipo de datos ◦ Una familia de columnas puede tener cualquier cantidad de columnas ◦ Una columna puede contener cualquier tipo de dato

Vista lógica Row KeyTime StampColumnFamily contents ColumnFamily anchorColumnFamily people "com.cnn.www"t9anchor:cnnsi.com = "CNN" "com.cnn.www"t8anchor:my.look.ca = "CNN.com" "com.cnn.www"t6contents:html = " … ​ " "com.cnn.www"t5contents:html = " … ​ " "com.cnn.www"t3contents:html = " … ​ "

Vista física Row KeyTime StampColumn Family anchor "com.cnn.www"t9anchor:cnnsi.com = "CNN" "com.cnn.www"t8anchor:my.look.ca = "CNN.com" Row KeyTime StampColumnFamily contents: "com.cnn.www"t6 contents:html = " … ​ " "com.cnn.www"t5 contents:html = " … ​ " "com.cnn.www"t3 contents:html = " … ​ " En la vista física no se almacenan los datos vacios

Caso de estudio 14 Base de datos de familia de columna basada en el modelo de bigtable de Google. Es de fuente abierta con licencia Apache Escrita en Java Es parte del proyecto Apache Hadoop, por lo que forma parte del ecosistema Hadoop Su escalabilidad es la provista por hadoop

Caso de estudio 15 Escala horizontalmente Maneja consistencia estricta para lecturas y escrituras API simple de Java Integración con el framework Map/Reduce Servicios Web Thrift, Avro y Rest-ful para manejo de datos.

Caso de estudio – Sistema de Archivo 16 GFS (Google File System): Sistema de almacenamiento distribuido para gestionar datos semi estructurados que escalan a grandes volumenes. Mapa ordenado multidimensional, distribuido y disperso Privativo HDFS (Hadoop Distributed File System): un sistema de archivos distribuido, altamente tolerante a fallos diseñado para ejecutarse en hardware de bajo costo Construido usando el lenguaje de programación Público.

Caso de estudio – HDFS 17 Los archivos son divididos en bloques contiguos (16-64MB) Cada bloque es replicado en diferentes nodos Para asegurar persistencia y disponibilidad Dos tipos de nodos: Name Node: almacena metadatos acerca de los archivos almacenados. Data nodes: almacena los archivos Librerias para acceso a los archivos de datos Habla a los Name node para encontrar los bloques de archivo Escribe/lee los bloques hacia/desde los Data Nodes

Caso de estudio – HDFS 18

Caso de estudio – HDFS 19

Caso de estudio – HDFS 20

Caso de estudio – Ecosistema Hadoop 21

Caso de estudio – Ecosistema Hadoop 22 HBase esta construida sobre HDFS Los archivos de HBase son almacenados internamente en HDFS

Modelo de datos ◦ Una tabla es una colección de registros ◦ Un registro es una colección de familia de columnas ◦ Una familia de columnas es una colección de columnas ◦ Una Columna es una tripleta (clave, valor, versión) RowidColumn Family col 1 col2col3col1col2col3col1col2col3col1col2col

Modelo de datos 24

Caso de estudio – Modelo de datos 25 Cada registro tiene una Clave Each registro esta dividido en Familia de Columnas Cada familia de columna consiste en una o mas Columnas

Caso de estudio – Modelo de datos 26 Un Esquema consiste en variasTablas Cada tabla consiste de un conjunto de Familia de Columnas las Columnas no son parte del esquema HBase tiene Columnas Dinamicas  Los nombres de las columnas estan codificadas dentro de cada celda  diferentes celdas pueden tener diferentes columnas “Roles” las familias de columna tienen diferentes columnas en diferentes celdas

Caso de estudio – Operaciones 27 create ‘ ’,’ ’ ◦ hbase> create 'emp', 'personal data', ’professional data’ Para listar las tablas creadas ◦ hbase1:0> list TABLE emp Para borrar o cambiar el esquema primero se debe deshabilitar la tabla ◦ hbase> disable 'emp‘ || disable_all ‘tab.*’ ◦ hbase> drop 'emp‘ || drop_all ‘tab.*’

Caso de estudio – Operaciones 28 Scan: recorre toda la tabla ◦ hbase6:0> scan 'emp' Describe: muestra la estructura de la tabla ◦ hbase6:0> describe 'emp‘ Alter: modifica el esquema de una tabla ◦ hbase>alter 't1', READONLY(option) ◦ hbase> alter ‘ table name ’, ‘delete’ ⇒ ‘ column family ’ Exist: indica si la tabla existe ◦ hbase> exists 'emp'

Caso de estudio – Operaciones 29 ◦ Put se usa para insertar o modificar datos put ’ ’,’row1’,’ ’,’ ’ ◦ hbase > put 'emp','1','personal data:name','raju' ◦ hbase> put 'emp','1','personal data:city','hyderabad' ◦ hbase> put 'emp','1','profesional data:designation','manager' ◦ hbase> put 'emp','1','professional data:salary','50000‘ ◦ hbase> put 'emp',‘1','personal:city','Delhi‘<- crea una nueva versión

Caso de estudio – Modelo de datos 30

Caso de estudio – Operaciones 31 ◦ Get se usa leer datos específicos desde la tabla dado el valor de un registro get ‘ ’, ‘rowid’ ◦ hbase> get 'emp', '1‘ get 'table name', ‘rowid’, {COLUMN ⇒ ‘column family:column name ’} ◦ hbase> get 'emp', ‘1', {COLUMN ⇒ 'personal:name'} delete ‘ ’, ‘ ’, ‘ ’, ‘ ’

Caso de estudio – Operaciones 32 ◦ Delete permite borrar una celda, una versión de celda o una familia de columna conpleta delete ‘ ’, ‘ ’, ‘ ’, ‘ ’ ◦ hbase(main):006:0> delete 'emp', '1', 'personal data:city', ◦ hbase(main):007:0> deleteall 'emp','1'

Caso de estudio – Almacenamiento físico Cada tabla se divide en regiones Una región es un rango de registros almacenados juntos Las regiones se almacenan en los servidores que conforman el clúster de Hbase, llamados servidores de región, de manera distribuida Cada región se almacena en un Hfile el cual es archivo clave valor que se almacena en una tabla hash, y se indexa para acceso secuencial Hbase usa zookeeper para coordinar la distribución y mantener la información de las regiones 33

Caso de estudio – componentes 34

Caso de estudio – Master 35 Responsable de manejar las regiones y sus localizaciones ◦ Asigna las regiones a los Servidores de Región ◦ Realiza balanceo de carga ◦ Recupera si una región esta no disponible ◦ Usa Zookeper para coordinar No almacena ni lee datos ◦ Los clientes se comunican directamente con los servidores de región Responsable del manejo de cambios en el esquema

Caso de estudio – Servidores de Región 36 Lee y escribe los datos Cuando se inserta un dato se escribe en el WAL (Write Ahead Log) y solo se almacena en memoria (memstore) Cuando la memoria se desborda (excede el máximo valor) se vuelca al Hfile y se borra del WAL HDFS no soporta actualizaciones (update) por lo que las clave:valor de los Hfile no se pueden borrar ◦ Se crea una versión nueva. ◦ Se debe borrar explicitamente

Caso de estudio – Despliegue 37

Caso de estudio – distribución de datos 38 Las regiones son rangos de claves ◦ Clave inicio ->clave de parada =[start key -> stop key) Agregacion de datos ◦ Al inicio solamente hay una región ◦ Al sobrepasar el tamaño máximo configurado para las regiones (256 Mb por defecto) la región se divide (Split) por la mitad de claves. Un servidor de región puede manejar varias regiones, depende de las especificaciones de HW ◦ 10 a 1000 regiones por servidor de región ◦ De 1Gb a 2Gb por región

Caso de estudio – distribución de datos 39

Caso de estudio – distribución de datos 40 División de regiones ◦ Fácil recuperación si falla una región ◦ Balanceo de cargas ◦ Dividir es rápido ◦ Sin estar involucrado el usuario

Caso de estudio – distribución de datos 41

Caso de estudio – Operaciones con el log 42

Caso de estudio – Acceso 43 Hbase Shell API Java nativo Servidor Avro ◦ Proyecto Apache ◦ HBql ◦ Sintaxis SQL-like para Hbase ◦ API Python REST Thrift

Caso de estudio – Seguridad 44 Hbase usa un control de acceso basado en Roles (RBAC) ◦ Grupos ◦ Usuarios La visibilidad de etiquetas (de celda) permite conceder privilegios a nivel de celda Encriptación transparente de los datos que se almacenan ◦ Hfile ◦ WAL

Caso de estudio – Seguridad 45 Hbase usa un control de acceso basado en Roles (RBAC) ◦ Grupos ◦ Usuarios La visibilidad de etiquetas (de celda) permite conceder privilegios a nivel de celda Encriptación transparente de los datos que se almacenan ◦ Hfile ◦ WAL

Técnicas usadas - ejemplos ProblemaHBaseCassandra Topología Cluster (maestro esclavo) HBMarter - RegionServer Anillo Sharding Particionamiento por rango (regiones) particionamiento por hash y splitting Hashing Consistente Control de concurrenciaMVCC MVCC y relojes de vector con reconciliación durante lecturas Manejo de fallas temporales HDFS Sloppy Quorum y hinted handoff Manejo de fallas permanentesHDFS Anti- entropía con árboles Merkle para Consistencia de Replicas Nodos salientes o entrantesHDFS Protocolo de membresía basado en Gossip y detección de fallas. Búsquedas Árboles B+ para Índices por clave y secundarios

Caso de estudio – Quienes usan 47 Todo el que quiera realizar proyectos en Big Data

Caso de estudio – Fuentes e_internals_locking_and e_internals_locking_and tutorial/#HBase-1 tutorial/#HBase-1

Próxima clase BD Orientadas a Grafos: ◦ Modelo de datos ◦ Operaciones ◦ Técnicas usadas ◦ Caso de estudio