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 毫秒的延迟,因此数据分布到任何地理区域,随时为用户提供服务。

Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.

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 之间的过程就像在巧克力和饼干之间进行选择。但是,建议在选择任何平台之前,应了解其功能和限制。

更新于:2022年12月1日

浏览量:129

开启你的职业生涯

通过完成课程获得认证

开始学习
广告