API、客户端库和 ORM 驱动程序概览

可用的接口

在与 Spanner。下面按我们推荐使用的顺序列出了可用的接口:

  • 客户端库:Spanner 客户端库 且支持多种语言,并且是基于 gRPC 构建的。这些客户 库在 gRPC 之上提供了一个抽象层, 会话管理、事务执行、重试等。
  • ORM 和框架驱动程序:Google 支持开源 Spanner 支持多种热门的对象关系映射库 (ORM) 和 例如 JDBC这些驱动程序允许通过 这些框架定义的 API
  • RPC API:如果您选择的编程语言不提供客户端库或 ORM 驱动程序,请使用基于 gRPC 构建的 RPC API。与使用 REST API 相比,gRPC 带来若干方面的性能优势,包括以 Protocol Buffer 格式表示对象(与 JSON 相比,生成和处理速度更快)以及持久连接(可减少每个请求的开销)。请阅读 gRPC 概念,详细了解这些优势以及其他好处。
  • REST API:如果您无法使用 Spanner 的客户端库 或 RPC API,请使用 REST API。请注意,您可以使用的某些功能 和 RPC API 中的 RPC API 在 REST API 中不受支持,如下所述。

RPC 与 REST API 的对比

下表比较了通过其 RPC 和 REST API 接口提供的 Spanner 功能。

特征 RPC API 是否支持? REST API 是否支持?
取消请求
设置请求的截止时间或超时时间
发送流式传输请求 是。请参阅 ExecuteStreamingSQLStreamingRead 部分支持。支持 HTTP 流式传输,但不支持应用级流控制

客户端库功能支持

下表列出了客户端库,指出了每个客户端库支持的主要 Spanner 功能。

客户 Go Java Node.js Python Ruby C++ PHP C#
语句提示
变更
批处理 DML
批处理 DDL
过时读取
交错表
分区 DML
会话标签
请求优先级
JSON 类型
请求标记
可配置的主要副本选项
分区读取
PostgreSQL 页面