Descripción general del almacenamiento por niveles

En esta página, se describe y explica cómo funciona el almacenamiento en niveles en Spanner. Esta función es compatible con las bases de datos de dialecto GoogleSQL y de dialecto PostgreSQL.

El almacenamiento en niveles de Spanner es una función de almacenamiento completamente administrada que te permite elegir si deseas almacenar tus datos en unidades de estado sólido (SSD) o unidades de disco duro (HDD). De forma predeterminada, cuando no usas el almacenamiento en niveles, tus datos se almacenan en el almacenamiento SSD. Según la frecuencia con la que uses o accedas a los datos, podrías considerar usar el almacenamiento en niveles y almacenar datos en el almacenamiento SSD y HDD.

  • El almacenamiento SSD es la opción más rentable (mayor cantidad de consultas por segundo) y de mejor rendimiento para la mayoría de los casos de uso. Debes usarlo para almacenar datos activos con alta capacidad de procesamiento de lectura y escritura, y datos que requieren acceso a datos de baja latencia.
  • El almacenamiento en HDD a veces es adecuado para conjuntos de datos grandes que no son sensibles a la latencia, a los que se accede con poca frecuencia o si el costo del almacenamiento es una consideración importante.

El uso del almacenamiento en niveles te permite aprovechar el almacenamiento SSD, que admite el alto rendimiento de los datos activos, y el almacenamiento HDD, que admite el acceso a datos poco frecuente a un costo menor.

Elige entre el almacenamiento SSD y HDD

En la siguiente tabla, se enumeran las diferencias y similitudes entre el almacenamiento en SSD y HDD. Si tienes dudas, te recomendamos que elijas el almacenamiento SSD.

Almacenamiento SSD Almacenamiento HDD
Casos de uso objetivo Datos que requieren una alta capacidad de procesamiento de lectura y escritura, y acceso a datos de baja latencia Conjuntos de datos grandes que no son sensibles a la latencia o a los que se accede con poca frecuencia
Capacidad de procesamiento esperada por nodo
Parámetros de configuración regionales
Hasta 3,500 QPS de escritura
Hasta 22,500 QPS de lectura
Hasta 3,500 QPS de escritura
Hasta 1,500 QPS de lectura
Capacidad de procesamiento esperada por nodo
Configuraciones birregionales y multirregionales
Hasta 2,700 QPS de escritura
Hasta 15,000 QPS de lectura
Hasta 3,500 QPS de escritura
Hasta 1,000 QPS de lectura
Operaciones admitidas Leer, escribir, actualizar y borrar Leer, escribir, actualizar y borrar

Beneficios

El almacenamiento en niveles ofrece los siguientes beneficios, ya que te permite usar el almacenamiento en SSD y HDD:

  • Reducción significativa del costo total de propiedad: El almacenamiento en HDD proporciona una opción de menor costo para conjuntos de datos grandes que no son sensibles a la latencia o a los que se accede con poca frecuencia.
  • Facilidad de administración: Proporciona un servicio de niveles completamente administrado sin la complejidad de las canalizaciones adicionales ni la lógica de división.
  • Experiencia unificada y coherente: Proporciona acceso unificado a los datos y un conjunto único de métricas en los datos en frío y (mutables) activos.
  • Rendimiento mejorado: Mejora el rendimiento de las consultas organizando tus datos en diferentes grupos de localidad, lo que proporciona aislamiento y localidad de datos en las columnas. Los datos del mismo grupo de localidad se almacenan físicamente cerca unos de otros.

Cómo funciona el almacenamiento en niveles

De forma predeterminada, cuando creas una instancia nueva, los datos solo se almacenan en el almacenamiento SSD. Del mismo modo, los datos de las instancias existentes también solo se almacenan en el almacenamiento SSD.

Si decides usar el almacenamiento en niveles para almacenar algunos datos en el almacenamiento en HDD, debes crear un grupo de localidad, que se usa para definir la política de almacenamiento en niveles para los datos de tu esquema. Cuando creas un grupo de localidad, puedes definir el tipo de almacenamiento, ya sea ssd o hdd. De manera opcional, también puedes definir la cantidad de tiempo que los datos se almacenan en el almacenamiento SSD antes de que se transfieran al almacenamiento HDD. Una vez transcurrido el tiempo especificado, Spanner migra los datos al almacenamiento en HDD durante su ciclo de compactación normal, que suele ocurrir durante siete días a partir del tiempo especificado. Esto se conoce como una política de almacenamiento por niveles basada en la antigüedad. Cuando se usa una política de almacenamiento en niveles basada en la antigüedad, la cantidad mínima de tiempo que los datos deben almacenarse en SSD antes de que se muevan al almacenamiento en HDD es de una hora.

Con tus grupos de localidad definidos, cuando crees tus tablas, podrás configurar la política de almacenamiento en niveles a nivel de la base de datos, la tabla, la columna o el índice secundario. La política de almacenamiento en niveles determina cómo y dónde se almacenan los datos. Para obtener instrucciones, consulta Cómo crear y administrar grupos de localidad.

Copia de seguridad y restablecimiento

Puedes crear una copia de seguridad de tus datos y restablecerlos con las copias de seguridad de Spanner. La copia de seguridad contiene toda la información del esquema de almacenamiento, incluida INFORMATION_SCHEMA.LOCALITY_GROUP_OPTIONS, que especifica el tipo de almacenamiento de cada grupo de localidad. Para restablecer una copia de seguridad que contiene grupos de localidad en una instancia nueva, la instancia de destino debe estar en la edición de Spanner Enterprise o Spanner Enterprise Plus.

Data Boost

Puedes usar el aumento de datos de Spanner para acceder a los datos en el almacenamiento de SSD o HDD. Las consultas de datos en el almacenamiento en HDD incurren en un costo más alto debido al aumento de las operaciones de E/S. Para obtener más información, consulta Precios.

Índices de búsqueda

La búsqueda en el texto completo y los índices vectoriales heredan el grupo de localidad que se establece en el objeto de base de datos.

Observabilidad

Las siguientes funciones de observabilidad están disponibles para el almacenamiento en niveles.

Métricas de Cloud Monitoring

Spanner proporciona las siguientes métricas para ayudarte a supervisar el uso y los datos del almacenamiento en niveles con Cloud Monitoring:

  • spanner.googleapis.com/instance/storage/used_bytes (Almacenamiento total): Muestra la cantidad total de bytes de datos almacenados en el almacenamiento SSD y HDD. En la página Estadísticas del sistema de la instancia y la base de datos de Spanner de la consola de Google Cloud, hay un menú desplegable para Tipo de almacenamiento para esta métrica. Usa el menú desplegable para mostrar el total de bytes de datos almacenados en el almacenamiento Todo, solo HDD o solo SSD.
  • spanner.googleapis.com/instance/storage/combined/limit_bytes: Muestra el límite de almacenamiento combinado de SSD y HDD.
  • spanner.googleapis.com/instance/storage/combined/limit_bytes_per_processing_unit: Muestra el límite de almacenamiento combinado de SSD y HDD para cada unidad de procesamiento.
  • spanner.googleapis.com/instance/storage/combined/utilization: Muestra la utilización combinada del almacenamiento en SSD y HDD, en comparación con el límite de almacenamiento combinado.
  • spanner.googleapis.com/instance/disk_load: Muestra el uso del HDD en porcentaje. Si tu instancia alcanza el 100% de carga del disco, experimentarás un aumento significativo de la latencia.

Si tienes consultas existentes que filtran métricas existentes por storage_class:ssd, debes quitar el filtro para ver el uso de tu HDD.

Para obtener más información sobre la supervisión de tus recursos de Spanner, consulta Supervisa instancias con estadísticas del sistema y Supervisa instancias con Cloud Monitoring.

Esquema de información

INFORMATION_SCHEMA.LOCALITY_GROUP_OPTIONS contiene la lista de grupos de localidad y opciones de tu base de datos de Spanner. Incluye información para el grupo de localidad default. Para obtener más información, consulta locality_group_options para bases de datos de dialecto de Google SQL y locality_group_options para bases de datos de dialecto de PostgreSQL.

Tablas de estadísticas integradas

Las siguientes tablas de estadísticas integradas están disponibles para las bases de datos que usan almacenamiento en niveles:

  • SPANNER_SYS.TABLE_SIZES_STATS_1HOUR: Muestra el uso de almacenamiento en HDD y SSD para cada tabla de tu base de datos.
  • SPANNER_SYS.TABLE_SIZES_STATS_PER_LOCALITY_GROUP_1HOUR: Muestra el uso de almacenamiento en HDD y SSD para cada grupo de localidad en tu base de datos.

Para obtener más información, consulta Estadísticas de tamaños de tablas y Estadísticas de consultas.

Precios

No se aplican cargos adicionales por usar el almacenamiento en niveles. Se te cobra el precio estándar de Spanner por la cantidad de capacidad de procesamiento que usa tu instancia y la cantidad de almacenamiento que usa tu base de datos. Los datos que se almacenan en SSD y HDD se facturan a sus respectivas tarifas de almacenamiento. No se te cobrará por mover datos entre el almacenamiento SSD y HDD. Para obtener más información, consulta Precios de Spanner.

¿Qué sigue?