sql >> Base de Datos >  >> NoSQL >> MongoDB

Azure Table Vs MongoDB en Azure

Table Storage es una función de almacenamiento central de Windows Azure, diseñada para ser escalable (100 TB 200 TB 500 TB por cuenta), duradero (triplemente replicado en el centro de datos, opcionalmente georreplicado en otro centro de datos) y sin esquema (cada fila puede contener las propiedades que desee). Una fila se encuentra por clave de partición + clave de fila, lo que proporciona una búsqueda muy rápida. Todo el acceso a Table Storage se realiza a través de una API REST bien definida que se puede usar en cualquier idioma (con SDK, creado sobre las API REST, ya implementado para .NET, PHP, Java, Python y Ruby).

MongoDB es una base de datos orientada a documentos. Para ejecutarlo en Azure, debe instalar MongoDB en una web/roles de trabajo o máquina virtual, apuntarlo a una unidad en la nube (proporcionando así una letra de unidad) o disco adjunto (para máquinas virtuales Windows/Linux), opcionalmente activar el registro en diario (que recomendaría) y, opcionalmente, defina un punto final externo para su uso (o acceda a él a través de una red virtual). Por cierto, la unidad de la nube o el disco adjunto se almacenan en un blob de Azure, lo que le brinda la misma durabilidad y replicación geográfica que las tablas de Azure.

Al comparar los dos, recuerde que Table Storage es Storage-as-a-Service:simplemente accede a un punto final REST conocido. Con MongoDB, usted es responsable de mantener la base de datos (por ejemplo, cada vez que MongoDB Inc (anteriormente 10gen) lanza una nueva versión de MongoDB, deberá actualizar su servidor en consecuencia).

Con respecto a la versión alfa de MongoDB Inc señalada por jtoberon:si la observa detenidamente, verá algunas cosas clave:

  • La configuración es para una instancia de mongodb independiente, sin conjuntos de réplicas ni fragmentos. Con respecto a los conjuntos de réplicas, aún obtiene varios beneficios con la versión independiente, debido a la forma en que funciona el almacenamiento de blobs.
  • Para proporcionar alta disponibilidad, puede ejecutar varias instancias. En este caso, solo una instancia atiende a la base de datos, y una es un "modo de espera cálido" que inicia el proceso mongod tan pronto como falla la otra instancia (para reinicio de mantenimiento, falla de hardware, etc.).

Si bien el contenedor de Windows Azure de 10gen aún se considera 'alfa', mongod.exe no lo es. Puede iniciar el exe mongod como lo haría con cualquier otro exe de Windows. Es solo el código de administración en torno al lanzamiento, y eso es lo que demuestra la implementación de alpa.

EDITAR 2011-12-8:Esto ya no está en estado alfa. Puede descargar el último proyecto de MongoDB+Windows Azure aquí, que proporciona compatibilidad con conjuntos de réplicas.

Para el rendimiento, creo que necesitarás hacer algunas evaluaciones comparativas. Habiendo dicho eso, considere lo siguiente:

  • Al acceder a Table Storage o MongoDB desde, por ejemplo, un rol web, aún se comunica con el sistema de almacenamiento de Windows Azure.
  • MongoDB usa mucha memoria para su propio caché. Por esta razón, muchos sistemas MongoDB de gran escala se implementan en instancias de mayor tamaño. Para el acceso a Table Storage, no tendrá la misma consideración de tamaño de memoria.

EDITAR 7 de abril de 2015 Si desea utilizar una base de datos basada en documentos como servicio, Azure ahora ofrece DocumentDB.