Azure Cosmos DB(Azure 宇宙数据库)--地球已无法阻止微软玩数据库了

Azure Cosmos DB(Azure 宇宙数据库)--地球已无法阻止微软玩数据库了

2017-08-02   Max Shen,   Max讲IT

Azure Cosmos DB,神奇的数据库,我觉得其实都不是数据库了,是一种梦想。当第一次看到这个名字的时候,就惊呆了,宇宙数据库,这个名字也是够霸气。

Azure Cosmos DB 是由 Microsoft 提供的全球分布式多模型数据库。 只需单击一个按钮,即可通过 Azure Cosmos DB 跨任意数量的 Azure 地理区域弹性且独立地缩放吞吐量和存储。 它通过综合服务级别协议 (SLA) 提供吞吐量、延迟、可用性和一致性保证,这是其他数据库服务无法提供的。

Azure Cosmos DB 提供关系数据库和非关系数据库的最佳功能

下表比较了关系DB,非关系DB和Cosmos DB的关系

功能 关系 DB 非关系 (NoSQL) DB Azure Cosmos DB
全球分布 统包式解决方案,目前在中国有 2 个区域,多宿主,全球超过30个区域
横向缩放 独立缩放存储和吞吐量
延迟保证 在 99% 的情况下,读取操作的延迟 < 10 毫秒,写入操作的延迟 < 15 毫秒
高可用性 始终可用,PACELC 权衡,自动和手动故障转移
数据模型 + API关系 关系+SQL 多模型+OSS API 多模型 + SQL + OSS API(即将推出更多)
SLA 有关延迟、吞吐量、一致性和可用性的综合 SLA

*PACELC 解释:https://en.wikipedia.org/wiki/PACELC_theorem#Database_PACELC_ratings

*OSS:对象存储(Object Storage Service,简称OSS

关键功能

作为一种全球分布式数据库服务,Azure Cosmos DB 提供以下功能,帮助构建可缩放的、具有高响应性的全球分布式应用程序:

  • 统包式全球分布

    • 应用程序在任何地方都可以即时提供给用户使用。 现在,数据也可以这样。

    • 不必担心硬件以及添加节点、VM 或内核等问题。 只需点击一下,即可获得数据。

  • 多个数据模型和用于访问及查询数据的常用 API

    • 支持多个数据模型,包括键值、文档和列式数据模型。

      扫描二维码关注公众号,回复: 935126 查看本文章
    • 用于 Node.js、Java、.NET、.NET Core、Python 和 MongoDB 的可扩展 API。

    • 用于查询的 SQL。

  • 在全球范围内按需求弹性缩放吞吐量和存储

    • 以秒和分钟为时间粒度轻松缩放吞吐量,并可以随时对其进行更改。

    • 透明且自动地缩放存储以满足现在和将来对大小的要求。

  • 构建具有高响应性的任务关键型应用程序

    • 在全球任意位置均可访问你的数据,99% 的情况下延迟仅为几毫秒。

  • 确保“始终可用”可用性

    • 在单个区域内可用性为 99.99%。

    • 部署到任意数量的 Azure 区域可提高可用性。

    • 模拟一个或多个区域的故障而保证不丢失任何数据。

  • 编写全球分布式应用程序的正确方式

    • 五个一致性模型提供类似于 SQL 的非常一致性到类似于 NoSQL 的最终一致性,以及介于两者之间的一致性。

  • 退款保证

    • 要么数据快速到达,要么退款。

    • 有关可用性、延迟、吞吐量和一致性的服务级别协议。

  • 无数据库架构/索引管理

    • 无需担心将数据库架构和索引与应用程序架构保持同步的问题。 我们免架构。

  • 拥有成本低廉

    • 比非托管解决方案的成本效益高五到十倍。

    • 比 DynamoDB 便宜三倍。

创建Comos DB

点击Azure CosomosDB,出现如下界面,点击ID ,选择API,API目前有三种选择:MongoDB、SQL (DocumentDB) 和表(键/值),这里创建了一个 SQL(DocumentDB)测试。



创建成功后,点击:数据资源管理器



点击New Collection,创建数据集 ,输入数据库ID ,数据集的ID , 容量,吞吐量,这里创建了 每秒400个的吞吐量, 400ru/s的能力。

这里创建了2个数据集,结果如下:



可以看到配置了区域是北京和上海,如果使用国际版意味着可以创建超过30个区域的配置。这就是DBA的梦想啊!!!

也可以进行缩放配置,也就是说可以进行某个区域的性能进行调整。



浏览数据





应用使用数据

.Nets示例,如何使用程序读取

https://docs.azure.cn/zh-cn/cosmos-db/documentdb-dotnet-samples

其他示例:

https://docs.azure.cn/zh-cn/cosmos-db/documentdb-nodejs-samples

https://docs.azure.cn/zh-cn/cosmos-db/documentdb-python-samples

总结

  • Cosmos DB 采用本机方式对数据进行分区,实现高可用性和可伸缩性。 Cosmos DB 在可用性、吞吐量、低延迟和一致性方面提供 99.99% 保证。

  • Cosmos DB 采用由 SSD 提供支持的存储,具有低延迟毫秒级响应时间。

  • Cosmos DB 支持最终、一致前缀、会话和有限过期等一致性级别,从而实现最大的灵活性和很高的性价比。 在一致性级别方面,没有任何数据库服务的灵活性比 Cosmos DB 更高。

  • Cosmos DB 提供灵活的数据友好型定价模式,独立测量存储和吞吐量。

  • Cosmos DB 保留的吞吐量模型使你可以考虑读取/写入数量而不考虑基础硬件的 CPU/内存/IOP。

  • Cosmos DB 的设计允许扩展到每天约数十亿个请求的大规模请求量。

  • Cosmos DB可以全球部署,支持多区域,可区域性进行扩展。从应用角度讲,可以全球性继续部署应用。几乎实现应用的无限扩展。

如何使用,可参考

https://docs.azure.cn/zh-cn/cosmos-db/use-cases



阅读   7
投诉

猜你喜欢

转载自blog.csdn.net/capsicum29/article/details/76595744