Está en la página 1de 16

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 informacin en tablas multidimensionales. No es una base de datos relacional. Pensado para crecer en un alto volumen rpidamente (pentabytes). Variedad de aplicacin, escalabilidad, alto rendimiento y alta disponibilidad.

Google File System (GFS)


Sistema

de archivos distribuidos. Eficiencia, fcil acceso, almacenamiento masivo (clusters), procesamiento paralelo. Colossus es la versin mas reciente. Archivos de tamao fijo (64MB). Se agregan o leen y muy rara vez se sobre escriben o reducen.

Google File System (GFS)


Nodos:

Maestro y Chunkservers (almacenadores) El nodo maestro tiene un id de 64 bits de cada porcin. Cada porcin es replicada en al menos 3 servidores. No est programado en el kernel, funciona como una librera.

Google File System (GFS)

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

Ejemplo de una tabla

Estructura de BigTable
La

tabla es particionada dinmicamente 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 comunicacin de un bajo numero de servidores.

Rows
El

nombre puede ser cualquier string. Cada lectura o escritura es atmica. Los datos se ordenan por el nombre de las filas.

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.

Timestamps
Cada

celda contiene mltiples versiones de la misma informacin. Se indexan por el timestamp (64 bits). Se puede especificar el numero de versiones a almacenar. Existe un recolector de basura.

Ejemplos

HTTP:

Python

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

Ejemplos
Manual:

PUT /put/test@example.com:test/people/will.mortensen/r elationship: HTTP/1.1 BigTableClient client = new BigTableClient(); Collection<Cell> cells = client.getRow("people", "andrew.hitchcock");

Java

También podría gustarte