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.