Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porHéctor Torregrosa Navarrete Modificado hace 6 años
1
CASSANDRA y CQL3.1 JUSTINO RAMÍREZ ORTEGÓN
SOLUCIONES INTEGRACIÓN Y APERTURA S.A. DE C.V.
2
CONTENIDO Estructura distribuida de Cassandra
Ciclo de vida de los datos CQL3.1 Apache Hector
3
Estructura distribuida de Cassandra
La descentralización y replicación hacen posible una alta tolerancia a fallos de las BD Cassandra
4
Replicación La replicación protege la perdida de información con el costo de tener que usar n-veces más memoria de almacenamiento (Factor 3 como norma)
5
Descentralización Se proponen m nodos (típicamente m>n), los cuales se coordinan en una estructura de red de anillo. NO HAY NODO MAESTRO COMO EN HADOOP Mas de un nodo pueden estar en un solo servidor Coordinador
6
Descentralización Escritura/lectura Un cliente accesa un nodo cercano, que se convierte en coordinador y gestiona la información con los otros nodos. Coordinador
7
Disponibilidad Difícil escritura de datos (debido a los reacomodos de datos). Alta disponibilidad ya que los datos están ordenados
8
Disponibilidad Los datos no se salvan en forma aleatoria, sino en forma ordenada de acuerdo a sus llaves correspondientes. Ordenamiento por tipo de dato. f a b c d e g h i
9
Disponibilidad Los datos se accesan con un algoritmo de búsqueda eficiente debido a que las tablas están ordenadas. Datos ordenados Dato extraído
10
Consistencia Cassandra no es estrictamente consistente, aunque dispone de una configuración en 3 niveles: Estricta Causal Eventual
11
Ciclo de vida de los datos
Los datos se guardan en 3 tipos de tablas: Commit logs Memtables SSTables
12
Ciclo de vida de los datos
Los datos que se agregan a una SSTable no se borran nunca ya que una vez que se crean son inmutables. Si se da la opción de borrado, en realidad los datos se marcan como invalidados. Los datos solo se borran durante una compactación de SSTables.
13
Compactación Cada n archivos de aproximadamente el mismo tamaño se almacenan en SSTables, el sistema los compactara en una nueva SSTable. Se crea una estructura multinivel irregular.
14
Compactación La compactación a niveles genera SSTables de tamaño fijo, con tamaño inicial relativamente pequeño y que se fusionan con un numero fijo SSTables. Escritura mucho mas lenta que con la compactación normal, velocidad mucho mayor de acceso.
15
CQL3 Es un lenguaje hibrido entre Cassandra Cli y SQL
El compromiso entre ambos lenguajes genera que no existan: Los Joint (SQL) Las SuperColumns Families (Cassandra)
16
Desnormalización Las tablas son el equivalente a las Column Families.
Todas las columnas de un registro se ordenan alfabéticamente. Un dato solo puede extraerse usando su Primary Key como referencia.
17
Desnormalización Cada consulta genera una tabla especializada a esa consulta particular.
18
Modelo RDBMS 1. Modelación de datos 2. Modelación de consultas
19
Modelo Cassandra 1. Modelación de consultas 2. Modelación de datos
20
Modelo CQL3.1 M. Cassandra M. CQL3.1
21
Modelo CQL3.1 M. Cassandra M. CQL3.1
22
Creación de Keyspace En la creación del Keyspace deben de incluirse la configuración que se desee modificar:
23
Creación de Keyspace Para ingresar al Keyspace debemos usar el comando
USE < Nombre_de_keyspace>;
24
Comandos Básicos
25
Comandos Básicos
26
Upsert El update puede usarse como insert.
27
Upsert
28
Select
29
Select
30
Índices Los índices nos ordenan los datos, en forma ascendente/descendente. No usarlos con datos con alta cardinalidad.
31
Índices
32
Índices múltiples Se requiere la orden allow filtering para hacer el proceso de selección en cascada.
33
Recuperación de Timestamp
Se usa la instrucción writetime para recuperar el timestamp de una columna en particular.
34
Primary Key compuesta
35
Primary Key compuesta Hector:age Hector:role John:age John:role ist 40
Admin 30 Dev
36
Primary Key Compuesta En teoría 2,000,000,000 columnas por registro
En la practica 100,000 columnas por registro
37
Partition Key Compuesta
38
Partition Key Compuesta
39
Primary Key Compuesto
40
Primary Key Compuesto
41
Validación de Insert
42
Batch Si la primera instrucción no se puede realizar, entonces todas las demás instrucciones se abortan.
43
Batch
44
Supercolumnas en CQL3 Hay 3 tipos de datos que suplen parcialmente a las supercolumnas: Set: Lista de atributos no ordenados. List: Lista de atributos ordenados. Map: Lista de atributos con valores.
45
Set
46
Set
47
Set
48
Set
49
List
50
List
51
List
52
List
53
Map
54
Map
55
Map
56
Map
57
Apache Hector Apache Hector es en realidad un plugin para hacer aplicaciones en Java usando Cassandra. Funciona sobre CQL. Se puede usar con Eclipse.
58
Apache Hector Existen problemas con la compatibilidad de las librerías. La versión actual de CQL 3.1 no es soportada por la ultima versión de Hector. Cada versión de Hector requiere una versión especifica de Cassandra, CQL y de un conjunto de librerías auxiliares de Apache.
61
La distribución no centralizada y la replicación permiten tener una alta tolerancia a fallas pero con el costo del incremento de la necesidad de memoria. Se debe de elegir con cuidado el tipo de compactación de datos de acuerdo a los requerimientos. Aunque CQL3 esta inspirado en SQL existen diferencias que deben de tener se en cuenta ya que internamente CQL3 se comporta como Cassandra Cli. Conclusiones
62
¿Preguntas?
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.