En esta página, se describe y explica cómo funciona el almacenamiento por niveles en Spanner. Esta función es compatible con las bases de datos con dialecto GoogleSQL y con dialecto PostgreSQL.
El almacenamiento por 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 en unidades de disco duro (HDD). De forma predeterminada, cuando no usas el almacenamiento por niveles, tus datos se almacenan en el almacenamiento SSD. Según la frecuencia con la que uses los datos o accedas a ellos, puedes considerar usar almacenamiento por niveles y almacenar datos en almacenamiento SSD y HDD.
- El almacenamiento SSD es la opción más rentable y con mejor rendimiento (más consultas por segundo) para la mayoría de los casos de uso. Debes usarlo para almacenar datos activos con una alta capacidad de procesamiento de lectura y escritura, y datos que requieren acceso con baja latencia.
- El almacenamiento 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 por niveles te permite aprovechar el almacenamiento SSD, que admite el alto rendimiento de los datos activos, y el almacenamiento HDD, que admite el acceso poco frecuente a los datos a un costo más bajo.
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 escritura y lectura, 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 Configuraciones regionales |
Hasta 22,500 QPS de lectura Hasta 3,500 QPS de escritura |
Hasta 1,500 QPS de lectura Hasta 3,500 QPS de escritura |
Capacidad de procesamiento esperada por nodo Configuraciones birregionales y multirregionales |
Hasta 15,000 QPS de lectura por región Hasta 2,700 QPS de escritura |
Hasta 1,000 QPS de lectura por región Hasta 2,700 QPS de escritura |
Operaciones admitidas | Leer, escribir, actualizar y borrar | Leer, escribir, actualizar y borrar |
Usa escrituras optimizadas para la capacidad de procesamiento para aumentar la capacidad de procesamiento de escritura más allá de los números de la tabla. Para obtener más información, consulta Descripción general del rendimiento.
Beneficios
El almacenamiento por niveles ofrece los siguientes beneficios, ya que te permite usar almacenamiento SSD y HDD:
- Reducción significativa del costo total de propiedad: El almacenamiento HDD proporciona una opción de menor costo para los 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 y la lógica de división.
- Experiencia unificada y coherente: Proporciona acceso unificado a los datos y un solo conjunto de métricas en los datos activos y en frío (mutables)
- Rendimiento mejorado: Mejora el rendimiento de las consultas organizando tus datos en diferentes grupos de localidad, lo que proporciona localidad y aislamiento de los datos en todas 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 se almacenan solo en el almacenamiento SSD.
Si eliges usar el almacenamiento por niveles para almacenar algunos datos en el almacenamiento HDD, debes crear un grupo de localidad, que se usa para definir la política de almacenamiento por niveles para los datos de tu esquema. Cuando creas un grupo de localidades, 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 muevan al almacenamiento HDD. Una vez que transcurre el tiempo especificado, Spanner migra los datos al almacenamiento en HDD durante su ciclo de compactación normal, que suele ocurrir en el transcurso de siete días a partir del tiempo especificado. Esto se conoce como política de almacenamiento por niveles basada en la antigüedad. Cuando se usa una política de almacenamiento por 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 HDD es de una hora.
Una vez que definas tus grupos de localidad, cuando crees tus tablas, podrás establecer la política de almacenamiento por niveles a nivel de la base de datos, la tabla, la columna o el índice secundario. La política de almacenamiento por niveles determina cómo y dónde se almacenan los datos. Para obtener instrucciones, consulta Crea y administra grupos de localidades.
Copia de seguridad y restablecimiento
Puedes crear copias 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, incluido INFORMATION_SCHEMA.LOCALITY_GROUP_OPTIONS
, que especifica el tipo de almacenamiento de cada grupo de localidades. 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 Spanner Data Boost para acceder a los datos en el almacenamiento de SSD o HDD. La consulta de datos en HDD usa la capacidad de carga de disco HDD de la instancia, que forma parte de tu capacidad de procesamiento.
Índices de búsquedas
La búsqueda en el texto completo y los índices de vectores heredan el grupo de localidad establecido en el objeto de la base de datos.
Observabilidad
Las siguientes funciones de observabilidad están disponibles para el almacenamiento por niveles.
Métricas de Cloud Monitoring
Spanner proporciona las siguientes métricas para ayudarte a supervisar el uso y los datos del almacenamiento por 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.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 el uso combinado del almacenamiento 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 HDD, experimentarás un aumento significativo de la latencia.
Si tienes búsquedas existentes que filtran métricas existentes por storage_class:ssd
, debes quitar el filtro para ver el uso del HDD.
Para obtener más información sobre cómo supervisar 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 localidades y opciones en tu base de datos de Spanner. Incluye información para el grupo de localidades default
. Para obtener más información, consulta locality_group_options
para bases de datos con dialecto de GoogleSQL y locality_group_options
para bases de datos con 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 por niveles:
SPANNER_SYS.TABLE_SIZES_STATS_1HOUR
: Muestra el uso de almacenamiento de 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 de 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.
Las tablas de estadísticas de consultas y de estadísticas de lectura tienen la siguiente columna relacionada con el almacenamiento por niveles:
AVG_DISK_IO_COST
: Es el costo promedio de esta consulta en términos de carga de disco HDD de Spanner. Usa este valor para realizar comparaciones relativas del costo de E/S del HDD entre las lecturas que ejecutas en la base de datos. Un valor más alto indica que usas más carga de disco HDD y que tu búsqueda podría ser más lenta que si se ejecutara en SSD. Además, si la carga del disco HDD está al máximo de su capacidad, es posible que el rendimiento de tus consultas se vea aún más afectado.
Para obtener más información, consulta Estadísticas de consultas y Estadísticas de lectura.
Precios
No se aplican cargos adicionales por usar el almacenamiento por 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 almacenados en SSD y HDD se facturan a sus respectivas tarifas de almacenamiento. No se te cobra por mover datos entre el almacenamiento SSD y HDD. Consultar datos en HDD usa la capacidad de carga de disco HDD de la instancia, que forma parte de los precios de capacidad de procesamiento. Para obtener más información, consulta Precios de Spanner.
¿Qué sigue?
- Obtén más información sobre los grupos de localidades.
- Obtén más información para crear y administrar grupos de localidades.
- Obtén más información para optimizar las consultas con la transferencia de predicados de marcas de tiempo.