La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Bd NoSQL Familia de Columnas PROFA. MERCY OSPINA

Presentaciones similares


Presentación del tema: "Bd NoSQL Familia de Columnas PROFA. MERCY OSPINA"— Transcripción de la presentación:

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


Descargar ppt "Bd NoSQL Familia de Columnas PROFA. MERCY OSPINA"

Presentaciones similares


Anuncios Google