Présentation du partitionnement géographique

Cette page présente et explique le fonctionnement du géopartitionnement 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

Voici les avantages du géopartitionnement:

  • Réduit la latence d'écriture et de lecture élevée en vous permettant de stocker vos données au même emplacement géographique que votre requête.

  • Optimise les coûts pour les charges de travail globales asymétriques (par exemple, en utilisant une partition us-central1 avec 10 nœuds et une partition asia-south1 avec deux nœuds).

Voici des cas d'utilisation courants:

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

  • Données localisées: informations spécifiques à une zone géographique, comme le trafic et les événements spéciaux.

Fonctionnement du géorepérage

Toutes les instances Spanner disposent d'une partition d'instance principale appelée partition default. Si vous ne créez pas de partitions 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 supplémentaires dans votre instance.

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

  1. Créez des partitions supplémentaires dans votre instance. Ces partitions 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 par défaut de l'instance.

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

  4. Créez des tables d'emplacements avec un attribut de clé d'emplacement. Vous devez utiliser la clé d'emplacement dans vos instructions DML pour spécifier la partition dans laquelle se trouvent 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 par défaut.

La clé d'emplacement de chaque ligne d'un tableau 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 définis pour cette base de données ; ou

  • Valeur de clé d'emplacement, default, qui stocke les données à l'emplacement par défaut.

Pour savoir comment utiliser les partitions, consultez la section Créer et gérer des partitions.

Remarques importantes

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

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

    Bien que vous puissiez créer des partitions dans une instance avec une configuration d'instance régionale, nous vous recommandons de créer des partitions dans une instance avec une configuration d'instance multirégionale afin que l'emplacement par défaut de la partition soit également dans une configuration multirégionale.

    De plus, sélectionnez un emplacement de partition 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. Créez ensuite des partitions supplémentaires (qui peuvent être régionales) avec des régions leaders correspondant aux régions de la partition par défaut multirégionale.

  • Nombre de partitions: un nombre trop élevé de partitions 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 par instance.

Limites

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

  • Vous ne pouvez pas créer de partition d'instance à l'aide d'une configuration à deux régions.
  • Pour chaque partition, 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 plusieurs partitions d'instance qui utilisent 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 les deux us-central1 comme configuration de partition.
  • Pour chaque nœud de votre partition, vous pouvez placer un maximum de 100 millions de lignes d'emplacement. Vous pouvez afficher le nombre de lignes d'emplacements qui ont été placées dans chacune de vos partitions sur la page "Partitions" de la console Google Cloud.
  • Pour chaque nœud de la partition de votre instance de destination, Spanner peut déplacer environ 10 lignes d'emplacement par seconde.
  • Vous ne pouvez pas créer de partitions dans les instances d'essai gratuit ni dans les instances de taille plus petite qu'un nœud (1 000 unités de traitement).
  • Vous ne pouvez pas créer de sauvegardes pour les instances avec partitions.
  • Vous ne pouvez pas utiliser de clés de chiffrement gérées par le client pour les instances avec des partitions.
  • Vous ne pouvez pas créer de partitions d'instance dans une instance avec l'autoscaling géré activé.
  • Vous ne pouvez pas déplacer la partition vers une autre configuration d'instance.
  • Vous ne pouvez pas déplacer une instance qui contient des partitions. (Vous pouvez déplacer des lignes individuelles vers différentes partitions afin de ne pas avoir à déplacer l'instance.)
  • L'utilisation de partitions ne garantit pas le respect des exigences réglementaires.
  • Les flux de modifications ne sont pas compatibles avec les données partitionnées.
  • Pour utiliser le géopartitionnement, vous devez créer une base de données vide et définir l'option opt_in_dataplacement_preview sur true. Pour en savoir plus, consultez la section Créer et gérer des partitions.
  • Si vous utilisez une instruction LMD INSERT ou DELETE pour une table d'emplacements, cette instruction doit être la seule instruction de la transaction.

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. Si vous ne devez afficher que les partitions, 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 la section Appliquer des autorisations IAM.

Surveillance

Spanner fournit plusieurs métriques pour vous aider à surveiller vos partitions. Une fois que vous avez créé une partition supplémentaire, un filtre déroulant supplémentaire pour Partitions 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. Vous pouvez utiliser le menu déroulant pour filtrer les métriques d'une partition spécifique.

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

Tarifs

L'utilisation du géopartitionnement n'entraîne aucuns frais supplémentaires. Les tarifs standards de Spanner vous sont facturés 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.

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

Étape suivante