Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porLucía Rivero Páez Modificado hace 8 años
1
Bd NoSQL Familia de Columnas PROFA. MERCY OSPINA mercy.ospinat@gmail.com
2
Agenda Modelo de datos Operaciones Técnicas usadas Cuando usar Caso de estudio
3
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
4
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 = {emailAddress:"cassandra@apache.org", age:20}, TerryCho = {emailAddress:"terry.cho@apache.org", gender:"male"}, Cath = {emailAddress:"cath@apache.org", age:20, gender:"female", address:"Seoul"}, } Familia de columnasTupla Clave Conjunto de columnas
5
Modelo de datos 5
6
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
7
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
8
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
9
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
10
Almacenamiento - columnas 10
11
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
12
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 = " … "
13
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
14
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 http://hbase.apache.org/
15
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.
16
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.
17
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
18
Caso de estudio – HDFS 18
19
Caso de estudio – HDFS 19
20
Caso de estudio – HDFS 20
21
Caso de estudio – Ecosistema Hadoop 21
22
Caso de estudio – Ecosistema Hadoop 22 HBase esta construida sobre HDFS Los archivos de HBase son almacenados internamente en HDFS
23
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 col2col3col1col2col3col1col2col3col1col2col3 1 2 3
24
Modelo de datos 24
25
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
26
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
27
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.*’
28
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'
29
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
30
Caso de estudio – Modelo de datos 30
31
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 ‘ ’, ‘ ’, ‘ ’, ‘ ’
32
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', 1417521848375 ◦ hbase(main):007:0> deleteall 'emp','1'
33
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
34
Caso de estudio – componentes 34
35
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
36
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
37
Caso de estudio – Despliegue 37
38
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
39
Caso de estudio – distribución de datos 39
40
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
41
Caso de estudio – distribución de datos 41
42
Caso de estudio – Operaciones con el log 42
43
Caso de estudio – Acceso 43 Hbase Shell API Java nativo Servidor Avro ◦ Proyecto Apache ◦ http://avro.apache.org/ http://avro.apache.org/ HBql ◦ Sintaxis SQL-like para Hbase ◦ http://www.hbql.com/ http://www.hbql.com/ API Python REST Thrift
44
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
45
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
46
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
47
Caso de estudio – Quienes usan 47 Todo el que quiera realizar proyectos en Big Data
48
Caso de estudio – Fuentes 48 http://www.tutorialspoint.com/hbase/index.htm https://hbase.apache.org/book.html https://blogs.apache.org/hbase/entry/apache_hbas e_internals_locking_and https://blogs.apache.org/hbase/entry/apache_hbas e_internals_locking_and http://www.coreservlets.com/hadoop- tutorial/#HBase-1 http://www.coreservlets.com/hadoop- tutorial/#HBase-1
49
Próxima clase BD Orientadas a Grafos: ◦ Modelo de datos ◦ Operaciones ◦ Técnicas usadas ◦ Caso de estudio
Presentaciones similares
© 2024 SlidePlayer.es Inc.
All rights reserved.