API、用戶端程式庫和 ORM 驅動程式總覽

可用介面

與 Spanner 互動時,您可以使用其中一種程式輔助介面。以下是可用的介面,按建議的使用順序排序:

  • 用戶端程式庫:Spanner 用戶端程式庫有多種語言版本,並依據 gRPC 建構而成。這些用戶端程式庫會在 gRPC 頂端提供抽象層,處理工作階段管理、交易執行、重試及其他作業的細節。
  • ORM 和架構驅動程式:Google 支援開放原始碼 Spanner 驅動程式,適用於多個熱門的物件關聯對應程式庫 (ORM) 和架構,例如 JDBC。這些驅動程式可透過這些架構定義的 API 使用 Spanner 資料庫。
  • RPC API:如果您選擇的程式設計語言無法使用用戶端程式庫或 ORM 驅動程式,請使用以 gRPC 建構的 RPC API。與使用 REST API 相比,gRPC 可提供許多效能優勢,包括以通訊協定緩衝區格式表示物件 (與 JSON 相比,產生和使用速度更快),以及持久連線 (可減少每個要求的額外負擔)。如要進一步瞭解這些優勢及其他好處,請參閱 gRPC 概念
  • REST API:如果您無法使用 Spanner 的用戶端程式庫或 RPC API,請使用 REST API。請注意,REST API 不支援 RPC API 的部分功能,說明如下。

RPC 與 REST API

下表比較了透過 RPC 和 REST API 介面提供的 Spanner 功能。

功能 RPC API 是否支援? REST API 是否支援?
取消要求
設定要求的期限或逾時
傳送串流要求 是的,請參閱 ExecuteStreamingSQLStreamingRead 部分支援。支援 HTTP 串流,但不支援應用程式層級的流量控制

用戶端程式庫功能支援

下表列出用戶端程式庫,並註明各個程式庫支援的主要 Spanner 功能。

客戶 Go Java Node.js Python Ruby C++ PHP C#
批次 DDL
批次 DML
可設定的領隊選項
圖譜查詢
交錯式資料表
JSON 類型
突變
分區 DML
分割讀取
PostgreSQL 介面
要求優先順序
要求標記
工作階段標記
過時讀取
語句提示