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 ...
随机推荐
- oracle 建表默认空间
oralce 建表后会有默认表空间,如果没有指定表空间会把所有信息放到users表空间内.要改默认空间 ,首先当前用户要有权限,然后按照 alter database 表名 tablespace 表空 ...
- Spring 内部注入bean
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...
- Linux 文件恢复
可以恢复,使用系统自还工具debugfs来还原删除的文件 步骤详解 1. 查看一下当前系统版本号,及文件系统格式 [root@localhost ~]# df -T Filesystem Type 1 ...
- android获取Context
如果在Activity方法中,直接使用this. 如果在Activity内部类中,使用Activity.this
- python从零开始 -- 第0篇之Hello World!
为什么选择python以及版本选择 学习资料 学习方法和路径 1. 为什么选择python以及版本选择: Python 好玩,强大,更多关于关于为什么选择Python,在 编程小白的第一本 Pyt ...
- scrapy基本使用
Scrapy笔记 安装scrapy框架 安装scrapy: 通过pip install scrapy 如果是在Windows上面,还需要安装pypiwin32,如果不安装,那么以后运行scrapy项目 ...
- 约瑟夫斯问题-java版数组解法和链表解法
10个人围成一圈,从1到10编号,从1开始数,数到3或3的倍数的位置,则该位置的人出局,求最后剩下哪一个号? 数组解法: 数组存放数组:a[10]存在1到10编号人 数组遍历到尾部又从头遍历:遍历数组 ...
- PAT乙级考前总结(一)
数学相关的题目 1001 害死人不偿命的(3n+1)猜想 (15 分) 直接一步步计数 1005 继续(3n+1)猜想 (25 分) 卡拉兹(Callatz)猜想已经在1001中给出了描述.在这个题目 ...
- listview 点击时间被拦截
记录下自己所犯的错误,在写ListView的点击事件时OnItemClickListener,onItemClick方法没有执行,导致ListView条目点击事件失效,检查发现百度上有很多不同的答案, ...
- ASP.NET+MVC+EntityFramework快速实现增删改查
本教程已经录制视频,欢迎大家观看我在CSDN学院录制的课程:http://edu.csdn.net/lecturer/944