1 / 16

BigTable

BigTable. Base de datos multidimensional. Agenda. Que es BigTable? Google File System Estructura de BigTable Componentes Usos Ejemplos. Que es BigTable?. Sistema almacenamiento distribuido. Creado por Google a principios del 2004. Almacena la información en tablas multidimensionales.

Download Presentation

BigTable

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. BigTable Base de datos multidimensional

  2. Agenda • Que es BigTable? • Google File System • Estructura de BigTable • Componentes • Usos • Ejemplos

  3. Que es BigTable? • Sistema almacenamiento distribuido. • Creado por Google a principios del 2004. • Almacena la información en tablas multidimensionales. • No es una base de datos relacional. • Pensado para crecer en un alto volumen rápidamente (pentabytes). • Variedad de aplicación, escalabilidad, alto rendimiento y alta disponibilidad.

  4. Google File System (GFS) • Sistema de archivos distribuidos. • Eficiencia, fácil acceso, almacenamiento masivo (clusters), procesamiento paralelo. • Colossus es la versión mas reciente. • Archivos de tamaño fijo (64MB). • Se agregan o leen y muy rara vez se sobre escriben o reducen.

  5. Google File System (GFS) • Nodos: Maestro y Chunkservers (almacenadores) • El nodo maestro tiene un id de 64 bits de cada porción. • Cada porción es replicada en al menos 3 servidores. • No está programado en el kernel, funciona como una librería.

  6. Google File System (GFS)

  7. Estructura de BigTable • Datos son indexados usando el nombre de la fila, la columna y un timestamp. • Se puede describir como un mapa distribuido, persistente y multidimensional. • Los datos de las celdas son tratados como un array no interpretado de bytes. • (row:string, column:string, time:int64) -> string

  8. Ejemplo de una tabla

  9. Estructura de BigTable • La tabla es particionada dinámicamente por filas dentro de tabletas (tablet). • Cada tableta puede medir entre 100 a 200 MB. • Cada tableta contiene un rango continuo de registros. • Accesar registros o tabletas cercanos requiere la comunicación de un bajo numero de servidores.

  10. Rows • El nombre puede ser cualquier string. • Cada lectura o escritura es atómica. • Los datos se ordenan por el nombre de las filas.

  11. Familias de columnas • Columnas son agrupadas en familias. • Todos los datos de una familia son del mismo tipo. • Numero reducido de distintas familias (cientos como mucho). • Sintaxis: family:qualifier • Se optimiza el control de acceso a disco y memoria a nivel de familias.

  12. Timestamps • Cada celda contiene múltiples versiones de la misma información. • Se indexan por el timestamp (64 bits). • Se puede especificar el numero de versiones a almacenar. • Existe un recolector de basura.

  13. Ejemplos • HTTP: • http://bigtable.appspot.com/get/<table>/<row>/<column> • http://bigtable.appspot.com/put/<auth>/<table>/<row>/<column> • http://bigtable.appspot.com/deleteAll/<auth>/<table>/<row>/<column> • Python • bt = bigtable.BigTable('localhost', '8080', 'test@example.com', 'test') • bt.put('test', 'foo', 'bar:baz', 'How are you?')

  14. Ejemplos • Manual: • PUT /put/test@example.com:test/people/will.mortensen/relationship: HTTP/1.1 • Java • BigTableClient client = new BigTableClient();Collection<Cell> cells = client.getRow("people", "andrew.hitchcock");

More Related