La page décrit les lectures dirigées par Spanner et explique comment les utiliser.
Les lectures dirigées dans Spanner permettent d'acheminer transactions en lecture seule et les lectures uniques d'instance répliquée ou de région dans une configuration d'instance multirégionale ou configuration régionale avec une ou plusieurs régions facultatives en lecture seule.
Cas d'utilisation courants
Voici quelques cas d'utilisation courants des lectures dirigées:
- Équilibrage de charge des charges de travail entre plusieurs régions pour obtenir une uniformité Utilisation du processeur.
- Isoler les analyses dans votre application en limitant l'impact sur les transactions charges de travail.
- Assurer une isolation partielle pour les lectures de flux de modifications. Si vous utilisez l'API Spanner pour diffuser les modifications des données Spanner, vous pouvez réduire l'impact des charges de travail transactionnelles à l'aide de lectures dirigées.
Opérations de requête compatibles
Opérations de requête | Les lectures dirigées sont-elles acceptées ? |
---|---|
Lecture non actualisée | Oui |
Lecture forte | Oui |
Transaction en lecture/écriture | Non |
Les lectures dirigées ne sont pas compatibles avec les transactions en lecture/écriture.
et les types de mises à jour groupées LMD partitionné. Ce
car les transactions en lecture/écriture doivent être traitées dans la région principale. Si
sont utilisées dans une transaction en lecture-écriture, la transaction échoue avec
une erreur BAD_REQUEST
.
Limites
Les lectures dirigées par Spanner présentent les limites suivantes:
- Vous ne pouvez utiliser les lectures dirigées que dans une instance Spanner dans une configuration d'instance multirégionale ; ou une configuration régionale personnalisée avec une ou plusieurs régions facultatives en lecture seule.
- Vous ne pouvez pas utiliser de lectures dirigées avec des requêtes de lecture/écriture, car les opérations d'écriture les requêtes sont toujours diffusées par la région principale.
- Vous ne pouvez pas utiliser les lectures dirigées dans la console Google Cloud ou la Google Cloud CLI. Il est disponibles via REST Les API RPC et Spanner bibliothèques clientes.
- Vous pouvez spécifier un maximum de 10 instances répliquées par lecture dirigée.
- Si vous utilisez le tableau de bord des insights système ou Explorateur de métriques, dans le Opérations par seconde, opérations par seconde par base de données et opérations par seconde par graphique de méthode d'API, il est possible que votre requête de lecture dirigée dans un lieu autre que celui indiqué. Dans ce cas, les informations des graphiques peuvent être incorrectes. Vous pouvez vérifier que vos demandes de lecture sont acheminées vers la ou les régions de votre choix à l'aide des métriques d'utilisation du processeur. Ces métriques fournissent les informations les plus précises sur l'emplacement des lectures dirigées le trafic est acheminé.
Avant de commencer
Tenez compte des points suivants avant d'utiliser les lectures dirigées:
- L'application peut engendrer une latence supplémentaire si vous acheminez les lectures vers une instance répliquée ou une région autre que celle la plus proche de l'application.
- Vous pouvez acheminer le trafic en fonction des éléments suivants:
<ph type="x-smartling-placeholder">
- </ph>
- Nom de la région (par exemple,
us-central1
) - Type d'instance répliquée (valeurs possibles:
READ_ONLY
etREAD_WRITE
).
- Nom de la région (par exemple,
- L'option de basculement automatique dans les lectures dirigées est activée par défaut. Lorsque l'option est automatique
l'option de basculement est activée et toutes les instances répliquées spécifiées sont indisponibles
non opérationnel, Spanner achemine les requêtes vers une instance répliquée
Liste
includeReplicas
. Si vous désactivez l'option de basculement automatique les instances répliquées spécifiées sont indisponibles ou non opérationnelles, les lectures dirigées la requête échoue.
Paramètres des lectures dirigées
Si vous utilisez l'API REST ou RPC pour effectuer des lectures dirigées, vous devez définir
ces champs dans le paramètre directedReadOptions
. Vous ne pouvez inclure qu'une
includeReplicas
ou excludeReplicas
, mais pas les deux.
includeReplicas
: contient un ensemble répété dereplicaSelections
. Cette liste indique l'ordre dans lequel les lectures sont dirigées vers des régions ou une instance répliquée spécifiques doivent être pris en compte. Vous pouvez spécifier un maximum de 10includeReplicas
.replicaSelections
: se compose de l'instancelocation
ou de l'instance dupliquéetype
. la requête de lecture dirigée. Si vous utilisezincludeReplicas
, vous devez fournir au moins l'un des champs suivants:location
: emplacement diffusant la requête de lecture dirigée. La L'emplacement doit faire partie des régions de l'emplacement multirégional de votre base de données. Si le lieu ne fait pas partie des dans la configuration multirégionale de votre base de données, requêtes ne seront pas acheminées comme prévu. Elles sont diffusées dans la région la plus proche. Par exemple, vous pouvez diriger les lectures vers l'emplacementus-central1
sur une base de données dans la configuration d'instance multirégionalenam6
type
: type d'instance répliquée diffusant la requête de lecture dirigée. Possible les types disponibles sontREAD_WRITE
etREAD_ONLY
.
autoFailoverDisabled
: la valeur par défaut estFalse
(automatique). le basculement automatique est activé. Lorsque l'option de basculement automatique est activée et que toutes les répliquées spécifiées sont indisponibles ou non opérationnelles, Spanner achemine les requêtes vers une instance répliquée en dehors de la listeincludeReplicas
. Si vous désactiver l'option de basculement automatique pour que toutes les instances répliquées spécifiées indisponible ou non opérationnel, la requête de lecture dirigée échoue. Valeurs possibles inclureTRUE
pour "désactivé" etFALSE
pour "activé".
excludeReplicas
: contient un ensemble répété dereplicaSelections
qui est exclu de la diffusion des requêtes. Spanner n'achemine pas aux instances répliquées de cette liste.replicaSelections
: emplacement ou type d'instance répliquée exclu de la requête de lecture dirigée. Si vous utilisezexcludeReplicas
, vous devez fournir au moins l'un des champs suivants:location
: zone géographique exclue de la diffusion de lecture dirigée.type
: type d'instance répliquée exclu de la diffusion de l'instance lit la requête. Les types possibles sontREAD_WRITE
etREAD_ONLY
.
Pour voir un exemple de corps de requête REST, cliquez sur l'icône Onglet REST de la section Utiliser les lectures dirigées
Utiliser les lectures dirigées
Vous pouvez utiliser les bibliothèques clientes Spanner ainsi que les API REST et RPC pour et effectuer des lectures dirigées.
Bibliothèques clientes
C++
C#
Go
Java
Node.js
PHP
Python
Ruby
REST
Vous pouvez utiliser les API REST suivantes pour effectuer des lectures dirigées:
Par exemple, pour effectuer des lectures dirigées dans us-central1
à l'aide de executeSQL
:
Cliquez sur
projects.instances.databases.sessions.executeSql
.Pour session, saisissez la valeur suivante :
projects/<VAR>PROJECT-ID</VAR>/instances/<VAR>INSTANCE-ID</VAR>/databases/<VAR>DATABASE-ID</VAR>/sessions/<VAR>SESSION-ID</VAR>
Remplacez les éléments suivants :
- PROJECT-ID : ID du projet.
- INSTANCE-ID : ID de l'instance.
- DATABASE-ID: ID de la base de données.
- SESSION-ID: ID de session.
Vous recevez la valeur
SESSION-ID
lorsque vous créez une session.
Pour le champ Request body (Corps de la requête), utilisez les lignes suivantes :
{ "directedReadOptions": { "includeReplicas": { "replicaSelections": [ { "location": "us-central1", } ] } }, "sql": "SELECT SingerId, AlbumId, AlbumTitle FROM Albums" }
Cliquez sur Exécuter. La réponse affiche les résultats de la requête.
RPC
Vous pouvez utiliser les API RPC suivantes pour effectuer des lectures dirigées:
Étape suivante
- Découvrez comment effectuer des lectures en dehors des transactions.