2012-08-31 17 views

Respuesta

52

Elegí HBase porque escalas. Whisper se parece mucho a RRD, es una base de datos de tamaño fijo, debe destruir los datos para poder trabajar dentro de sus limitaciones de espacio. HBase ofrece las siguientes propiedades que lo hacen muy adecuado para bases de datos de series de tiempo a gran escala:

  1. Escalado lineal. ¿Desea almacenar datos? Agrega más nodos. En StumbleUpon, donde escribí OpenTSDB, nuestros datos de series temporales se ubicaron conjuntamente en un clúster de 20 nodos que se utilizaba principalmente para análisis y procesamiento por lotes. El clúster creció a 120 nodos con bastante rapidez, y mientras tanto, OpenTSDB, que constituye solo pequeña fracción de la carga de trabajo del clúster, creció a la mitad de billones de puntos de datos.
  2. Replicación automática. Sus datos se almacenan en HDFS, lo que de forma predeterminada significa 3 réplicas en 3 máquinas diferentes. Si una máquina o un disco muere, no es gran cosa. Las unidades y las máquinas mueren todo el tiempo cuando construyes servidores básicos. Pero la cosa es: realmente no te importa.
  3. Escaneos eficientes. La mayoría de los datos de series de tiempo se utilizan para responder preguntas que son como "cuáles son los puntos de datos entre el tiempo X e Y". Si estructura sus claves correctamente, puede implementar esto de manera muy eficiente con HBase con una simple operación de escaneo.
  4. Alto rendimiento de escritura. El Bigtable design, que sigue HBase, usa LSM trees en lugar de, digamos, B-trees, para hacer las escrituras más baratas (a expensas de lecturas potencialmente más costosas).

El hecho de que HBase se orienta columna no era una consideración tan importante como el hecho de que es un gran ordenados sistema de llave-valor que realmente escalas.

herramientas

Todo basados ​​en RRD y derivados de RRD no podían satisfacer los requisitos de escala de poder precisión miles de tiendas y mil millones de puntos de datos para siempre por muy barato (sólo unos pocos bytes de espacio de disco real por punto de datos).

+1

Gran respuesta del diseñador de OpenTSDB. Gracias, tsuna! – David

+1

Simplemente extendiendo esa pregunta, ¿por qué elegiste escribir un nuevo front-end, cuando ya tenemos algo tan poderoso como el grafito ?. ¿Por qué no extendió el backend de grafito para almacenar datos de TimeSeries en HBase en lugar de susurrar? –

+2

El front-end realmente no importa. Quería tener un front-end integrado para minimizar las dependencias y hacer que el proyecto sea autónomo, pero en última instancia no queremos obligar a todos a usar ese front-end, que sé que no es particularmente bueno. El gran impulso para la próxima versión de la función es proporcionar mejores API para permitir la integración con front-ends de terceros, incluido Graphite. – tsuna

Cuestiones relacionadas