可用介面
與 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 是否支援? |
---|---|---|
取消要求 | 是 | 否 |
設定要求的期限或逾時 | 是 | 否 |
傳送串流要求 | 是的,請參閱 ExecuteStreamingSQL 和 StreamingRead 。 |
部分支援。支援 HTTP 串流,但不支援應用程式層級的流量控制。 |
用戶端程式庫功能支援
下表列出用戶端程式庫,並註明各個程式庫支援的主要 Spanner 功能。
客戶 | Go | Java | Node.js | Python | Ruby | C++ | PHP | C# |
---|---|---|---|---|---|---|---|---|
批次 DDL | ||||||||
批次 DML | ||||||||
可設定的領隊選項 | ||||||||
圖譜查詢 | ||||||||
交錯式資料表 | ||||||||
JSON 類型 | ||||||||
突變 | ||||||||
分區 DML | ||||||||
分割讀取 | ||||||||
PostgreSQL 介面 | ||||||||
要求優先順序 | ||||||||
要求標記 | ||||||||
工作階段標記 | ||||||||
過時讀取 | ||||||||
語句提示 |