Descripción general de Cloud Datastore

Google Cloud Datastore es una base de datos de documentos NoSQL compilada para proporcionar ajuste de escala automático, alto rendimiento y facilidad de desarrollo de aplicaciones. Estas son algunas de las características de Cloud Datastore:

  • Transacciones atómicas. Cloud Datastore puede ejecutar un conjunto de operaciones en el que todas se realizan con éxito o ninguna se completa.
  • Alta disponibilidad de lecturas y escrituras. Cloud Datastore se ejecuta en los centros de datos de Google, que usan redundancia para reducir el impacto de los puntos de falla.
  • Escalabilidad masiva con alto rendimiento. Cloud Datastore usa una arquitectura distribuida para administrar el escalamiento de forma automática. También usa una combinación de índices y restricciones de consulta para que tus consultas escalen con el tamaño de tu conjunto de resultados y no con el tamaño de tu conjunto de datos.
  • Almacenamiento flexible y consulta de datos. Cloud Datastore se asigna de forma natural a los lenguajes de programación y orientados a objetos, y se expone a las aplicaciones mediante clientes múltiples. También proporciona un lenguaje de consulta similar a SQL.
  • Balance entre coherencia sólida y eventual. Cloud Datastore garantiza que las consultas de entidad por clave y las consultas principales siempre reciban datos con coherencia sólida. Todas las demás consultas tienen coherencia eventual. Los modelos de coherencia permiten que tu aplicación ofrezca una excelente experiencia del usuario mientras maneja grandes cantidades de datos y de usuarios.
  • Encriptación en reposo. Cloud Datastore encripta todos los datos de forma automática antes de que se escriban en el disco, y los desencripta automáticamente cuando los lee un usuario autorizado. Para obtener más información, consulta Encriptación en el lado del servidor.
  • Administración completa sin tiempo de inactividad planificado. Google controla la administración del servicio Cloud Datastore, de forma que puedas enfocarte en tu aplicación. Tu aplicación puede seguir usando Cloud Datastore cuando el servicio recibe una actualización planificada.

Comparación con las bases de datos tradicionales

Si bien la interfaz de Cloud Datastore incluye muchas de las características de las bases de datos tradicionales, difiere de ellas en su forma de describir las relaciones entre los objetos de datos porque es una base de datos NoSQL. A continuación, se muestra una comparación de alto nivel entre los conceptos de Cloud Datastore y los de las bases de datos relacionales:

Concepto Cloud Datastore Cloud Firestore Base de datos relacional
Categoría del objeto Tipo Grupo de colección Tabla
Un objeto Entidad Documento Fila
Datos individuales de un objeto Propiedad Campo Columna
ID único de un objeto Clave ID de documento Clave primaria

A diferencia de las filas de la tabla de una base de datos relacional, las entidades de Cloud Datastore de un mismo tipo pueden tener propiedades diferentes, y entidades distintas pueden tener propiedades con el mismo nombre, pero con tipos de valores diferentes. Estas características únicas implican una forma diferente de diseñar y administrar datos para aprovechar la capacidad de escalar de forma automática. En particular, Cloud Datastore se diferencia de una base de datos relacional tradicional en los siguientes aspectos importantes:

  • Cloud Datastore está diseñado para escalar de manera automática a conjuntos de datos muy grandes, lo que permite que las aplicaciones mantengan un alto rendimiento cuando reciben más tráfico.
    • Las escrituras de Cloud Datastore escalan mediante la distribución automática de los datos según sea necesario.
    • Las lecturas de Cloud Datastore escalan porque las únicas consultas compatibles son aquellas cuyo rendimiento escala con el tamaño del conjunto de resultados (en lugar del conjunto de datos). Esto significa que una consulta cuyo conjunto de resultados contenga 100 entidades tendrá el mismo rendimiento si busca entre cien entidades o entre un millón. Esta propiedad es la razón principal por la que algunos tipos de consultas no son compatibles.
  • Dado que a todas las consultas las entregan índices compilados previamente, existen más limitaciones en cuanto a los tipos de consultas que pueden ejecutarse en comparación con una base de datos relacional con SQL. En particular, Cloud Datastore no es compatible con las operaciones de unión, con el filtrado de desigualdad de varias propiedades ni con el filtrado de datos basado en los resultados de una consulta secundaria.
  • A diferencia de las bases de datos relacionales tradicionales, que aplican un esquema de manera forzosa, Cloud Datastore no usa esquemas. No requiere que las entidades del mismo tipo tengan un conjunto coherente de propiedades (aunque puedes optar por aplicar este requisito en el código de tu propia aplicación).

Usos ideales

Cloud Datastore es ideal para aplicaciones que dependen de datos estructurados con alta disponibilidad a gran escala. Puedes usar Cloud Datastore para almacenar y consultar los siguientes tipos de datos:

  • Catálogos de productos que proporcionan un inventario en tiempo real y detalles de productos de un minorista.
  • Perfiles de usuario que ofrecen una experiencia personalizada basada en las preferencias y actividades pasadas de los usuarios.
  • Transacciones basadas en propiedades ACID, como transferir fondos de una cuenta bancaria a otra.

Otras opciones de almacenamiento

Cloud Datastore no es ideal para todos los casos prácticos. Por ejemplo, Cloud Datastore no es una base de datos relacional y tampoco es una solución de almacenamiento eficaz para datos analíticos.

Estas son algunas situaciones comunes en las que es probable que debas considerar una alternativa a Cloud Datastore:

  • Si necesitas una base de datos relacional completamente compatible con SQL para un sistema de procesamiento de transacciones en línea (OLTP), considera Cloud SQL.
  • Si no necesitas compatibilidad para transacciones ACID o tus datos no están altamente estructurados, considera Cloud Bigtable.
  • Si necesitas consultas interactivas en un sistema de procesamiento analítico en línea (OLAP), considera BigQuery.
  • Si necesitas almacenar BLOB inmutables, como imágenes o películas de gran tamaño, considera Cloud Storage.

Para obtener más información sobre otras opciones de almacenamiento, consulta la guía sobre Cómo elegir una opción de almacenamiento.

Cómo conectarse a Cloud Datastore con App Engine

El entorno de ejecución estándar de Python en App Engine se conecta a Cloud Datastore con la biblioteca cliente de NDB. La biblioteca cliente de NDB proporciona almacenamiento continuo en un almacén de datos de objeto sin esquema. Admite almacenamiento en caché automático, consultas sofisticadas y transacciones atómicas.

No puedes usar la biblioteca cliente de Cloud Datastore con las aplicaciones de Python en el entorno estándar de App Engine.

¿Te sirvió esta página? Envíanos tu opinión:

Enviar comentarios sobre…

Entorno estándar de App Engine para Python