本文将探讨Azure Cosmos DB的概况,我们还将讨论如何创建Cosmos DB,以及它的用途,为什么我们需要选择Cosmos DB。
随着数字时代的发展,对数据库存储及其可访问性的需求已经随着时间的推移而改变。传统的数据库系统不足以解决新时代的高级应用所面临的要求和挑战。这些在线应用可以从世界各地访问,所以需要在用户所在地附近托管数据库,以减少延迟,使其反应更迅速。在线应用程序对互联网开放,因此可能会有大量的流量漂浮在这些应用程序上,这将增加数据量和数据的速度。RDBMS系统不适合解决这种应用程序的要求,所以微软开发了另一种数据库服务Azure Cosmos DB,它属于Azure数据服务的NoSQL伞。
这是一个完全管理的、高度安全的、全球分布的NoSQL数据库,是为新时代的高级应用开发而设计的。由于这是完全管理的,所以你不需要管理员来管理它的维护、补丁、升级、容量和空间管理,在工作负载增加的情况下自动扩展等。
它提供了更快的响应时间和保证规模的速度。这个数据库服务还提供了方便的多区域写入和跨区域的数据分配。它还提供了99.999%可用性的保证SLA,以运行并使你的关键任务系统高度可用。它的自动扩展功能可以在工作负荷增加或不可预测的工作负荷的情况下即时扩展系统资源和容量。
吞吐量是我们用来衡量cosmos DB运行读、写、更新和删除操作的工作负载性能的一个参数。cosmos DB的吞吐量是使用术语Request Unit per sec(RU/sec)来衡量的。我们可以以RU\sec的形式为一个特定的容器或一个cosmos数据库提供吞吐量。如果我们为一个cosmos数据库提供吞吐量(RU\s),那么分配的吞吐量将在该数据库内创建的所有容器之间共享。
在配置吞吐量之前,你必须了解你的工作负载,并且相应地,你应该配置它以适应你的工作负载。你应该了解项目的大小,属性的数量,索引等,以计算出足够的请求单位。
Cosmos DB适用于现代数字应用,如基于视频流的在线门户、游戏、物联网应用、在线零售网站等,原因如下。
- 这种面向互联网的应用所产生的巨大数据量
- 巨大的读写操作
- 以个位数毫秒为单位的快速响应时间
- 在工作负荷突然激增的情况下,自动扩展以满足数据量和速度的需求
- 拓展新的位置以增加业务和工作负荷,在数据库层保持微小的变化
Azure Cosmos DB APIs
Azure CosmosDB支持各种数据库API,可根据你的工作负载性质和要求进行选择。下面是这些API的列表。
- 核心(SQL)API
- Gremlin API
- 表API
- MongoDB的API
- Cassandra API
每个API都是为支持宽列、文档、键值或基于图形的数据存储的特定要求而创建的。你必须根据你的要求选择正确的API,无论你是需要基于文档的数据存储、键值数据存储或任何其他数据存储,你想利用开源的开发者或客户驱动,或者你想受益于cosmos DB的高级功能,如自动缩放、全球分布式数据、性能等等。推荐给cosmos DB的API是核心(SQL)API。如果你现有的应用程序是基于MongoDB或上面给出的任何其他类似的API,那么你必须选择其各自的API。
资源模型
在这里我们将讨论Cosmos DB的资源模型,以及它是如何组织和结构化来安排你的数据的。第一层也是最顶层是Azure cosmos DB账户,它也有助于组织cosmos数据库的计费细节。它的工作方式就像一个容器,所有在Cosmos DB账户中创建的cosmos数据库。如果你想使用你的数据的全球分布,它也是至关重要的,因为你可以在Cosmos DB账户层面上添加或删除区域。我们可以在一个订阅中创建多个Cosmos DB账户,并且你可以在一个Cosmos DB账户中存储无限量的数据。
Cosmos DB账户下的下一个元素是Cosmos数据库。我们可以在一个cosmos DB账户中创建多个数据库。每个数据库可以有多个容器来存储实际数据,其形式包括文档、存储过程、触发器或键值等项目。你可以通过观察下图来理解它。
在一个cosmos DB账户中每个元素的名称是不同的,这取决于你在创建cosmos DB账户时选择的API类型。例如,数据库用于SQL API术语,而它在Cassandra API中的对应实体被称为Keyspace。我在下面的表格中给出了这种在不同API中具有不同名称的元素的列表。
Azure CosmosDB元素名称 | SQL API | 卡桑德拉API | MongoDB的Azure CosmosDB API | Gremlin API | 表API |
阿兹海默斯数据库 | 数据库 | 密钥空间 | 数据库 | 数据库 | 宇宙是一个非常复杂的系统,它是一个非常复杂的系统。 |
Azure cosmos容器 | 容器 | 表 | 采集 | 图表 | 表 |
蔚蓝的波斯菊 项目 | 项目 | 行 | 文档 | 节点或边缘 | 项目 |
创建Azure Cosmos DB账户
登录到Azure门户网站。在搜索栏中输入Azure Cosmos DB,一旦该选项出现在搜索下拉菜单中,就点击它。点击cosmos DB选项后,将显示以下页面。你可以从这个页面上管理所有的cosmos DB账户,它也将显示在这个页面上。由于我们还没有配置cosmos DB,它在下面的图片中没有显示任何细节。让我们继续前进,通过以下步骤首先创建一个cosmos DB账户。
点击Azure Cosmos DB标题下的 "+创建"选项,或者点击下图中央的 "创建Azure Cosmos DB账户"标签。
下一个屏幕将根据我们的工作量来选择API。我从下图中选择了推荐的API核心(SQL),并点击了这个选项的创建按钮。
下面将出现名为 "创建Azure Cosmos DB账户-核心(SQL)"的屏幕,以填写所有需要的细节来创建一个Cosmos DB账户。如果你选择了与Core SQL不同的API,那么你将得到一个类似于该API的表格来创建一个Cosmos DB账户。
在这里,我们需要选择我们想要提供这个数据库的订阅名称,我们将创建这个数据库的资源组,这个cosmos DB账户的名称,然后我们将选择一个我们想要提供这个服务的位置。我们还可以选择容量模式,通过它我们将以请求单位的形式提供足够的吞吐量。你也可以将cosmos DB账户作为无服务器配置,你可以在下面屏幕的容量模式下看到这个选项。在创建这个账户后,你还会得到前1000个RU\s和25GB的免费存储空间。
下一个选项卡是全球分布,用于配置全球分布功能。在这里,我们需要启用地理冗余和多区域写入。多区域写入功能允许我们利用全球范围内配置的吞吐量。我们可以在创建这个账户后添加或删除额外的区域。如果你想启用它,请选择两个单选按钮。
下一个标签是网络,我们将在这个标签下配置连接性。你可以根据你的要求选择你想要的设置。
接下来,我们将通过访问备份策略标签来配置Azure Cosmos DB账户的备份策略,如下图所示。你可以配置备份的运行频率以及备份保留期。你还可以为你的备份存储选择所需的冗余选项。
接下来,我们将配置加密,以确保我们的数据在cosmos DB账户中受到保护,方法是访问下图中的加密标签。选择你想要管理加密密钥的方式来保护你的数据。
下一个标签是管理标签。根据您的要求在这一部分应用标签,一旦您在上面的图片中显示的所有标签上输入了所有细节,然后点击审查+创建按钮开始验证过程。在下面的图片中,你可以看到验证是成功的。现在点击 "创建"按钮来继续。
一旦你点击上图中的创建按钮,Azure cosmos DB账户的部署将开始处理。一旦部署完成,你会得到下面的屏幕。单击 "转到资源"选项卡,跳到cosmos DB账户。
现在,你可以点击上述屏幕上的转到资源 ,跳到Azure Cosmos DB账户概述页面,如下图所示。
总结
我已经解释了Azure Cosmos DB的简要概述,以及按部就班地创建cosmos DB账户的顺序过程。我还解释了它的API和资源模型。接下来,你可以继续创建一个Cosmos DB数据库,然后用容器将你的数据存储在这个数据库中。请继续关注我的下一篇文章,我将在其中讨论使用数据资源管理器创建cosmos DB数据库和容器的分步过程。