Cette page décrit et explique le fonctionnement du stockage hiérarchisé dans Spanner. Cette fonctionnalité est compatible avec les bases de données utilisant les dialectes GoogleSQL et PostgreSQL.
Le stockage hiérarchisé Spanner est une fonctionnalité de stockage entièrement gérée qui vous permet de choisir de stocker vos données sur des disques SSD ou HDD. Par défaut, lorsque vous n'utilisez pas le stockage hiérarchisé, vos données sont stockées sur un stockage SSD. Selon la fréquence à laquelle vous utilisez ou consultez les données, vous pouvez envisager d'utiliser le stockage hiérarchisé et de stocker les données à la fois sur un stockage SSD et HDD.
- Le stockage SSD est le choix le plus performant (nombre de requêtes par seconde plus élevé) et le plus rentable dans la plupart des cas. Vous devez l'utiliser pour stocker des données actives avec un débit en écriture et en lecture élevé, ainsi que des données qui nécessitent un accès aux données à faible latence.
- Le stockage HDD est parfois approprié pour les grands ensembles de données non sensibles à la latence, rarement utilisés ou si le coût du stockage est un facteur important.
L'utilisation du stockage hiérarchisé vous permet de profiter à la fois du stockage SSD, qui prend en charge les hautes performances des données actives, et du stockage HDD, qui prend en charge l'accès aux données peu fréquentes à moindre coût.
Choisir entre le stockage SSD et HDD
Le tableau suivant répertorie les différences et les similitudes entre le stockage SSD et HDD. Les chiffres de débit du tableau sont par nœud et évoluent de manière linéaire avec le nombre de nœuds de votre instance Spanner. En cas de doute, nous vous recommandons de choisir le stockage SSD.
| Stockage SSD | Stockage HDD | |
|---|---|---|
| Cas d'utilisation cibles | Données nécessitant un débit en écriture et en lecture élevé, et un accès aux données à faible latence | Grands ensembles de données non sensibles à la latence ou rarement utilisés |
| Débit attendu par nœud Configurations régionales |
Jusqu'à 22 500 RPS en lecture Jusqu'à 3 500 RPS en écriture |
Jusqu'à 1 500 RPS en lecture Jusqu'à 3 500 RPS en écriture |
| Débit attendu par nœud Configurations à double région et multirégionales |
Jusqu'à 15 000 RPS en lecture par région Jusqu'à 2 700 RPS en écriture |
Jusqu'à 1 000 RPS en lecture par région Jusqu'à 2 700 RPS en écriture |
| Opérations compatibles | Lecture, écriture, mise à jour et suppression | Lecture, écriture, mise à jour et suppression |
Utilisez des écritures optimisées pour le débit afin d' augmenter le débit en écriture au-delà des chiffres du tableau. Pour en savoir plus, consultez la présentation des performances.
Avantages
Le stockage hiérarchisé offre les avantages suivants en vous permettant d'utiliser à la fois le stockage SSD et HDD :
- Réduction significative du coût total de possession : le stockage HDD offre une option moins coûteuse pour les grands ensembles de données non sensibles à la latence ou rarement utilisés.
- Facilité de gestion : fournit un service de hiérarchisation entièrement géré sans la complexité des pipelines supplémentaires et de la logique de division.
- Expérience unifiée et cohérente : fournit un accès unifié aux données et un ensemble unique de métriques pour les données chaudes et froides (mutables)
- Performances améliorées : améliore les performances des requêtes en organisant vos données dans différents groupes de localité, ce qui assure la localité et l'isolation des données entre les colonnes. Les données du même groupe de localité sont stockées physiquement à proximité les unes des autres.
Fonctionnement du stockage hiérarchisé
Par défaut, lorsque vous créez une instance, les données ne sont stockées que sur un stockage SSD. De même, les données des instances existantes ne sont stockées que sur un stockage SSD.
Si vous choisissez d'utiliser le stockage hiérarchisé pour stocker certaines données dans un stockage HDD, vous devez
créer un groupe de localité,
qui est utilisé pour définir la règle de stockage hiérarchisé pour les données de votre schéma. Lorsque vous créez un groupe de localité, vous pouvez définir le type de stockage, ssd ou hdd. Vous pouvez également définir la durée pendant laquelle les données sont stockées sur un stockage SSD avant d'être déplacées vers un stockage HDD. Cette durée est relative à l'horodatage de commit des données. Une fois le délai spécifié écoulé, Spanner migre les données vers le stockage HDD lors de son cycle de compactage normal, qui se produit généralement sur une période de sept jours à compter de l'heure spécifiée. Pour
migrer des données entre SSD et HDD plus rapidement que le cycle de compactage normal, vous
pouvez déclencher manuellement un compactage majeur.
Il s'agit d'une règle de stockage hiérarchisé basée sur l'âge. Lorsque vous utilisez une règle de stockage hiérarchisé basée sur l'âge, la durée minimale pendant laquelle les données doivent être stockées sur un SSD avant d'être déplacées vers un stockage HDD est d'une heure.
Une fois vos groupes de localité définis, lorsque vous créez vos tables, vous pouvez définir la règle de stockage hiérarchisé au niveau de la base de données, de la table, de la colonne ou de l'index secondaire. La règle de stockage hiérarchisé détermine comment et où les données sont stockées. Pour obtenir des instructions, consultez Créer et gérer des groupes de localité.
Informations clés sur le comportement
Les comportements suivants s'appliquent lorsque vous utilisez le stockage hiérarchisé :
- Les niveaux de stockage sont appliqués au niveau de la cellule : les règles de stockage hiérarchisé basées sur l'âge s'appliquent aux cellules individuelles d'une ligne, en fonction de l'horodatage de commit de la cellule. Les données sont déplacées vers un stockage HDD si leur horodatage de commit est antérieur à la durée spécifiée. Une seule ligne peut donc contenir des données sur un SSD et d'autres sur un HDD, selon la dernière mise à jour de chaque cellule.
- Les tables entrelacées sont indépendantes : les paramètres du groupe de localité et les règles de stockage hiérarchisé ne sont pas hérités par les tables enfants entrelacées. Vous devez appliquer ces paramètres à chaque table individuellement.
- Les opérations de lecture n'affectent pas l'ancienneté des données : la lecture des données d'une table ne réinitialise pas son ancienneté et n'empêche pas son déplacement vers un HDD. Seule une opération d'écriture qui met à jour les données réinitialise son horodatage de commit et les conserve dans un stockage SSD.
- Déplacement des données d'un HDD vers un SSD : lorsque vous mettez à jour des données stockées sur un HDD, Spanner écrit la nouvelle version des données directement dans un stockage SSD. La version précédente des données sur le HDD est marquée comme obsolète et est nettoyée ultérieurement par un processus de compactage en arrière-plan. Vous pouvez déclencher manuellement un compactage majeur pour le nettoyer plus rapidement. Cela garantit que les mises à jour des données froides bénéficient immédiatement des performances SSD pour les lectures ultérieures des nouvelles données.
Sauvegarde et restauration
Vous pouvez sauvegarder et restaurer vos données à l'aide des sauvegardes Spanner.
La sauvegarde contient toutes les informations du schéma de stockage, y compris
INFORMATION_SCHEMA.LOCALITY_GROUP_OPTIONS, qui
spécifie le type de stockage de chaque groupe de localité. Pour restaurer une sauvegarde contenant des groupes de localité dans une nouvelle instance, l'instance de destination doit être dans l'édition Spanner Enterprise ou Spanner Enterprise Plus.
Data Boost
Vous pouvez utiliser Spanner Data Boost pour accéder aux données sur un stockage SSD ou HDD. L'interrogation des données sur un HDD utilise la capacité de charge du disque HDD de l'instance , qui fait partie de votre capacité de calcul.
Index de recherche
La recherche en texte intégral et les index vectoriels héritent du groupe de localité défini sur l'objet de base de données.
Observabilité
Les fonctionnalités d'observabilité suivantes sont disponibles pour le stockage hiérarchisé.
Métriques Cloud Monitoring
Spanner fournit les métriques suivantes pour vous aider à surveiller votre utilisation du stockage hiérarchisé et vos données à l'aide de Cloud Monitoring :
spanner.googleapis.com/instance/storage/used_bytes(Stockage total) : affiche le nombre total d'octets de données stockées sur un stockage SSD et HDD.spanner.googleapis.com/instance/storage/combined/limit_bytes: affiche la limite combinée de stockage SSD et HDD.spanner.googleapis.com/instance/storage/combined/limit_bytes_per_processing_unit: affiche la limite combinée de stockage SSD et HDD pour chaque unité de traitement.spanner.googleapis.com/instance/storage/combined/utilization: affiche l'utilisation combinée du stockage SSD et HDD, par rapport à la limite de stockage combinée.spanner.googleapis.com/instance/disk_load: affiche l'utilisation du HDD en pourcentage. Si votre instance atteint 100% de charge du disque HDD, la latence augmente considérablement.
Si vous avez des requêtes existantes qui filtrent les métriques existantes par storage_class:ssd, vous devez supprimer le filtre pour afficher votre utilisation du HDD.
Pour en savoir plus sur la surveillance de vos ressources Spanner, consultez Surveiller les instances avec des insights système et Surveiller les instances avec Cloud Monitoring.
Schéma d'informations
INFORMATION_SCHEMA.LOCALITY_GROUP_OPTIONS contient la liste des groupes de localité et des options de votre base de données Spanner. Il inclut des informations pour le groupe de localité default. Pour en savoir plus, consultez
locality_group_options pour les bases de données utilisant le dialecte GoogleSQL
et locality_group_options pour les bases de données utilisant le dialecte PostgreSQL.
Tables de statistiques intégrées
Les tables de statistiques intégrées suivantes sont disponibles pour les bases de données utilisant le stockage hiérarchisé :
SPANNER_SYS.TABLE_SIZES_STATS_1HOUR: affiche l'utilisation de l'espace de stockage HDD et SSD pour chaque table de votre base de données.SPANNER_SYS.TABLE_SIZES_STATS_PER_LOCALITY_GROUP_1HOUR: affiche l'utilisation de l'espace de stockage HDD et SSD pour chaque groupe de localité de votre base de données.
Pour en savoir plus, consultez Statistiques sur la taille des tables.
Les tables de statistiques sur les requêtes et de statistiques sur les lectures comportent la colonne suivante, qui est liée au stockage hiérarchisé :
AVG_DISK_IO_COST: coût moyen de cette requête en termes de charge du disque HDD Spanner. Utilisez cette valeur pour comparer les coûts d'E/S HDD relatifs entre les lectures que vous exécutez dans la base de données. Une valeur plus élevée indique que vous utilisez davantage de charge de disque HDD et que votre requête peut être plus lente que si elle s'exécutait sur un SSD. De plus, si la charge de votre disque HDD est à pleine capacité, les performances de vos requêtes peuvent être davantage affectées.
Pour en savoir plus, consultez Statistiques sur les requêtes et Statistiques sur les lectures.
Tarifs
L'utilisation du stockage hiérarchisé n'entraîne aucuns frais supplémentaires. Vous êtes facturé aux tarifs standards de Spanner pour la quantité de capacité de calcul utilisée par votre instance et la quantité de stockage utilisée par votre base de données. Les données stockées sur un SSD et un HDD sont facturées à leurs tarifs de stockage respectifs. Le déplacement de données entre un stockage SSD et HDD n'est pas facturé. L'interrogation des données sur un HDD utilise la capacité de charge du disque HDD de l'instance, qui fait partie de vos tarifs de capacité de calcul. Pour en savoir plus, consultez Tarifs de Spanner.
Étape suivante
- En savoir plus sur les groupes de localité.
- Découvrez comment créer et gérer des groupes de localité.
- Découvrez comment optimiser les requêtes avec le pushdown de prédicat d'horodatage.