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

Interfaces disponibles

Vous pouvez utiliser l'une des différentes interfaces de programmation pour interagir 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 reposent sur gRPC. Ces clients les bibliothèques fournissent une couche d'abstraction en plus 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 accepte le service Open Source Spanner. pilotes de plusieurs bibliothèques de mappage relationnel-objet (ORM) populaires et tels que JDBC. Ces pilotes permettent d'utiliser des bases de données Spanner les API définies par ces frameworks.
  • API RPC : si aucune bibliothèque cliente ou pilote ORM n'est disponible dans le langage de programmation de votre choix, utilisez l'API RPC, qui repose sur le framework gRPC. gRPC offre de nombreux avantages en termes de performances par rapport à l'utilisation de l'API REST, y compris la représentation d'objets dans un format de tampon de protocole (plus rapide à produire et à consommer par rapport à JSON) et des connexions persistantes (qui réduisent le coût par requête). Pour plus d'informations sur ces interfaces et connaître les autres avantages, consultez la page gRPC Concepts.
  • API REST: si vous ne parvenez pas à utiliser les bibliothèques clientes de Spanner ou l'API RPC, utilisez l'API REST. Notez que certaines fonctionnalités disponibles de l'API RPC ne sont pas prises en charge dans l'API REST, comme indiqué ci-dessous.

Comparaison des API RPC et REST

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

Caractéristique 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é avec les fonctionnalités des bibliothèques clientes

Le tableau suivant répertorie les bibliothèques clientes et indique les principales fonctionnalités de Spanner compatibles avec chacune d'entre elles.

Client Go Java Node.js Python Ruby C++ PHP C#
Optimisations d'instruction
Mutations
LMD par lots
LDD par lot
Lectures non actualisées
Tables entrelacées
LMD partitionné
Ajout de libellés aux sessions
Priorité de la demande
Type JSON
Demander l'ajout de tags
Option de variante optimale configurable
Lecture partitionnée
Interface PostgreSQL