Google Spanner vs. Microsoft Cosmos DB
建立全球分散式資料庫傳統上需要大量的投資和努力。
您需要將資料庫放在單個伺服器機房中,承擔全部費用。雲計算的進步使得建立全球分散式且可擴充套件的資料庫變得更容易。
在21世紀,資訊是企業執行的燃料。一些公司大規模生成資料,另一些公司規模較小。
但是,所有資料都需要儲存空間。在短期內,需要立即向用戶提供資料,並提供即時結果是一個巨大的挑戰。
因此,公司正在尋找一個高度響應的平臺,該平臺提供高可用性,保證低延遲,並存儲任何規模的資料。
Google Spanner
Cloud Spanner 是一款完全託管的關鍵型關係資料庫服務,可在全球範圍內提供強一致性,提供自動、同步複製以實現高可用性,並支援兩種 SQL 方言:Google 標準 SQL 和 PostgreSQL。
當 Google 的傳統資料庫無法處理生成的資料量時,該公司建立了一個新的分散式資料庫,稱為 Spanner。
Google Spanner 的關鍵特性如下:
一致性 - Google Spanner 旨在在基於值的方案中提供全域性一致性。
自動分片 - Google Spanner 中進行稱為分片的分片,它根據大小和負載需求劃分資料。
自動管理 - Google Spanner 有助於快速執行配置任務。它還具有內建的自動化系統來維護和執行同步複製。
恢復和備份管理 - Google Spanner 具有 PITR(Point-in-time-recovery)技術,可在微秒級別保護和恢復資料。
輕鬆配置 - Google Spanner 在讀取和寫入來自全球任何位置的任何規模的資料方面非常可靠。它幫助資料庫克服本地故障並提供最大可用性。
零停機時間 - Google Spanner 提供了在不影響停機時間的情況下更改架構/程式碼的靈活性。它有助於在不影響應用程式可用性的情況下進行資料庫轉換。
內建網路 - 由於 Google Spanner 特別構建在專用網路上,因此它在全球範圍內提供可靠性、安全性以及低延遲。
安全性 - Google Spanner 透過多種方式提供保護。它具有資料層加密技術和 IAM 整合以進行訪問控制和授權。
Microsoft Cosmos DB
Cosmos DB 由 Microsoft 推出,是一款 PaaS。它被認為是基於雲的 NoSQL 資料庫。Cosmos DB 還包含一個 Azure Archive 資料庫,可用於所有 Azure 地區。Cosmos DB 中的資料在全球範圍內分佈和複製。
在 Cosmos DB 中,限制管理、自動縮放和無伺服器資料庫有助於將需求與儲存容量相匹配。
Cosmos DB 適用於需要強大儲存平臺的各種可擴充套件的 IoT 應用程式、遊戲和網際網路。
Azure Cosmos DB 是 Azure 的快速 NoSQL 資料庫解決方案,具有適用於任何規模的開放 API。
該服務旨在允許使用者靈活地(獨立地)跨多個地理區域擴充套件吞吐量和儲存。
Microsoft Cosmos DB 的關鍵特性如下:
可擴充套件性 - 透過直接擴充套件功能,可以新增所需的伺服器數量來處理增加的負載。
多主 - 透過多主模型,讀寫操作可以在任何 Azure 區域進行擴充套件。
索引 - Cosmos DB 可以處理資料,無需編寫管理策略。它有助於進行自動索引,而無需索引管理元件。
多 API 支援 - Cosmos DB 支援多種 API,例如 SQL API、MongoDB API、Cassandra API、Gremlin API 和 Table API,這有助於簡化使用。
良好的語言支援 - Microsoft 的 SDK 支援多種語言,例如 JavaScript、Java、Python、Node.js 等。
低延遲 - Cosmos DB 提供 10 毫秒的延遲,因此資料分佈到任何地理區域,隨時為使用者提供服務。
Google Spanner 和 Microsoft Cosmos DB 的區別
下表重點介紹了 Google Spanner 和 Microsoft Cosmos DB 之間的主要區別:
差異依據 | Google Spanner | Microsoft Cosmos DB |
---|---|---|
定義 | 它是由 Google 工程師構建的完全可靠的分散式、可擴充套件資料庫,用於支援 Google 一些最關鍵的應用程式。 | 它是一個本地非關係型服務,用於處理文件資料模型。 |
資料庫 | 它是一種關係資料庫 (RDBM)。 | 它是一種基於雲的 NoSQL 資料庫。 |
ACID 屬性 | 它支援跨多個事務的 ACID 屬性。 | 它支援跨單個事務的 ACID 屬性。 |
APIs | 各種 API 包括 JDBC、gRPC 和 HTTP API。 | 各種 API 包括 MongoDB、DocumentDB、Table API、Gremlin 和 HTTP API。 |
擴充套件性 | 它提供自動擴充套件選項。 | 它不提供自動擴充套件選項。 |
使用者訪問 | 身份和訪問管理 (IAM) 有助於提供使用者訪問。 | 向用戶提供對容器中“專案”的訪問許可權。 |
恢復 | Google Spanner 提供災難管理和冗餘,但在資料中心方面有一些限制。 | 它有助於在分散式訪問中提供冗餘和災難恢復。 |
支援的語言 | Java、Python、JavaScript 等。 | C#、.Net、Java、Python、JavaScript 等。 |
結論
這兩個資料庫都是可行的,並提供相似的功能,只有細微的差別。對於企業來說,從傳統資料庫遷移到雲資料庫,選擇 Google Spanner 或 Microsoft Cosmos DB 都是一個艱難的決定。選擇 Google Spanner 和 Microsoft Cosmos DB 之間的過程就像在巧克力和餅乾之間進行選擇。但是,建議在選擇任何平臺之前,應瞭解其功能和限制。