Apache
¿Qué es?
Es un gestor de base de datos no relacional (NOSQL), multiplataforma de código
abierto escrita y desarroll...
¿Cómo nace Cassandra?
•

Cassandra se originó mediante un proyecto del equipo de ingenieros de Facebook
que posteriormente...
¿ Que es BigTable?
Google creó BigTable porque los sistemas de bases de datos
tradicionales no tenían ni tienen, la capaci...
- Modelo de datos Cuando nos hablan de base de datos lo primero que se nos viene a la mente son
definiciones como “tablas”...
Arquitectura Cassandra
Después de examinar el modelo de datos de Cassandra, vamos a volver a su arquitectura
para comprend...
En términos simples, Cassandra utiliza un algoritmo hash para calcular el hash de las claves
de cada elemento de datos alm...
Terminología de Cassandra
Column. Es la unidad mas básica en el modelo de datos de
Cassandra. Una column es un triplete de...

SuperColumn. Es una column cuyos values son una o más columns,
que en este contexto se llamaran subcolumns. Las subcolum...
¿Porque apostar por Cassandra?
Cassandra se basa en gran medida de BigTable (modelo de datos) y Dynamo
(arquitectura), dos...
Comparación de las
implementaciones de consulta
Clientes/APIs
Cassandra tiene clientes para diferentes tecnologías

Python

Java

Node.js

Clojure

.NET

Ruby

PHP...
Apache cassandra
Upcoming SlideShare
Loading in...5
×

Apache cassandra

662

Published on

Un pequeña introduccion acerca que el gestor de base de datos Apache Cassandra.
Martin ulises Ildefonso torres, luego mencionare los links que se utilizo para esta presentacion

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
662
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
25
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Apache cassandra

  1. 1. Apache ¿Qué es? Es un gestor de base de datos no relacional (NOSQL), multiplataforma de código abierto escrita y desarrollado por Apache Software Foundation. De acuerdo a su sitio web http://cassandra.apache.org/, la configuración de Cassandra involucra a mas de 300 TB de datos sobre mas de 400 maquinas lo que lo hace hoy por hoy uno de los productos mas sólidos y populares del mercado
  2. 2. ¿Cómo nace Cassandra? • Cassandra se originó mediante un proyecto del equipo de ingenieros de Facebook que posteriormente han abierto con licencia Open source y colocado dentro de la incubadora de los proyectos de Apache. Lo mismo ha hecho Google, pero a diferencia de Facebook no ha sido tan considerado con la comunidad de desarrolladores que sustenta el software libre. No ha liberado su implementación, únicamente ha dado a conocer su modelo de datos: BigTable.
  3. 3. ¿ Que es BigTable? Google creó BigTable porque los sistemas de bases de datos tradicionales no tenían ni tienen, la capacidad de crear sistemas lo suficientemente grandes. Además, estos sistemas de bases de datos relacionales, como SQL Server, Oracle o MySQL fueron pensados y diseñados para que se ejecutasen en un solo servidor con mucha potencia. Por ello, no encajarían en las estructuras distribuidas den miles de servidores. Google BigTable es un mecanismo no relacional, un almacenamiento de datos distribuida y multidimensional basado en las tecnologías de almacenamiento de propiedad de Google para la mayoría de aplicaciones en línea y back-end de la empresa / productos. Proporciona arquitectura de datos escalable para infraestructuras de bases de datos muy grandes. BigTable se utiliza principalmente en los productos de propiedad de Google, aunque algunos disponible en Internet en el Google App Engine y aplicaciones de otros fabricantes de bases de datos.
  4. 4. - Modelo de datos Cuando nos hablan de base de datos lo primero que se nos viene a la mente son definiciones como “tablas”, “claves primarias”, “claves foráneas”, “relaciones”, etc. Cuando tratamos de pasar de un modelo entidad - relación al modelo relacional, pensamos en normalización, en evitar duplicidad de datos, etc. Pero como lo demuestra a través de la historia no todas las aplicaciones tienen la mismas necesidades. Y es que existe un teorema (CAP Teorema de Brewer) que explica que no podemos tener todo (Consistencia, Alta disponibilidad y Tolerancia a fallos) y que hemos de elegir dos. Y no todas las aplicaciones tienen las mismas necesidades. En algunos casos, nuestras aplicaciones necesitan almacenar gran cantidad de información que ha de ser accedida de manera casi instántanea y estar disponible 24x7. En este caso la forma de plantearse el modelo de datos es diferente. En un modelo relacional típico, uno crea un esquema de datos normalizado que permite solicitar cualquier consulta y añade índices a las tablas que permitan acelerar dichas consultas. En este nuevo esquema de datos, uno ha de plantearse primero que consultas va a realizar y crea el esquema en base a conseguir el máximo rendimiento en los accesos a esa información y si es necesario duplicar los datos para conseguir mejor rendimiento. Se podría decir que casi crea un "mapa" de datos apropiado para cada consulta que se vaya a realizar.
  5. 5. Arquitectura Cassandra Después de examinar el modelo de datos de Cassandra, vamos a volver a su arquitectura para comprender algunas de sus fortalezas y debilidades desde el punto de vista de sistemas distribuidos. La Figura muestra la arquitectura de un clúster de Cassandra. La primera observación es que Cassandra es un sistema distribuido. Cassandra se compone de varios nodos, y distribuye los datos entre los nodos (o fragmentos de ellas, en la terminología de base de datos).
  6. 6. En términos simples, Cassandra utiliza un algoritmo hash para calcular el hash de las claves de cada elemento de datos almacenado en Cassandra (por ejemplo, el nombre de la columna Id. de fila). El rango de hash o todos los posibles valores de hash (también conocido como espacio de claves) se divide entre los nodos en el cluster Cassandra. Entonces Cassandra asigna a cada elemento de datos en el nodo y el nodo se encarga de almacenar y gestionar el elemento de datos. El papel de "Cassandra - Un sistema de almacenamiento estructurado descentralizada. Posibles sorpresas con Cassandra Tenga en cuenta estas diferencias cuando se pasa de una base de datos relacional para Cassandra. • • • • No hay transacciones, sin uniones No hay claves foráneas y claves son inmutables Keys tienen que ser únicos La búsqueda se complica Solo como algunas menciones.
  7. 7. Terminología de Cassandra Column. Es la unidad mas básica en el modelo de datos de Cassandra. Una column es un triplete de un key (un nombre) un value (un valor) y un timestamp. Los valores son todos suministrados por el cliente. El tipo de dato del key y el value son matrices de bytes de Java, el tipo de dato del timestamp es un long primitive.  column son inmutables para evitar problemas de multithreading. Las  column se organizan dentro de las columns families. Las  column se ordenan por un tipo, que pueden ser uno de los Las siguientes:  AsciiType  BytesType  LongType  TimeUUIDType  UTF8Type
  8. 8.  SuperColumn. Es una column cuyos values son una o más columns, que en este contexto se llamaran subcolumns. Las subcolumns están ordenadas, y el numero de columnas que se puede definir es ilimitada. Las Super columns, a diferencias de las columns, no tienen un timestamp definido.  Column Family. Es mas o menos análogo a una tabla en un modelo relacional. Se trata de un contenedor para una colección ordenada de columns. Cada column family se almacena en un archivo separado  Keyspace. Es el contenedor para las column family. Es mas o menos análogo a una base de datos en un modelo relacional, usado en Cassandra para separar aplicaciones. Un keyspace es una colección ordenada de columns family.  Clúster. Conjunto de máquinas que dan soporte a Cassandra y son vistas por los clientes como una única máquina.
  9. 9. ¿Porque apostar por Cassandra? Cassandra se basa en gran medida de BigTable (modelo de datos) y Dynamo (arquitectura), dos de las más conocidas y potentes bases de datos actuales. Esto por sí solo puede ser suficiente para considerarlo, entre otras cosas como: • Orientada a columnas. • Esta hecha en java. • Permite modificar la consistencia de los datos. • Se puede hacer uso de CQL(Cassandra Query Language) • Bajo una licencia Apache • Es mantenida por la organización Apache. • La usan grandes organizaciones como Facebook o Twitter. • Tiene herramientas para administrar los nodos de forma gráfica. • Es fácil de instalar en un principio. • Solución en cluster enfocada a la escalabilidad. • Tolerancia a fallos, cualquier nodo del cluster puede ser fácilmente sustituido. • Descentralización de datos. • Una comparación en tiempos de lectura y escritura de cientos de veces inferior, en pruebas realizadas con un alto volumen de datos. • Sencillo modelo de datos similar a una hash table.
  10. 10. Comparación de las implementaciones de consulta
  11. 11. Clientes/APIs Cassandra tiene clientes para diferentes tecnologías  Python  Java  Node.js  Clojure  .NET  Ruby  PHP  Perl  Go  Haskell  C++  el caso de Java una alternativa interesante es Kundera, basada En en el paradigma JPA 2.0.
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×