Cómo construir una base de datos para almacenar big data en un servidor web

Según su comentario sobre la cantidad de datos, recomendaré provisionalmente MongoDB. “Viene con” su propia API ORM y REST. Más importante aún, se escala bien vertical y horizontalmente (agrupamiento) y permite la flexibilidad de los tipos de datos.

Cassandra es otra gran base de datos que es bastante fácil de usar y escalable mediante clustering. Una ventaja para Cassandra desde el punto de vista del desarrollo es que es muy similar a las bases de datos relacionales a las que ya está acostumbrado. La estructura del lenguaje de consulta es similar, y el desarrollo de tablas y relaciones es similar.

Mongo, sin embargo, será más fácil para ti comenzar y aprender, creo. Es más fácil de configurar y (creo) más fácil de administrar que Cassandra. Es “sin esquema” y más flexible debido a eso, aunque viene con algunas compensaciones, como la necesidad de hacer cumplir las transacciones manualmente y (dado que no hay esquema) la necesidad de hacer cumplir la estructura de sus documentos a través de la implementación. Una buena manera de decir si necesita hacer cumplir la estructura de una colección mediante el uso de un validador (la documentación de MongoDB cubre cómo funciona esto).

HBase probablemente sea exagerado debido a sus requisitos, y es el más complejo de los tres para implementar. Si los datos de su aplicación necesitan escalar DO más allá de lo que Mongo o Cassandra pueden manejar (y pueden manejar una gran cantidad de rendimiento y almacenamiento de datos a través de la agrupación en clústeres), entonces será hora de considerar la migración a Hadoop y HBase.

MongoDB, Cassandra y HBase: las tres bases de datos NoSQL para ver