Cette page présente le partitionnement géographique et explique comment il fonctionne 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 présente les avantages suivants :
- Latence régionale dans une base de données mondiale : en utilisant le partitionnement géographique, Spanner gère vos données dans une base de données unique et unifiée, dans des emplacements répartis géographiquement, tout en assurant une faible latence pour l'accès régional. L'utilisation du partitionnement géographique simplifie les opérations et réduit la complexité par rapport à la gestion de plusieurs bases de données fragmentées.
- Fonctionnalités de base de données mondiale : le partitionnement géographique offre des fonctionnalités de base de données telles que les transactions mondiales, le déplacement de données entre les régions et l'application de l'unicité dans les régions géographiques.
- Conformité de la 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 utilisateur : partitionnez géographiquement les données utilisateur pour les traiter et les stocker dans une région proche de l'utilisateur.
Données localisées : informations spécifiques à un lieu, comme le trafic et les événements spéciaux.
Fonctionnement du partitionnement géographique
Toutes les instances Spanner comportent 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 :
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.
Créez votre base de données comme d'habitude. La base de données dispose d'un emplacement par défaut associé à la partition d'instance par défaut de l'instance.
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.
Créez des tables d'emplacements comportant 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 se trouvent les données de la ligne. Si vous créez des tables non liées à des emplacements 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'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 et définis pour cette base de données.
La valeur 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, emplacements et tables d'emplacements d'instances :
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.
Bien que vous puissiez créer des partitions d'instance dans une instance avec une configuration d'instance régionale, nous vous recommandons de créer des partitions d'instance dans une instance avec une configuration d'instance multirégionale afin que l'emplacement de la partition d'instance par défaut soit également dans une configuration multirégionale.
De plus, sélectionnez un emplacement de partition d'instance multirégionale par défaut 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 d'instance supplémentaires (qui peuvent être régionales) avec des régions leaders correspondant aux régions de la partition d'instance par défaut multirégionale.
Nombre de partitions d'instance : un nombre trop élevé de partitions d'instance peut entraîner une surcharge, tandis qu'un nombre trop faible peut ne pas offrir suffisamment d'avantages. Vous pouvez créer jusqu'à dix partitions d'instance par instance.
Limites
Les limites suivantes s'appliquent pendant la version bêta et peuvent être modifiées ou supprimées lors de la disponibilité générale ou après :
- 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 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
etpartition-2
, qui utilisent toutes les deuxus-central1
comme configuration de partition d'instance. - Pour chaque nœud de la partition d'instance, vous pouvez placer jusqu'à 100 millions de lignes d'emplacements. Vous pouvez consulter le nombre de lignes d'emplacements qui ont été placées dans chacune des partitions de votre instance sur la page "Partitions d'instance" 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 sauvegardes pour les instances avec des partitions d'instance.
- Vous ne pouvez pas utiliser de clés de chiffrement gérées par le client pour les instances avec partitions d'instance.
- Vous ne pouvez pas créer de partitions d'instance dans une instance pour laquelle l'autoscaler géré est activé.
- Vous ne pouvez pas déplacer la partition d'instance vers une autre configuration d'instance.
- Vous ne pouvez pas déplacer une instance qui comporte des partitions d'instance. (Vous pouvez déplacer des lignes individuelles vers différentes partitions d'instance. Vous n'avez donc pas besoin de déplacer l'instance.)
- L'utilisation de partitions d'instances ne garantit pas le respect des exigences réglementaires et de conformité.
- 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
surtrue
. Pour en savoir plus, consultez Créer et gérer des partitions d'instance. - Si vous utilisez une instruction LMD
INSERT
ouDELETE
pour une table d'emplacements, cette instruction doit être la seule de la transaction. - Le mode de transaction en lecture-écriture vous permet de référencer uniquement 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'emplacements dans la clauseWHERE
, vous pouvez utiliser l'une des alternatives suivantes :- Si vous n'avez besoin que d'un accès en lecture seule, passez au 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 de 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 les instances d'essai sans frais ni dans les instances de taille fine inférieures à un nœud (1 000 unités de traitement).
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'instance. 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 de menu déroulant Partitions d'instance s'affiche sur la page "Insights système" de la console Google Cloud . Par défaut, les métriques de toutes les partitions d'instance sont affichées. 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 les instances avec Cloud Monitoring.
Tarifs
L'utilisation du partitionnement géographique n'entraîne pas de frais supplémentaires. Le tarif Spanner standard vous est facturé en fonction de la capacité de calcul et de l'espace de stockage utilisés par votre instance et votre base de données.
Pour en savoir plus, consultez la page Tarifs de Spanner.
Étapes suivantes
- Découvrez comment créer et gérer des partitions d'instance.
- Découvrez comment créer et gérer des emplacements de données.