Présentation du partitionnement géographique

Cette page présente le partitionnement géographique et explique son fonctionnement dans Spanner.

Spanner propose des configurations d'instance régionales et multirégionales, qui vous permettent de répliquer vos données sur plusieurs emplacements géographiques. Le partitionnement géographique vous permet de segmenter davantage et de stocker les lignes de votre table de base de données dans différentes configurations d'instance.

Avantages et cas d'utilisation

Le partitionnement géographique vous permet de partitionner les lignes de votre base de données, ce qui offre les avantages suivants :

  • Latence régionale dans une base de données globale : grâce au partitionnement géographique, Spanner gère vos données dans une base de données unifiée unique sur des emplacements géographiquement répartis, tout en garantissant une faible latence pour l'accès régional. Le partitionnement géographique simplifie les opérations et réduit la complexité par rapport à la gestion de plusieurs bases de données segmentées.
  • Fonctionnalités de base de données globale : le partitionnement géographique offre des fonctionnalités de base de données telles que les transactions globales, le déplacement de données entre les régions et l'application de l'unicité entre les régions géographiques.
  • Conformité aux exigences de résidence des données : Spanner fournit des engagements de résidence des données au niveau de l'emplacement. Pour en savoir plus, consultez Compatibilité avec la résidence des données pour les bases de données qui utilisent le partitionnement géographique.

Voici quelques cas d'utilisation courants :

  • Données liées aux utilisateurs : partitionnement géographique des données liées aux utilisateurs pour traiter et stocker les données dans la région la plus proche de l'utilisateur.

  • Données localisées : informations spécifiques à un lieu, telles que le trafic et les événements spéciaux.

Fonctionnement du partitionnement géographique

Toutes les instances Spanner ont une partition d'instance principale appelée partition d'instance default. Si vous ne créez pas de partitions d'instance supplémentaires, tous les objets de base de données sont stockés dans la partition par défaut, qui se trouve au même emplacement que la configuration de votre instance. Si vous souhaitez partitionner les données d'une base de données, vous devez créer des partitions d'instance supplémentaires dans votre instance.

Pour utiliser le partitionnement géographique dans une base de données :

  1. Créez des partitions d'instance supplémentaires dans votre instance. Ces partitions d'instance créées par l'utilisateur ont leur propre configuration (régionale ou multirégionale) et leur propre nombre de nœuds.

  2. Créez votre base de données comme vous le feriez normalement. La base de données dispose d'un emplacement par défaut associé à la partition d'instance par défaut de l'instance.

  3. Créez des emplacements dans votre base de données qui sont associés aux partitions d'instance supplémentaires. Votre base de données peut interagir avec les partitions d'instance supplémentaires créées dans la même instance.

  4. Créez des tables d'emplacement dotées d'un attribut de clé d'emplacement. Vous devez utiliser la clé d'emplacement dans vos instructions LMD pour spécifier la partition d'instance dans laquelle résident les données de ligne. Si vous créez des tables sans emplacement dans votre base de données, Spanner stocke ces données dans la partition d'instance par défaut.

La clé d'emplacement de chaque ligne d'une table d'emplacements doit être attribuée à l'un des éléments suivants :

  • Une valeur correspondant au nom de l'un des emplacements créés par l'utilisateur et définis pour cette base de données ; ou

  • La valeur de clé d'emplacement, default, qui stocke les données dans l'emplacement par défaut.

Pour savoir comment utiliser les partitions d'instance, consultez Créer et gérer des partitions d'instance.

Remarques importantes

Tenez compte des points suivants avant de créer vos partitions d'instances, vos emplacements et vos tables d'emplacement :

  • Emplacement de la partition d'instance : sélectionnez avec soin les régions de partition d'instance qui offrent le plus d'avantages pour votre application.

    • Vous devez créer des partitions d'instance dans une instance avec une configuration d'instance multirégionale.

    • Pour une meilleure latence, nous vous recommandons de sélectionner un emplacement de partition d'instance par défaut multirégional qui comporte des régions en lecture/écriture et en lecture seule couvrant toutes les juridictions requises par votre application. Ensuite, créez des partitions d'instances supplémentaires (qui peuvent être régionales) avec des régions de leader correspondant aux régions de la partition d'instances par défaut multirégionale.

  • Nombre de partitions d'instance : un nombre trop élevé de partitions d'instance peut entraîner des frais généraux, tandis qu'un nombre trop faible peut ne pas offrir suffisamment d'avantages. Vous pouvez créer jusqu'à 10 partitions d'instance par instance.

Limites

Les limites suivantes s'appliquent pendant la version Preview et sont susceptibles d'être modifiées ou supprimées lors de la version GA ou après :

  • Votre partition d'instance par défaut doit être une configuration multirégionale.
  • Votre partition d'instance supplémentaire doit être une configuration multirégionale.
  • Vous ne pouvez pas créer de partition d'instance à l'aide d'une configuration birégionale.
  • Pour chaque partition d'instance, la capacité de calcul doit être d'au moins un nœud (1 000 unités de traitement).
  • Pour une instance donnée, vous ne pouvez pas créer plus d'une partition d'instance utilisant la même configuration d'instance de base. Par exemple, dans test-instance, vous ne pouvez pas créer deux partitions, partition-1 et partition-2, qui utilisent toutes deux us-central1 comme configuration de partition d'instance.
  • Pour chaque nœud de votre partition d'instance, vous pouvez placer un maximum de 100 millions de lignes d'emplacement. Vous pouvez afficher le nombre de lignes d'emplacement qui ont été placées dans chacune de vos partitions d'instance sur la page "Partitions d'instance" de la console Google Cloud .
  • Pour chaque nœud de votre partition d'instance de destination, Spanner peut déplacer environ 10 lignes de placement par seconde.
  • Vous ne pouvez pas créer de sauvegardes incrémentielles ni copier la sauvegarde.
  • Vous ne pouvez pas activer l'autoscaling asymétrique en lecture seule sur les partitions d'instance autres que celles par défaut.
  • Vous ne pouvez pas déplacer la partition d'instance vers une autre configuration d'instance.
  • Vous ne pouvez pas déplacer une instance dont les bases de données utilisent des emplacements supplémentaires pointant vers la partition d'instance par défaut.
  • Les flux de modifications ne sont pas compatibles avec les données partitionnées.
  • Si vous utilisez une instruction LMD INSERT ou DELETE pour une table d'emplacement, cette instruction doit être la seule de la transaction.
  • Le mode de transaction en lecture-écriture vous permet de ne référencer que les clés primaires d'une table d'emplacement dans la clause WHERE. Si vous devez référencer une colonne de clé non primaire d'une table d'emplacement dans la clause WHERE, vous pouvez utiliser l'une des alternatives suivantes :
    • Si vous n'avez besoin que d'un accès en lecture seule, passez en mode de transaction en lecture seule.
    • Si vous devez effectuer des mises à jour, utilisez le mode de transaction LMD partitionné ou recherchez les clés primaires dans une requête de transaction en lecture seule, puis, dans une transaction en lecture-écriture distincte, référencez les clés primaires renvoyées dans la clause WHERE.
  • Vous ne pouvez pas utiliser de schémas nommés.
  • Vous ne pouvez pas créer de partitions d'instance dans des instances d'essai sans frais ou des instances de taille précise inférieures à un nœud (1 000 unités de traitement).
  • Vous ne pouvez pas modifier un emplacement. À la place, vous pouvez créer un emplacement, utiliser le LMD partitionné pour mettre à jour l'emplacement de vos données vers un nouvel emplacement, puis supprimer l'emplacement d'origine.

Contrôle des accès avec IAM

Vous devez disposer des autorisations spanner.instancePartitions.create, spanner.instancePartitions.update et spanner.instancePartitions.delete pour créer et gérer des partitions d'instances. Si vous n'avez besoin que d'afficher les partitions d'instance, vous devez disposer de l'autorisation spanner.instancePartitions.list ou spanner.instancePartitions.get. Pour en savoir plus, consultez la Présentation d'IAM.

Pour savoir comment accorder des autorisations IAM Spanner, consultez Appliquer des autorisations IAM.

Surveillance

Spanner fournit plusieurs métriques pour vous aider à surveiller les partitions de votre instance. Une fois que vous avez créé une partition d'instance supplémentaire, un filtre déroulant supplémentaire pour les partitions d'instance s'affiche sur la page "Insights système" de la console Google Cloud . Par défaut, les métriques sont affichées pour toutes les partitions d'instance. Vous pouvez utiliser le menu déroulant pour filtrer les métriques d'une partition d'instance spécifique.

Pour en savoir plus sur la surveillance de vos ressources Spanner, consultez Surveiller des instances avec Cloud Monitoring.

Sauvegardes

Vous pouvez créer des sauvegardes complètes pour les bases de données qui utilisent le partitionnement géographique. Vous ne pouvez pas supprimer la partition d'instance si vous l'utilisez dans une sauvegarde. Pour en savoir plus, consultez Créer des sauvegardes.

Remarques concernant l'utilisation :

  • Spanner stocke les sauvegardes des données partitionnées géographiquement dans le même emplacement que les données d'origine au moment de la version de la sauvegarde.
  • Pour restaurer des sauvegardes contenant des données partitionnées géographiquement, votre instance de destination doit remplir les conditions suivantes :

    • L'instance de destination doit utiliser les mêmes noms de partition d'instance que la sauvegarde d'origine.
    • Chaque partition d'instance de l'instance de destination doit utiliser la même configuration d'instance que la sauvegarde d'origine.

Autoscaler géré

Vous pouvez activer l'autoscaler géré sur les partitions d'instances. Lorsque vous activez l'autoscaler géré, Spanner ajuste automatiquement la taille de votre partition d'instance. L'autoscaler géré réagit aux changements de la charge de travail ou des besoins de stockage de votre partition d'instance à mesure que votre charge augmente ou diminue. L'autoscaler géré effectue un scaling à la hausse, en ajoutant de la capacité de calcul à la partition d'instance, ou un scaling à la baisse, en supprimant de la capacité de calcul de la partition d'instance.

Tarifs

L'utilisation du partitionnement géographique n'entraîne aucuns frais supplémentaires. Les tarifs Spanner standards vous sont facturés pour la capacité de calcul utilisée par votre instance et l'espace de stockage utilisé par votre base de données.

Pour en savoir plus, consultez la page Tarifs de Spanner.

Étapes suivantes