Présentation du géopartitionnement

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

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

Avantages et cas d'utilisation

Le partitionnement géographique présente les avantages suivants:

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

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

Voici des cas d'utilisation courants:

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

  • Données localisées: informations spécifiques à des lieux, comme le trafic et les événements spéciaux.

Fonctionnement du géopartitionnement

Toutes les instances Spanner possèdent 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. Ces partitions créées par l'utilisateur ont leur propre configuration (régionale ou multirégionale) et leur propre nombre de nœuds. Créez votre base de données comme vous le feriez normalement. Votre base de données peut interagir avec les partitions créées dans la même instance. Ensuite, créez dans votre base de données des emplacements associés à la partition. Enfin, vous pouvez créer des tables d'emplacement comportant un attribut de clé d'emplacement. Vous devez utiliser la clé d'emplacement dans vos instructions LMD pour spécifier la partition dans laquelle se trouvent les données de la ligne. Si vous créez des tables autres que des emplacements dans votre base de données, Spanner stocke ces données dans la partition par défaut.

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

Remarques importantes

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

  • Emplacement de partitionnement: sélectionnez soigneusement les régions de partition qui offrent le plus d'avantages à 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 de partition par défaut se trouve également dans une configuration multirégionale.

    De plus, sélectionnez un emplacement de partition par défaut multirégional comportant des régions de lecture/écriture et de lecture seule couvrant toutes les juridictions requises par votre application. Ensuite, créez des partitions supplémentaires (qui peuvent être régionales) dont les régions principales correspondent aux régions de la partition multirégionale par défaut.

  • Nombre de partitions: un trop grand nombre de partitions peut entraîner une surcharge, alors qu'un nombre trop faible risque de ne pas offrir suffisamment d'avantages. Vous pouvez créer jusqu'à 10 partitions par instance.

Limites

Le géopartitionnement présente les limites suivantes:

  • Le géopartitionnement n'est pas compatible avec les bases de données de dialecte PostgreSQL.
  • Vous ne pouvez pas créer de partition d'instance à l'aide d'une configuration birégionale.
  • 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 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.
  • Pour chaque nœud de votre partition, vous pouvez placer jusqu'à 20 millions de lignes. Vous pouvez afficher le nombre de lignes qui ont été placées dans chacune de vos partitions sur la page "Partitions" de la console Google Cloud.
  • Pour chaque nœud de votre partition d'instance de destination, Spanner peut déplacer environ 10 lignes d'emplacement par seconde.
  • Vous ne pouvez pas créer de partitions dans des instances en essai gratuit ni dans des instances précises de taille inférieure à un nœud (1 000 unités de traitement).
  • Vous ne pouvez pas créer de sauvegardes pour les instances avec des 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 sur laquelle l'autoscaler géré est activé.
  • Vous ne pouvez pas déplacer la partition vers une autre configuration d'instance.
  • Vous ne pouvez pas déplacer une instance comportant des partitions.
  • L'utilisation de partitions ne garantit pas la sécurité, la conformité ni les exigences réglementaires.
  • Les flux de modifications ne sont pas compatibles avec les données partitionnées.
  • Pour utiliser le partitionnement géographique, 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 Créer et gérer des emplacements de données.
  • 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 devez uniquement afficher les partitions, vous devez disposer de l'autorisation spanner.instancePartitions.list ou spanner.instancePartitions.get. Pour en savoir plus, consultez la page Présentation d'IAM.

Pour en savoir plus sur l'attribution d'autorisations IAM pour Spanner, consultez la page 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 sur le système" de la console Google Cloud. La sélection par défaut consiste à afficher les métriques de toutes les partitions. Vous pouvez utiliser le menu déroulant pour filtrer les métriques pour une partition spécifique.

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

Tarification

L'utilisation du partitionnement géographique est gratuite. Le tarif standard de Spanner vous est facturé 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