Présentation des API, des bibliothèques clientes et des pilotes ORM

Interfaces disponibles

Vous pouvez utiliser l'une des interfaces programmatiques lorsque vous interagissez avec Spanner. Voici les interfaces disponibles, dans l'ordre dans lequel nous vous recommandons de les utiliser :

  • Bibliothèques clientes : les bibliothèques clientes Spanner sont disponibles dans plusieurs langages et sont basées sur gRPC. Ces bibliothèques clientes fournissent une couche d'abstraction au-dessus de gRPC et gèrent les détails de la gestion des sessions, de l'exécution des transactions, des nouvelles tentatives, etc.
  • Pilotes ORM et de framework : Google est compatible avec les pilotes Spanner Open Source pour plusieurs bibliothèques et frameworks de mappage objet-relationnel (ORM) populaires, tels que JDBC. Ces pilotes permettent d'utiliser des bases de données Spanner via les API définies par ces frameworks.
  • API RPC : si aucune bibliothèque cliente ou aucun pilote ORM n'est disponible pour le langage de programmation de votre choix, utilisez l'API RPC, qui est basée sur gRPC. gRPC offre un certain nombre d'avantages en termes de performances par rapport à l'utilisation de l'API REST, y compris la représentation d'objets au format de tampon de protocole (qui sont plus rapides à produire et à consommer par rapport à JSON) et les connexions persistantes (qui entraînent moins de frais généraux par requête). Pour en savoir plus sur ces avantages et d'autres, consultez Concepts gRPC.
  • API REST : si vous ne pouvez pas utiliser les bibliothèques clientes de Spanner ni l'API RPC, utilisez l'API REST. Notez que certaines fonctionnalités disponibles dans l'API RPC ne sont pas compatibles avec l'API REST, comme indiqué ci-dessous.

API RPC et API REST

Ce tableau compare les fonctionnalités Spanner disponibles via ses interfaces d'API RPC et REST.

Fonctionnalité Disponible dans l'API RPC ? Disponible dans l'API REST ?
Annuler une requête  Oui  Non
Définir la durée ou le délai avant expiration d'une requête  Oui  Non
Envoyer une requête de streaming  Oui. Voir ExecuteStreamingSQL et StreamingRead. Partiel. Le streaming HTTP est compatible, mais pas le contrôle de flux au niveau de l'application.

Compatibilité des fonctionnalités des bibliothèques clientes

Le tableau suivant liste les bibliothèques clientes, en indiquant les principales fonctionnalités Spanner compatibles avec chacune d'elles.

Client Go Java Node.js Python Ruby C++ PHP C# Rust
LDD par lot
LMD par lots
Option de leader configurable
Requêtes de graphe
Tables entrelacées
Type JSON
Mutations
LMD partitionné
Lecture partitionnée
Interface PostgreSQL
Priorité de la requête
Demander l'ajout de tags
Étiquetage des sessions
Lectures non actualisées
Optimisations d'instruction
Métriques client