可用介面
與 Spanner 互動時,您可使用數種程式輔助介面。以下是可用的介面,按建議的使用順序排序:
- 用戶端程式庫:Spanner 用戶端程式庫有多種語言版本,並依據 gRPC 建構而成。這些用戶端程式庫會在 gRPC 頂端提供抽象層,處理工作階段管理、交易執行、重試及其他作業的細節。
- ORM 和架構驅動程式:Google 支援多種熱門物件關聯對應程式庫 (ORM) 和架構 (例如 JDBC) 的開放原始碼 Spanner 驅動程式。這些驅動程式可讓您透過這些架構定義的 API 使用 Spanner 資料庫。
- RPC API:如果您的程式設計語言沒有用戶端程式庫或 ORM 驅動程式,請使用以 gRPC 建構的 RPC API。相較於使用 REST API,gRPC 具有多項效能優勢,包括以通訊協定緩衝區格式表示物件 (與 JSON 相比,產生和使用的速度更快),以及持續連線 (可減少每項要求的負擔)。如要進一步瞭解這些優點和其他優點,請參閱「gRPC 概念」。
- REST API:如果您無法使用 Spanner 的用戶端程式庫或 RPC API,請改用 REST API。請注意,RPC API 中提供的某些功能在 REST 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# | Rust |
|---|---|---|---|---|---|---|---|---|---|
| 批次 DDL | |||||||||
| 批次 DML | |||||||||
| 可設定的領導者選項 | |||||||||
| 圖表查詢 | |||||||||
| 交錯表格 | |||||||||
| JSON 類型 | |||||||||
| 突變 | |||||||||
| 分區 DML | |||||||||
| 分區讀取 | |||||||||
| PostgreSQL 介面 | |||||||||
| 要求優先順序 | |||||||||
| 要求標記 | |||||||||
| 工作階段標籤 | |||||||||
| 過時讀取 | |||||||||
| 陳述式提示 | |||||||||
| 用戶端指標 |