Azure Table Vs MongoDB en Azure

Quiero usar una base de datos NoSQL en Windows Azure y el volumen de datos va a ser muy grande. Si una Azure de almacenamiento Tabla o una base de datos MongoDB se ejecuta usando una función de trabajo puede ofrecer un mejor rendimiento y escalabilidad? Alguien ha utilizado MongoDB en Azure utilizando un rol de Trabajador? Por favor comparta sus pensamientos sobre el uso de MongoDB en Azure sobre el azul de la tabla de almacenamiento.

InformationsquelleAutor Shiju | 2011-11-03

7 Kommentare

  1. 72

    Tabla de Almacenamiento es un núcleo de Windows Azure característica de almacenamiento, diseñado para ser escalable (100 TB 200TB 500TB por cuenta), resistente (triple replicado en el centro de datos, opcionalmente georeplicated a otro centro de datos), y schemaless (cada fila puede contener cualquier propiedad que usted desea). Una fila se encuentra por clave de partición + fila de clave, lo que permite la búsqueda rápida. Todos los de la Tabla de Almacenamiento de acceso es a través de una bien definida la API de REST, utilizable a través de cualquier idioma (con el Sdk, construido en la cima de la Api de REST, ya en el lugar para .NET, PHP, Java, Python & Ruby).

    MongoDB es un documento orientado a la base de datos. Para ejecutarlo en Azure, es necesario instalar MongoDB en una web/funciones de trabajador o de la Máquina Virtual, que apunte a una nube de la unidad (proporcionando una letra de unidad) o un disco conectado (para Windows/Linux en Máquinas Virtuales), opcionalmente vez en el diario (que recomiendo), y, opcionalmente, definir un extremo externo para su uso (o acceder a ella a través de la red virtual). El Cloud Drive /disco conectado, por cierto, es que realmente se almacena en una Azure Blob, dándole la misma durabilidad y georeplication como las Tablas de Azure.

    Al comparar los dos, recuerde que la Tabla de Almacenamiento de Almacenamiento-como-un-Servicio: simplemente acceda a un conocido extremo REST. Con MongoDB, usted es responsable de mantener la base de datos (por ejemplo, cuando MongoDB Inc (antes de 10gen) lleva a cabo una nueva versión de MongoDB, usted necesita actualizar su servidor en consecuencia).

    Sobre MongoDB Inc alfa de la versión señalado por jtoberon: Si usted toma una mirada cercana a él, vas a ver un par de cosas importantes:

    • La instalación de una instancia de mongodb Independiente, sin réplica conjuntos o fragmentos. Respecto a la réplica-conjuntos, usted todavía obtener varios beneficios con el uso de la versión Independiente, debido a la forma de almacenamiento de Blobs de obras.
    • Para proporcionar alta disponibilidad, puede ejecutar múltiples instancias. En este caso, sólo una instancia sirve la base de datos, y uno de ellos es un ‘warm-standby’ en el que se inicia el proceso mongod tan pronto como la otra instancia falla (para el mantenimiento de reiniciar, fallo de hardware, etc.).

    Mientras 10gen de Windows Azure contenedor todavía se considera ‘alfa’ mongod.exe no es. Usted puede lanzar el mongod exe como lo haría con el lanzamiento de cualquier otro exe de Windows. Es sólo el código de gestión de todo el lanzamiento, y eso es lo que la alpa aplicación está demostrando.

    EDITAR 2011-12-8: Esto ya no es en un estado alfa. Puede descargar la última MongoDB+proyecto de Windows Azure aquí, que proporciona conjunto de réplicas de apoyo.

    Para el rendimiento, creo que voy a necesitar para hacer algo de benchmarking. Habiendo dicho esto, considere las siguientes:

    • Cuando se accede a la Tabla de Almacenamiento o MongoDB, por ejemplo, de un Rol Web, todavía estás llegando a la de Almacenamiento de Windows Azure sistema.
    • MongoDB utiliza mucha memoria para su propio caché. Por esta razón, muchos de alta escala de MongoDB sistemas son desplegados a los grandes tamaños de instancias. Para la Tabla de Almacenamiento de acceso, no tienen la misma memoria-tamaño de consideración.

    EDICIÓN del 7 de abril de 2015
    Si desea utilizar un documento basado en la base de datos como-un-servicio, Azure ofrece ahora DocumentDB.

    • No he tris esta conmigo, pero MongoDB parece venir como una Azure Add-On a través de la tienda. Presumiblemente, que hace que el despliegue tan simple como la de Azure table storage.
  2. 35

    He usado ambos.

    Las Tablas de Azure : dead simple, rápido, muy difícil de escribir, incluso consultas simples.

    Mongo : se ejecuta muy bien, un montón de funciones de consulta, requiere de varias instancias para ser confiable.

    En una cáscara de nuez,
    si sus preguntas son muy simples (clave->valor), debe ejecutar una comparación de costos (principalmente el número de las transacciones con el almacenamiento versus el costo de alojamiento de Mongo en Azure). Prefiero ir a la tabla de almacenamiento para que uno.
    Si usted necesita más elaborada de las consultas y no quiero ir a SQL Azure, Mongo es probablemente su mejor apuesta.

    • Es este sigue siendo el caso después de la publicación de los Servicios de Datos de WCF-como extremos? Creo que se puede hacer LINQ sobre esos extremos
    • Puede usted explicar (o punto de referencia acerca) tu comentario «requiere de varias instancias para ser confiable»? Por qué haría 2 no es confiable?
    • Sí, es todavía el caso de que la consulta en las Tablas de Azure es difícil, incluso en las versiones más recientes. Usted puede hacer LINQ, pero no se admiten todas las características – por ejemplo, orderby, «contiene», y el conde y se producirá un error. Cualquier consulta, además de aquellos en contra de la PK resultado en un examen de la tabla.
    • MongoDB se requiere de al menos 3 instancias para formar un conjunto de réplicas (o dos y un árbitro) docs.mongodb.org/manual/core/replica-set-architectures
  3. 9

    Me doy cuenta de que esta pregunta no tiene fecha. Me gustaría añadir la siguiente información para aquellos que vengan a esta pregunta en sus búsquedas.

    Tenga en cuenta que ahora, MongoDB se ofrece como un servicio totalmente gestionado en Azure. (oficialmente en Beta, así como de Abr ’15)

    Ver:
    http://www.mongodb.com/partners/cloud/microsoft
    o
    https://azure.microsoft.com/en-us/blog/announcing-new-mongodb-instances-on-microsoft-azure/

    Ver (incluidos los precios):
    https://azure.microsoft.com/en-us/marketplace/partners/mongolab/mongolab/

  4. 5

    Mi primera opción es AzureTables porque el modelo SAAS y de bajo costo y SLA 99.99%
    http://alexandrebrisebois.wordpress.com/2013/07/09/what-if-20000-windows-azure-storage-transactions-per-second-isnt-enough/


    algunos límites..
    http://msdn.microsoft.com/en-us/library/windowsazure/jj553018.aspx


    http://www.windowsazure.com/en-us/pricing/calculator/?scenario=data-management

    o AzureSQL para la pequeña empresa

    DocumentDB
    http://azure.microsoft.com/en-us/documentation/services/documentdb/
    http://azure.microsoft.com/en-us/documentation/articles/documentdb-limits/


    la segunda opción es que muchos proveedores de la nube, como Amazon ofrecen S3

    o Google tablas https://developers.google.com/bigquery/pricing

    enésima opción administrar el SHOW todo por mí mismo no tienen sueño MongoDB bueno voy a mirar de nuevo los dos primeros SAAS

    Mi elección si estoy corriendo «en la NUBE» voy a ir a por el modelo SAAS tanto como sea posible «RENT-IT»…

    La pregunta es ¿mi aplicación necesita es AzureTables o DocumentDB o AzureSQL

    DocumentDB documentación
    http://azure.microsoft.com/en-us/documentation/services/documentdb/

    Cómo Azure de precios de obras
    http://azure.microsoft.com/en-us/pricing/details/documentdb/

    esto es divertido
    http://www.documentdb.com/sql/demo

  5. 2

    A Construir 2016 se anunció que DocumentDB apoyaría todas las MongoDB conductores. Esto resuelve algunos de la falta de herramientas de problemas con DocDB y también hace más fácil para migrar Mongo aplicaciones.

  6. 1

    Respuestas anteriores son todas buenas, pero la verdadera respuesta depende de lo que sus requerimientos. Usted necesita entender lo que el tamaño de los datos a procesar, ¿qué tipos de operaciones que desea realizar en los datos y, a continuación, seleccione la solución que satisfaga sus necesidades.

    • Esto es más un comentario que una respuesta.
  7. 0

    Una cosa para recordar es Azure Table Storage no admite tipos de datos complejos.Es compatible con todos los bienes en la entidad a ser una Cadena o un número o booleanos o de fecha, etc.
    Uno no puede almacenar un objeto en contra de una clave,que creo que es imprescindible para NoSql DB.
    https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/understanding-the-table-service-data-model desplazarse a Tipos de Propiedad

    • «Azure Table Storage no soporta tipos de datos complejos.» Eso no es del todo correcta. Con Azure Storage versión del SDK de 8.0.0.0, api s se agregan a la SDK para escribir objetos complejos a la Tabla de almacenamiento. Consulte msdn.microsoft.com/en-us/library/azure/mt775434.aspx y msdn.microsoft.com/en-us/library/azure/mt775432.aspx. Escribí estas api s 🙂 así que si usted tiene algún comentario dude en preguntar..
    • Podría usted por favor, comparta ejemplos con Node.js también hay un tamaño de la propiedad de la restricción de que las fuerzas de 64KB que el límite máximo a la derecha, con esto podemos almacenar un gran objeto?, Gracias de antemano…
    • Sí estoy de acuerdo, lo que podemos hacer serialising y deserializar, pero una No-SQL DB deben apoyarlos por defecto sin ningún esfuerzo extra, pero me sentía como Azure es un tipo de Tabla de almacenamiento(columnas sabio, que es la más apropiada para una sencilla clave-valor de datos).
    • Gracias Sai. Estas nuevas api de la voluntad de convertir el objeto complejo en el diccionario de claves los pares de valores y escribir cada propiedad como columnas individuales, en contraposición a toda una cadena serializada etc. Y así podría ejecutar consultas o proyecciones en contra de este tipo de objeto. La api, a continuación, vuelva a componer la proginal objeto de nuevo, si usted lee la entidad y se pasa a la ConvertBack método. Estoy de acuerdo con usted que la integración de estos métodos podría ser más transparente y que se realiza bajo la cubierta y creo que está en la hoja de ruta para integrar estas api s en futuras versiones de la forma más transparente para el SDK.

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea