azure-table-storage - read - table storage transaction
Microsoft Azure DocumentDB vs Azure Table Storage (5)
Ambas son tecnologías NoSQL, pero son enormemente diferentes. Azure Tables es un simple almacén de clave / valor y no admite funciones complejas como consultas complejas (la mayoría de ellas requerirá una partición / exploración de tabla completa de todos modos, lo que matará su rendimiento y sus ahorros), indexación personalizada (la indexación se basa en PartitionKey y RowKey solamente, actualmente no puede indexar en ninguna otra propiedad de entidad y buscar cualquier cosa que no sea la combinación PartitionKey / RowKey requerirá una partición / exploración de tabla) o procedimientos almacenados. Tampoco puede leer por lotes las solicitudes de entidades múltiples (a través de solicitudes de escritura por lotes son compatibles si todas las entidades pertenecen a la misma partición). Para una aplicación de Azure Tables en la vida real, vea HERE .
Si sus necesidades de datos (particularmente al consultarlas) son simples (como en el ejemplo anterior), Azure Tables le brinda lo que necesita, puede terminar usándolo a favor de DocDB debido a la fijación de precios, el rendimiento y la capacidad de almacenamiento. Por ejemplo, el objetivo de rendimiento de Azure Tables es 20,000 operaciones por segundo. Tratar de obtener el mismo nivel de rendimiento en DocDB tendrá un costo de servicio significativamente más alto para usted. Además, las tablas de Azure están limitadas por la capacidad de su cuenta de almacenamiento de Azure ( 500TB ), mientras que el almacenamiento de DocDB está limitado por las unidades de capacidad que compra.
Durante varios años recientes, Microsoft ofrece un almacenamiento de clave / valor "NoSQL", llamado "Almacenamiento de tabla" ( http://azure.microsoft.com/en-us/documentation/articles/storage-dotnet-how-to-use-tables/ )
Table Storage ofrece un alto rendimiento, escalabilidad (a través de particiones) y un costo relativamente bajo. Un inconveniente principal de las Tablas es que solo las claves de Partición y Fila pueden indexarse, por lo que realizar consultas sobre los valores es muy ineficiente.
Recientemente Microsoft anunció un nuevo servicio "NoSQL", llamado "DocumentDB" ( http://azure.microsoft.com/en-us/documentation/services/documentdb/ )
En lugar de almacenar una lista de propiedades (como Tables do), DocumentDB almacena objetos JSON. El objeto completo está indexado, por lo que las consultas eficientes se pueden crear en función de cada propiedad y cualquier propiedad anidada de los objetos almacenados.
Microsoft dice que DocumentDB proporciona alto rendimiento y escalabilidad también.
Si es así, ¿por qué alguien usaría Table Storage sobre DocumentDB? Parece que DocumentDB proporciona la misma funcionalidad que las tablas, pero con capacidades adicionales, como la capacidad de indexar cualquier cosa.
Me alegrará si alguien pudiera hacer una comparación entre DocumentDB y Table Storage, destacando los contras y los pros de cada uno.
Creo que la comparación tiene que ver con el precio de negociación para el rendimiento. Los servicios de mesa son solo servicios de almacenamiento, que parecen tener un límite de 20,000 ops / segundo, pero pagar ese tipo de rendimiento todo el tiempo (porque Storage nos lo da todo el tiempo) es de $ 1,200 / mes. Dinero loco
Los servicios de tabla tienen índices simples, por lo que las consultas son muy limitadas. Bueno para todo lo que está escrito y leído a través de ID. DocumentDB indexa todo el documento, por lo que se puede realizar una consulta en cualquier propiedad.
Y, por último, los servicios de Table están sujetos a la restricción de almacenamiento de la cuenta de Storage en la que se encuentra (que podría volverse muy alta dada la negociación con Microsoft directamente), donde el almacenamiento de DocumentDB parece ilimitado.
Entonces es un equilibrio. ¿Tienes MUCHOS datos (cientos de gigas o terabytes) que necesitas en un solo lugar? DocumentDB. ¿Necesitas soportar consultas complejas? DocumentDB. ¿Tiene datos que deben aparecer y desaparecer rápidamente, pero basados en una búsqueda de propiedades de 1 a 2? Servicios de mesa ¿Negociaría tener que codificar en un índice simple para evitar pagar por el rendimiento? Servicios de mesa
Y Redis, alguien mencionó eso ... hombre, no sé. Incluso la existencia de persistencia en un marco de almacenamiento en caché (que ofrece Redis) no la convierte en una tecnología de elección ... Hay una gran diferencia entre una tienda persistente que contiene datos que "a menudo se usan, pero pueden faltar o tiempo-retirado ", como lo haría un caché, y una tienda persistente que garantiza que sus datos estén allí.
Table Services es principalmente un tipo de clave-valor NOSQL y DocumentDB es (como su nombre lo indica) un tipo de documento NoSQL store. Lo que estás preguntando es esencialmente la diferencia entre estos dos tipos de enfoques NOSQL. Si configura su investigación de acuerdo con esto, debería poder obtener una mejor comprensión con certeza.
Para simplificar, le sugiero que considere las diferencias entre el precio de DocumentDB y los servicios de mesa. No solo el costo de estos servicios varía mucho entre ellos, sino que el hecho de que DocumentDB funcione con un modelo de "provisión inicial" y que los Servicios de Tabla se ofrezcan con un precio basado en el consumo puro puede darte algunas pistas sobre tu comparación / contraste.
Déjame preguntarte esto; ¿Por qué debería usar DocumentDB si las características de Table Services satisfacen mis necesidades? ;) Le sugiero que observe cómo las herramientas actuales de Azure Diagnostics usan Azure Storage Services, cómo Storage Metrics utiliza Azure Storage en sí mismo para tener una idea de qué tan útiles serían los servicios de tabla y qué tan exagerados podrían ser DocumentDB en algunas situaciones.
Espero que esto ayude.
Un ejemplo de la vida real:
Tengo que almacenar algunos tokens, recuperarlos, eliminarlos. Solo la consulta realizada se basará en la identificación del usuario.
Así que uso Table Storage, ya que cumple con mis requisitos perfectamente. Guardo el token contra la identificación del usuario.
Documento DB parecía ser excesivo para esto.
Aquí está la respuesta de microsoft''s official docs
de microsoft''s official docs
Atributos comunes de Cosmos DB, Azure Table Storage y Azure SQL Database:
99.99 disponibilidad SLA
Servicios de bases de datos completamente administrados
Cláusulas modelo de la norma ISO 27001, HIPAA y UE
La siguiente tabla muestra los atributos poco comunes de Azure Cosmos DB, Azure Table Storage