2012-01-24 13 views
7

Quiero elegir un servicio web de fondo para mi aplicación. La lectura de la documentación de estos servicios (Parse, Proxomo, Cocoafish, StackMob, etc.) revela que algunos de ellos ofrecen almacenar datos en forma sin esquema, mientras que otros mencionan que el esquema debe especificarse antes. Entiendo lo que es el esquema de datos y espero que schemaless sea fácil de usar, pero quiero saber los méritos y deméritos de cada uno. Cualquier explicación será muy apreciada.Ventaja de almacenamiento de datos sin esquema sobre el almacenamiento de datos con el esquema

Respuesta

6

La mayor diferencia es la escalabilidad.

Las soluciones de almacenamiento de datos con esquema son mucho más difíciles de distribuir que las soluciones de almacenamiento de datos gratuitas de Schema. Es realmente fácil de replicar (sin esquema) pares clave-valor para la tolerancia a fallas. Es realmente fácil distribuir copias entre los nodos para obtener tiempos de lectura más rápidos y es más fácil proporcionar escrituras rápidas con consistencia final. Si está administrando su propia base de datos, esto significa que será mucho más fácil administrar soluciones sin esquema cuando necesite escalar a múltiples servidores. Si está utilizando un servicio, esto significa que las soluciones gratuitas de esquema suelen ser más económicas y rápidas.

El problema con el esquema gratuito se produce cuando necesita transacciones y coherencia en varios conjuntos de datos o tablas. Todo esto tiene que hacerse en código.

Por lo tanto, la conclusión es: si necesita grandes volúmenes de datos con acceso rápido, debe ser un esquema gratuito. Si, por otro lado, el tamaño de los datos y la carga son modestos, los sistemas basados ​​en esquemas son mejores.

Si necesita ayuda para elegir qué servicio elegir, una mejor forma de decidir sería realizar un análisis de tamaño de datos de lectura/seg/seg y esperado en su aplicación y luego elegir qué solución es más económica. Todos estos servicios presumiblemente se adaptarán a sus cargas, pero el costo será el factor decisivo.

1

No soy un auténtico especialista en esto, pero por lo que leí, esto es lo que mi percepción:

  • mayor parte del tiempo, las bases de datos sin esquema le permiten almacenar fácilmente valores de clave /, objetos JSON. Por lo tanto, a menudo es bastante sencillo vincular los objetos que manipula en su aplicación con el almacenamiento de base de datos. No tiene que usar un ORM (Object Relational Mapper) porque sus objetos están directamente en el formato aceptado por el DB (la mayoría de las veces, es bastante fácil generar un JSON del objeto que tiene en una aplicación)

  • Si no tiene ningún esquema, puede ajustar (agregar/eliminar) fácilmente las propiedades de los objetos que desea almacenar en su base de datos sin tener que pasar por una actualización de esquema y una migración de los datos del viejo esquema al nuevo.

  • en los CONs para el esquema, mi sensación es que no puede expresar tantas restricciones como podría hacer en SQL estándar para recuperar datos (no hace ninguna combinación, etc.) así que tal vez tenga que comprobar realmente cómo desea recuperar material de los datos de base de datos y ver qué ofrece el motor sin esquema.

+0

Muchas gracias Yonel por sus pensamientos y explicaciones. No solo soy nuevo en los servicios web, sino también en la programación en general, así que podría estar equivocado, pero (regrabando a su tercer punto) los servicios de almacenamiento de datos sin esquema son en realidad muchas filtraciones para la recuperación de datos. Esperaré un poco más de tiempo y luego marcaré tu respuesta como correcta y daré recompensa. – chatur

Cuestiones relacionadas