2012-06-06 17 views
10

He estado utilizando HBase durante los últimos seis meses y me enteré de DynamoDB por Amazon. Mantenimiento sabio dynamo db parece más fácil de manejar ya que es cuidado por Amazon. Pero si cambiar a dynamo db desde hbase es una pregunta para mí.AWS DynamoDB VS HBase

No he podido encontrar un motivo de satisfacción para cambiar de hbase a dynamo db excepto para mantener el clúster.

¿Alguien puede compartir las ideas al respecto?

+5

Yo diría que depende totalmente de su caso de uso. ¿Puedes compartir más sobre tu aplicación? – Suman

+2

Depende. por favor, lea este impresionante documento que proporciona una comparación detallada - http://d0.awsstatic.com/whitepapers/AWS_Comparing_the_Use_of_DynamoDB_and_HBase_for_NoSQL.pdf –

Respuesta

12

En esencia, tiene que buscar sus requisitos, DynamoDB proporciona gran escalabilidad y rendimiento con un mínimo esfuerzo de mantenimiento y un costo financiero atractivo. Sin embargo, Apache HBase es mucho más flexible en términos de lo que puede almacenar (tamaño y tipo de datos).

Otro punto muy importante para evaluar es qué modelo de datos, de columna amplia o de clave-valor, se ajusta mejor a sus casos de uso.

Apache HBase le ofrece la opción de tener tipos de datos de clave de fila muy flexibles, mientras que DynamoDB solo permite tipos escalares para los atributos de clave principal. DynamoDB, por otro lado, proporciona una creación y mantenimiento muy sencillos de índices secundarios, algo que tienes que hacer manualmente en Apache HBase.

Más información en el siguiente enlace: http://d0.awsstatic.com/whitepapers/AWS_Comparing_the_Use_of_DynamoDB_and_HBase_for_NoSQL.pdf

Aquí se presenta un resumen de los puntos clave:

En resumen, tanto Amazon DynamoDB y Apache HBase definir modelos de datos que permiten el almacenamiento eficiente de datos para optimizar el rendimiento de la consulta. Amazon DynamoDB impone una restricción en el tamaño de su artículo para permitir el procesamiento eficiente de y reducir los costos.

Apache HBase utiliza el concepto de familias de columnas para proporcionar la localidad de datos para operaciones de lectura más eficientes.

Amazon DynamoDB admite conjuntos escalares y multivalor a para acomodar una amplia gama de datasets no estructurados. Del mismo modo, Apache HBase almacena sus pares clave/valor como matrices arbitrarias de bytes, lo que le da a la flexibilidad para almacenar cualquier tipo de datos.

Amazon DynamoDB admite los índices secundarios incorporados y automáticamente actualizaciones y sincroniza todos los índices con sus tablas principales. Con Apache HBase, puede implementar y administrar los índices secundarios personalizados usted mismo.

Desde la perspectiva del modelo de datos, puede elegir Amazon DynamoDB si su tamaño de elemento es relativamente pequeño. Aunque Amazon DynamoDB proporciona un número de opciones para superar las restricciones de tamaño de fila, Apache HBase es mejor equipado para manejar cargas útiles complejas grandes con un mínimo de restricciones.

Rendimiento Modelo

Aunque leer y escribir requisitos se especifican en la creación de la tabla tiempo, Amazon DynamoDB le permite aumentar o disminuir el rendimiento aprovisionado para acomodar la carga sin tiempo de inactividad.

En Apache HBase, el número de nodos en un clúster puede ser controlado por el rendimiento requerido para lecturas y/o escrituras.

consistencia Modelo

Amazon DynamoDB le permite especificar la consistencia deseada características para cada solicitud de lectura dentro de una aplicación. Puede especificar si una lectura es finalmente coherente o fuertemente consistente.

La opción de consistencia final es la predeterminada en Amazon DynamoDB y maximiza el rendimiento de lectura. Sin embargo, una lectura eventualmente consistente puede no reflejar siempre los resultados de una escritura completada recientemente. La consistencia en todas las copias de datos generalmente se mide en un segundo.

Las lecturas y escrituras de Apache HBase son muy consistentes. Esto significa que todas las lecturas y escrituras en una sola fila en Apache HBase son atómicas. Cada lector y escritor simultáneo puede hacer suposiciones seguras sobre el estado de una fila. Las versiones múltiples y el estampado de tiempo en Apache HBase contribuyen a su modelo fuertemente consistente.

modelo de transacciones de

Ni Amazon DynamoDB ni Apache HBase apoyar multi-ítem/cruzada fila o transacciones Cuadro cruzado debido a consideraciones de rendimiento. Sin embargo, ambas bases de datos proporcionan operaciones por lotes para leer y escribir múltiples elementos/filas en varias tablas sin garantías de transacción .

operaciones de tabla

Una diferencia clave entre las dos bases de datos es el modelo de rendimiento aprovisionado flexibles de Amazon DynamoDB. La capacidad de marcar capacidad cuando la necesita y volver a marcarla cuando finaliza es útil para procesar cargas de trabajo variables con picos impredecibles.

Para cargas de trabajo que requieren altas tasas de actualización para realizar agregaciones de datos o mantener contadores, Apache HBase es una buena opción. Esto se debe a que Apache HBase admite un mecanismo de control de concurrencia de múltiples versiones, , que contribuye a sus lecturas y escrituras fuertemente consistentes. Amazon DynamoDB le da la flexibilidad de especificar si desea que su solicitud de lectura sea finalmente consistente o fuertemente consistente dependiendo de su carga de trabajo específica. alcanzado dentro de un segundo.

Fuente: http://d0.awsstatic.com/whitepapers/AWS_Comparing_the_Use_of_DynamoDB_and_HBase_for_NoSQL.pdf