Azure Cosmos DB 是 Microsoft 提供的全球分布式多模型数据库服务。Cosmos DB是一种NoSql数据库,但是它兼容多种API。它支持SQL, MongoDB、Cassandra或 Gremlin,你可以挑选自己喜欢的方式进行存储跟访问。

主要优势

统包式全局分发

凭借 Cosmos DB,你可以在全球范围内生成具有高响应性和高可用性的应用程序。无论用户身处何处,Cosmos DB 均可以透明方式复制数据,因此用户可以与离他们最近的数据副本进行交互。凭借 Cosmos DB,还可以随时向 Cosmos 帐户添加或删除任何 Azure 区域,只需单击一个按钮即可。Cosmos DB 将无缝地将数据复制到与 Cosmos 帐户相关联的所有区域,同时,得益于该服务的多导功能,应用程序将继续保持高可用性。有关详细信息,请参阅全局分发一文。

AlwaysOn

凭借与 Azure 基础结构和透明多主数据库复制的深度集成,Cosmos DB 可为读写操作提供 99.999% 的高可用性。Cosmos DB 还提供以编程方式(或通过门户)调用 Cosmos 帐户的区域性故障转移的功能。此功能有助于确保应用程序能够在发生区域性灾难时进行故障转移。

吞吐量和存储的弹性可伸缩性(全球范围内)

Cosmos DB 采用透明的水平分区和多主数据库复制设计,在全球范围内为读写操作提供了前所未有的弹性可伸缩性。通过单个 API 调用即可在全球范围内从数千个请求/秒扩展到数亿个请求/秒,并且只需为所需吞吐量(和存储)付费。此功能有助于处理工作负载中的意外峰值,而无需为意外峰值进行过度预配。有关详细信息,请参阅 Cosmos DB 中的分区、容器和数据库上的预配吞吐量以及全局缩放预配的吞吐量。保证第 99 个百分位为低延迟(全球范围内) 使用 Cosmos DB,可以生成响应迅速、具全球规模的应用程序。凭借其新颖的多主数据库复制协议、免闩锁及优化了写入的数据库引擎,,Cosmos DB 可保证全球任意位置第 99 个百分位的读取(已编入索引)和写入延迟均低于 10 毫秒。此功能可以为高响应能力的应用持续引入数据,并提供快速查询。

精确定义的多个一致性选择

在 Cosmos DB 中构建全球分布式应用程序时,不再需要在一致性、可用性、延迟和吞吐量之间进行极端的权衡。Cosmos DB 的多主数据库复制协议经过精心设计,为一个直观的编程模型(其低延迟和高可用性适用于全球分布式应用程序)提供五个明确定义的一致性选择 - “强”、“有限过期”、“会话”、“一致前缀”和“最终” 。

无需架构或索引管理

对于全球分布式应用来说,让数据库架构和索引与应用程序架构保持同步尤其不便。借助 Cosmos DB,则无需处理架构或索引管理。数据库引擎完全与架构无关。由于不需要架构和索引管理,因此迁移架构时也不必担心应用程序停用时间。Cosmos DB 自动为所有数据编制索引,并可快速提供查询服务。

以上内容摘自Azure Cosmos文档

创建Cosmos DB资源

在portal控制面板找到Cosmos点击创建。

跟别的资源一样填写一个账户名,选择一个离自己近的位置。API选择MongoDB API。Apply Free Tier Discount选择Apply。这样就能开启免费额度了。

Cosmos DB的免费额度为:5G存储,400请求单位/秒。

复制Mongodb连接字符串

左侧菜单选择“连接字符串”,复制主连接字符串内容,下面会用到。

使用Mongodb API操作数据库

因为Cosmos支持mongodb协议,所以我们操作Cosmos的时候直接把Cosmos当做mongodb来使用就可以。下面代码演示了如何使用nodejs的mongodb驱动来操作Cosmos DB。

var MongoClient = require('mongodb').MongoClient;
var assert = require('assert');
var ObjectId = require('mongodb').ObjectID;
var endpoint = 'mongodb://';
var collectionName = "students";
//新增一个json文档
var insert = function(db, callback) {db.collection(collectionName).insertOne( {"id": "S001","lastName": "zhou","birthday": "2019-09-09","sex": "m","classId": 0}, function(err, result) {assert.equal(err, null);console.log("Inserted a document into the students collection.");callback();});};//把collection里的数据都查出来var find = function(db, callback) {var cursor =db.collection(collectionName).find( );cursor.each(function(err, doc) {assert.equal(err, null);if (doc != null) {console.dir(doc);} else {callback();}});};//修改S001的lastNamevar update = function(db, callback) {var myquery = { "id": "S001" };var newvalues = { $set: {lastName: "li"} };db.collection(collectionName).updateOne(myquery,newvalues,function(err, results) {console.log(results);callback();});};//移除lastName为li的内容var remove = function(db, callback) {db.collection(collectionName).deleteMany({ "lastName": "li" },function(err, results) {console.log(results);callback();});};MongoClient.connect(endpoint, function(err, client) {assert.equal(null, err);var db = client.db('school');insert(db, function() {console.log('insert success .');find(db, function() {console.log('find success .');update(db, function() {console.log('update success .');remove(db, function(){console.log('remove success .');})});})});});

总结

Azure Cosmos DB是微软基于Azure开发的一款NoSql数据库,它支持多种数据库API。比如按SQL方式查询,按MongoDB方式读写等。如果你有海量文档数据需要存储及查询,你可以把它存储在Azure Cosmos DB上,由Azure来为你提供低延时、高吞吐量以及高达99.999%的SLA服务,而你只需要挑选自己喜欢的方式来进行它完成自己的业务。

关注公众号玩转技术

Azure Cosmos Db 介绍及演示相关推荐

  1. Blazor 服务器上带有 EF Core 的 Azure Cosmos DB

    目录 快速入门 介绍行星文档 Azure Cosmos DB设置 实体框架核心 数据服务 加载文档 查询文档 创建文档 更新文档 删除文档 搜索元数据(标签或作者) 处理文件审核 Blazor Jav ...

  2. azure db 设置时区_将数据迁移到Azure Cosmos DB

    azure db 设置时区 In the previous article, Start your journey with Azure Cosmos DB, we provided you with ...

  3. azure db 设置时区_使用Azure Cosmos DB开始您的旅程

    azure db 设置时区 In this article, we will discuss why we need to use Azure Cosmos DB and how to configu ...

  4. sql azure 语法_如何将SQL数据迁移到Azure Cosmos DB

    sql azure 语法 In this article, I have explained the step by step process of migrating data from SQL S ...

  5. azure db 设置时区_关于Azure Cosmos DB(以前称为DocumentDB)的8件事

    azure db 设置时区 介绍 (Introduction) Azure Cosmos DB is a low-latency, high throughput, globally distribu ...

  6. azure db 设置时区_在Azure Cosmos DB中应用字段运算符和对象

    azure db 设置时区 Since we will sometimes require removing documents in Azure Cosmos DB, we'll want to b ...

  7. azure云数据库_在Azure Cosmos DB中使用PowerShell创建和删除数据库

    azure云数据库 Our testing or development may call for dynamic creation on the database level for Azure C ...

  8. 微软宣布针对Azure Cosmos DB的多个更新

    微软宣布了针对Azure Cosmos DB的多个更新.Azure Cosmos DB微软的分布式.可大规模扩展的多模型数据库服务.发布公告中包含了支持全球规模多主节点的特性.新增Cassandra支 ...

  9. 微软发布Azure Cosmos DB产品以及新的物联网解决方案

    微软于当地时间2018年12月4日召开了一年一度的以云计算和数据为中心的开发者大会,在会上微软正式发布Azure机器学习服务(Azure Machine Learning service),这是一个云 ...

最新文章

  1. Html篇-fieldset标签演示
  2. TensorFlow 2.0不好用?会了是“真香”!
  3. Torch——[TypeError: can‘t pickle Environment objects]解决方案
  4. 简单易用高性能!一文了解开源迁移学习框架EasyTransfer
  5. Unity GeometryShader(从一个线框渲染的例子开始)
  6. 阿里人工智能实验室招聘计算机视觉算法专家-交互图像方向
  7. 项目升级-加密的参数传递到后台然后解密(相当于重新封装下request)
  8. PKU 1087 A Plug for UNIX
  9. 第5章分布式系统模式 Broker(代理程序)
  10. OrCAD图文教程:把一个元件分多个部分画出来
  11. 2021 年下半年软考-初级程序员考后感想
  12. java 时间轮_惊艳的时间轮定时器
  13. tplink迷你路由器中继模式_TP-link迷你无线路由器Repeater模式(中继模式)设置教程(转载).docx...
  14. 云计算之paas架构解析
  15. 【无标题】公众号引流进阶教程(公众号对接电影,影视资源)
  16. XAMPP升级PHP版本的步骤
  17. Linux Ubuntu16挂载新硬盘并格式化硬盘方法教程笔记
  18. 舞伴问题(数据结构队列,c语言版)
  19. scratch编程植物大战僵尸教程(一)
  20. 全新的福昕JavaScript PDF阅读器

热门文章

  1. restfull知识点
  2. 20142335郝昊第三周学习总结
  3. centos6.4下安装jdk
  4. 六、 跨多个WebService管理Session
  5. [轉]数据挖掘工具的选择
  6. Delphi应用程序在命令行下带参数执行返回命令行提示的问题
  7. Mac OS使用技巧之九:Mission Control和DIY自己的Dashboard
  8. 目标跟踪 facebook_如何关闭Facebook Messenger的位置跟踪(如果已启用)
  9. 亚马逊标题自动抓取_如何为您的家人提供自动Amazon礼品卡津贴
  10. cmd暂停快捷键_是否有键盘快捷键可以暂停正在运行的CMD窗口的输出?