Spanner para cargas de trabajo no relacionales

Spanner es un sistema de base de datos altamente confiable y completamente administrado. Si bien Spanner evolucionó para convertirse en un sistema de administración de bases de datos relacionales, tiene sus raíces como un sistema de almacenamiento de pares clave-valor no relacional y conserva las características fundamentales de ese tipo de sistema. Por lo tanto, puedes usar Spanner como base de datos no relacional (NoSQL) y migrar y otras bases de datos no relacionales con Spanner. En este documento, encontrarás ayuda para comprender si Spanner es la opción adecuada para tus cargas de trabajo no relacionales.

Las bases de datos NoSQL comenzaron a usarse en una época en la que las bases de datos relacionales tradicionales carecían de funciones para admitir aplicaciones emergentes que requerían alta escalabilidad, disponibilidad y elasticidad de procesamiento. Lo hicieron sacrificando varios atributos, a menudo, son esenciales para la administración de datos, como las transacciones, coherente y consultas ad hoc. Spanner se creó para brindar compatibilidad la naturaleza exigente de las aplicaciones y las funcionalidades con alta disponibilidad que ofrecen las bases de datos relacionales tradicionales, de modo que los clientes puedan aprovechar de ambos conjuntos de funciones.

Con Spanner, puedes comenzar con una solución directa, tus necesidades de almacenamiento y escalar tu aplicación según sea necesario.

Cómo Spanner cumple con los criterios de las bases de datos NoSQL

Spanner cumple con los siguientes criterios clave para tus cargas de trabajo de NoSQL.

Escala y rendimiento

Las bases de datos NoSQL ganaron popularidad debido a su capacidad de escalar las operaciones de lectura y escritura horizontalmente. Con Spanner, no tienes que preocuparte por el escalamiento ni el rendimiento. Las bases de datos de Spanner con diseño de par clave-valor pueden escalar horizontalmente para admitir cientos de millones de solicitudes de lectura o escritura por segundo y petabytes de datos. La capacidad de procesamiento de Spanner se escala con la carga de trabajo y mantiene un perfil de latencia baja y coherente, incluso cuando tu aplicación se escala en varios órdenes de magnitud.

API de NoSQL

Por lo general, se accede a las bases de datos relacionales tradicionales con SQL, que tiene una curva de aprendizaje para los desarrolladores que no están familiarizados con ellas. Los clientes de estas bases de datos también suelen depender de conexiones persistentes y requieren que se implemente la infraestructura de aprovisionamiento de conexiones para escalar. En cambio, la API de Spanner se compila sobre un modelo de solicitud y respuesta de gRPC/HTTP2 que controla automáticamente las fallas de conexión. Spanner proporciona APIs de NoSQL de lectura y escritura simples, nativas del lenguaje y eficientes que no requieren conocimientos de SQL. Además, los clientes de Spanner no requieren ningún grupo de conexiones para escalar.

Completamente administrado

Un gran atractivo de las bases de datos NoSQL es que se percibe que son más fáciles de gestionar. Como servicio completamente administrado, Spanner no genera ninguna carga operativa para los clientes. Spanner no tiene tiempo de inactividad las actualizaciones de software y hardware en segundo plano, mientras se mantiene compatibilidad. La API y la semántica de Spanner son las mismas que si las operaciones se realizaban en una sola base de datos de máquina y no porque requieren conocimientos sobre la arquitectura interna de Spanner. Spanner se ejecuta en implementaciones que van desde 1/10 de un nodo hasta decenas de miles de nodos, y se escala automáticamente y de manera responsiva con un escalador administrado.

Datos semiestructurados

Spanner admite tipos de datos flexibles, como JSON y BYTES, que son usarse para almacenar datos semiestructurados o no estructurados. Al igual que otras bases de datos NoSQL, puedes usar estos tipos de datos para evitar especificar todo tu esquema de almacenamiento de antemano.

Control de acceso

Al igual que otras bases de datos NoSQL, Spanner admite accesos basados en IAM automático. Los administradores pueden configurar y administrar las políticas de control de acceso sin almacenar nombres de usuario ni contraseñas en la base de datos.

En qué se diferencia Spanner de las bases de datos NoSQL tradicionales

Spanner proporciona las siguientes ventajas sobre las bases de datos NoSQL tradicionales:

Transacciones

A medida que las aplicaciones aumentan de complejidad, a menudo deben realizar operaciones de transacciones de varias filas y varias tablas en la base de datos. Con Spanner, no necesitas migrar a un almacén de datos transaccional a medida que crece tu base de datos, ya que Spanner es totalmente compatible con las transacciones de lectura y escritura. Como una base de datos compatible con ACID, Spanner mantiene la coherencia transaccional de tu base de datos en todo momento, independientemente de la escala.

Modelado de datos

El diseño de esquemas en bases de datos NoSQL puede ser poco natural debido a la necesidad de ajustar todos los datos en una tabla y de desnormalizar los datos de forma forzosa debido a la incapacidad de realizar uniones. Con Spanner, puedes especificar tu esquema sin recurrir a una sola tabla o la desnormalización. Para optimizar los patrones de acceso tocas varias tablas, puedes usar la intercalación de tablas. También puedes realizar uniones entre tablas.

Consultas ad hoc

Incluso si usas principalmente la API de NoSQL, a menudo es útil ejecutar consultas ad hoc para depuración o análisis. Spanner cumple con los el lenguaje de consulta estándar de SQL. Puedes usar la priorización de solicitudes para aislar el tráfico ad hoc de baja prioridad del tráfico en línea o usar Spanner Data Boost para ejecutar consultas analíticas en recursos de procesamiento completamente aislados de los datos en línea el tráfico de la base de datos.

Índices secundarios con coherencia sólida

A menudo, las aplicaciones requieren índices secundarios para admitir búsquedas de baja latencia. Las bases de datos NoSQL típicas ofrecen índices secundarios coherentes con el tiempo o imponen restricciones sobre el tamaño que puede alcanzar un índice. Esto puede complicar la lógica de la aplicación, que debe solucionar estas restricciones. Spanner ofrece índices secundarios con coherencia sólida a gran escala sin restricciones de tamaño. Esto te permite enfocarte en la lógica de tu aplicación sin preocuparte por problemas de coherencia.

¿Spanner es adecuado para tus necesidades de base de datos NoSQL?

Spanner es un sistema de almacenamiento de datos flexible que admite casos de uso de SQL y NoSQL. Si bien algunas aplicaciones comienzan con necesidades de almacenamiento simples, a medida que aumentan su complejidad, necesitan más funciones que, por lo general, no ofrecen las bases de datos NoSQL, como transacciones, índices secundarios coherentes y un lenguaje de consulta flexible. Con Spanner, no tienes estas limitaciones y puedes hacer crecer tu aplicación según sea necesario.

La mayoría de las cargas de trabajo no relacionales son una excelente opción para Spanner. No solo Spanner ofrece una API de lectura y escritura NoSQL sencilla, sino que también cuenta con el respaldo de alta disponibilidad, alta confiabilidad, baja latencia la elasticidad del procesamiento y la escalabilidad extrema. Spanner te permite consolidar diversas cargas de trabajo en una sola plataforma flexible.