Interfaces disponibles
Lorsque vous interagissez avec Spanner, vous pouvez utiliser l'une des interfaces de programmation. 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 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 accepte les pilotes Spanner Open Source pour plusieurs bibliothèques de mappage objet-relationnel (ORM) et frameworks populaires, tels que JDBC. Ces pilotes permettent d'utiliser des bases de données Spanner via des API définies par ces frameworks.
- API RPC : si aucune bibliothèque cliente ni 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 plusieurs avantages en termes de performances par rapport à l'utilisation de l'API REST, y compris la représentation des objets au format Protocol Buffer (qui sont plus rapides à produire et à consommer que JSON) et les connexions persistantes (qui entraînent moins de surcharge par requête). Pour en savoir plus sur ces interfaces et connaître les autres avantages, consultez Concepts de 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 le sont pas 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 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 avec les bibliothèques clientes
Le tableau suivant répertorie les bibliothèques clientes, ainsi que les principales fonctionnalités de Spanner compatibles avec chacune d'elles.