Azure CosmosDB (10) Azure Cosmos DB体系结构
《Windows Azure Platform 系列文章目录》
Azure Cosmos DB的体系结构分为以下几个部分:

1.Database Accounts
Database Account就是1个可以访问的namespace命名空间
2.Database
Database就是CosmosDB Container的集合
3.Database Container
Azure Cosmos Container是可缩放性预配的吞吐量和存储单元
下表描述了Azure Cosmos Database和特定API Entiry的对应关系
| Azure Cosmos Entity | SQL API | Cassandra API | Azure Cosmos DB's API for MongoDB | Gremlin API | Table API |
| Azure Cosmos database | database | Keyspace | databsae | database | NA |
Azure Cosmos Container
Azure Cosmos Container是可缩放性预配的吞吐量和存储单元。Container通过Partition Key(分区键)进行水平分区,并且支持在多个Azure数据中心进行复制。
当我们创建Azure Cosmos Container的时候,支持以下两种吞吐量模式:
1.独享模式
1个Container的吞吐量是独享的,不与其他Container共享Request Unit (RU)的吞吐量
2.共享模式
在同一个Database下的多个Azure container,互相共享Request Unit (RU)的吞吐量
无论采用独享模式,或者共享模式创建Container,Azure Cosmos Container都可以支持横向扩展
Azure Cosmos Container是与架构无关的,Container里的数据可以是任意架构。
举个例子,一个描述人的数据,与一个描述汽车的数据,都可以保存在同一个Container里
Azure Cosmos Container与特定API Entiry的对应关系
| Azure Cosmos Entity | SQL API | Cassandra API | Azure Cosmos DB's API for MongoDB | Gremlin API | Table API |
| Azure Cosmos Container | Collection | Table | Collection | Graph | Table |
也就是说,Azure Cosmos Container 在 Azure Cosmos DB API for MongoDB里,指的是Collection,也就是传统关系型数据库的Table数据表
Azure Cosmos Container中的属性:
Azure Cosmos 容器包含一组系统自定义属性。 根据所选的 API,其中一些属性可能不会直接公开。 下表描述了系统定义的属性的列表:
| Defined property | System generated or user-configurable | Purpose | SQL API | Cassandra API | Azure Cosmos DB's API for MongoDB | Gremlin API | Table API |
|---|---|---|---|---|---|---|---|
| _rid | System generated | Unique identifier of container | Yes | No | No | No | No |
| _etag | System generated | Entity tag used for optimistic concurrency control | Yes | No | No | No | No |
| _ts | System generated | Last updated timestamp of the container | Yes | No | No | No | No |
| _self | System generated | Addressable URI of the container | Yes | No | No | No | No |
| id | User configurable | User-defined unique name of the container | Yes | Yes | Yes | Yes | Yes |
| indexingPolicy | User configurable | Provides the ability to change the index path, index type and index mode. | Yes | No | No | No | Yes |
| TimeToLive | User configurable | Provides the ability to delete items automatically from a container after a certain time period. For more details, see the Time To Livearticle. | Yes | No | No | No | Yes |
| changeFeedPolicy | User configurable | Used to read changes made to items in a container. For more details, see the Change Feed article. | Yes | No | No | No | Yes |
| uniqueKeyPolicy | User configurable | Used to ensure the uniqueness of one or more values within a logical partition. For more information, see the Unique Key constraintsarticle. | Yes | No | No | No | Yes |
Azure Cosmos数据
根据选择不同的API,Azure Cosmos 数据可以表示一个文件,数据表中的一行,或者Graph API的一个节点。
下表表示Azure Cosmos数据与API实体之间的对应关系
| Azure Cosmos Entity | SQL API | Cassandra API | Azure Cosmos DB's API for MongoDB | Gremlin API | Table API |
| Azure Cosmos Item | Document | Row | Document | Node or Edge | Item |
Azure Cosmos数据的属性
Azure Cosmos数据有系统自定义的属性。根据所选的 API,其中一些属性可能不会直接公开。
| System defined property | System generated or user-configurable | Purpose | SQL API | Cassandra API | Azure Cosmos DB's API for MongoDB | Gremlin API | Table API |
|---|---|---|---|---|---|---|---|
| _id | System generated | Unique identifier of item | Yes | No | No | No | No |
| _etag | System generated | Entity tag used for optimistic concurrency control | Yes | No | No | No | No |
| _ts | System generated | The timestamp of the last update of the item | Yes | No | No | No | No |
| _self | System generated | Addressable URI of the item | Yes | No | No | No | No |
| id | Either | User-defined unique name within a logical partition. If the user doesn’t specify the id, the system will automatically generate one. | Yes | Yes | Yes | Yes | Yes |
| Arbitrary user-defined properties | User-defined | User-defined properties represented in API-native representation (JSON, BSON, CQL, etc.) | Yes | Yes | Yes | Yes | Yes |
Azure CosmosDB (10) Azure Cosmos DB体系结构的更多相关文章
- Azure CosmosDB (12) 创建Cosmos DB并执行查询语句
<Windows Azure Platform 系列文章目录> The SQL API supports the following aggregate functions. SUM an ...
- Azure Cosmos DB 使用费用参考
之前在学习Cosmos DB 中SQL API(DocumentDB) 的时候,也就是之前做的一些笔记,看到有使用费用的一些介绍,就有兴趣的去了解了下,做了一下简单的总结. 想了解更多或是购买使用的还 ...
- Azure Cosmos DB (二) SQL API 操作
一,引言 还记得国庆期间,我们学习了一下关于Azure Cosmos DB 的一些基础知识以及Azure Cosmos DB 的几种支持数据库类型.今天就开始分享一些实战操作,如何通过Azure Po ...
- Azure Cosmos DB (三) EF Core 操作CURD
一,引言 接着上一篇使用 EF Core 操作 Azure CosmosDB 生成种子数据,今天我们完成通过 EF Core 实现CRUD一系列功能.EF Core 3.0 提供了CosmosDB 数 ...
- Azure Cosmos DB (五) .Net Core 控制台应用
一,引言 之前在讲Azure CosmosDB Core(SQL)核心的时候,使用了EF Core 的方式,引用了 "Microsoft.EntityFrameworkCore.Cosmos ...
- Azure Cosmos DB介绍及演示
Azure Cosmos DB 是 Microsoft 提供的全球分布式多模型数据库服务.Cosmos DB是一种NoSql数据库,但是它兼容多种API.它支持SQL, MongoDB.Cassand ...
- Azure Cosmos DB (四) 使用EF的SQL API 异地冗余
一,引言 上一篇文章中,我们介绍到使用了EF Core 与Cosmos DB SQL API 进行结合开发.同时,大家在开发过程中一定要记得EF Core 不支持Cosmos DB 的迁移.今天我们启 ...
- NCF 的Azure Cosmos DB 演示案例
简介 NCF想必看过我之前发的NCF的文章的同学们都已经很熟悉了 今天我们要来聊一聊的是NCF遇到Azure Cosmos DB后会碰撞出什么样的火花,让我们一起往下看 我们先来说说什么是Azure ...
- Azure Cosmos DB (一) 入门介绍
一,引言 今天是国庆.中秋双节房价的第三天,今天抽时间分享一篇关于使用Azure 提供的一项NoSql 服务-----Azure Cosmos DB.就有人问了,我听说过 MongoDB.Redis ...
随机推荐
- 最近学习的 Node.js 之 http
利用 http 模块开始写简单的web服务. 模块: const http=require('http'); const fs=require('fs'); const path=require('p ...
- 2017年5月11日17:43:06 rabbitmq 消费者队列
从昨天开始发现个问题,一个接口在本地调用时大部分正常,一旦在生成者打一个断点调试,并且在promotion也打断点的时候会出现没有返回channel的异常,然后消费者就再也消费不了了 16:57:45 ...
- key单片机按键抖动
//write by:cyt //Time:2017-2-10 //Porject Name:key shake_destory #include<reg51.h> #define GPI ...
- MongoDB的安装和使用
Step1:下载和安装 下载地址:http://dl.mongodb.org/dl/win32/x86_64 安装:一直按照默认指示去安装或者选择自己喜欢的路径安装. Step2:配置环境变量 安装完 ...
- linux 常见技巧
1.# :表示权限用户(如:root) $:表示普通用户 开机提示:login:输入用户名 password:输入口令 用户是系统注册用户成功登陆后, 可以进入相应的用户环境. 退出当前shell,输 ...
- 搭建vue的开发环境
随手笔记:win7 64bit 1.安装node,直接从node官网下载,安装即可. 2.命令行输入 node -v 查看是否安装成功,显示node的版本号即安装成功.安装成功后,输入node,进入n ...
- VmwareTools以及搜狗拼音的安装
已经那么多年工作下来了,结果装linux还是那么 的费劲! 装的是纯净版Ubuntu16.04版本,17.04怕不稳定就没装, 装了发现VmwareTools是暗的,以前也遇到过这个问题,但是真的忘记 ...
- git同步遇到报错
git同步遇到报错 “fatal: unable to access ‘https://github.com/ruanwenwu/newp.git/‘: Peer reports incompatib ...
- python基础学习1(linux命令)
读研时转人工智能,机器学习方向,必然要用到python,于是开始自学. 1.环境: 使用linux环境下python编译,熟悉各种基本操作. 2.书籍: -- 笨方法学python -- a b ...
- 西门子SCL读写DB数据
数据块间接寻址方式,仅供参考. STATUS_1:= DB11.DW[COUNTER]; //字节间接寻址STATUS_2:= DB12.DX[WNO, BITNO]; //位间接寻址,用户改变WNO ...