微软宣布了针对Azure Cosmos DB的多个更新。Azure Cosmos DB微软的分布式、可大规模扩展的多模型数据库服务。发布公告中包含了支持全球规模多主节点的特性、新增Cassandra支持API以及可降低成本的预留容量模型。
\\Cosmos DB提供了一个NoSQL数据库服务,类似于AWS DynamoDB和Google Cloud Datastore。此外,Cosmos DB是Azure的基础服务,这意味着它可以在所有Azure区域中使用,包括政府、主权国家和美国国防部等方面的专有云。根据Azure Cosmos DB创始人和微软技术研究员Dharma Shukla的说法,Cosmos DB是作为云原生数据库服务而创建的,具有三个基本特征。
\\\\\自2010年开始作为云计算数据库进行构想以来,我们利用云的三个基本属性精心设计和开发了Azure Cosmos DB:
\\1. 通过透明的多主复制进行全局分发。
\\2. 通过水平分区实现全球吞吐量和存储的弹性可扩展性。
\\3. 通过高度资源控制的系统栈(从数据库引擎到复制协议)实现细粒度多租户。
\
在微软Ignite大会上发布的新功能进一步增强了Cosmos DB的功能。例如,现在可以在全球范围内支持多主节点,并允许每一个运行服务的区域成为写入数据的主节点。Cosmos DB在根据所有者指定的scheme处理冲突的同时处理数据复制。当插入、更新或删除操作发生冲突时,可以分别使用三种模式来解决,每种模式都有自己的特点。
\\- 最后写入获胜(Last-Writer-Wins),默认模式,使用文档的一个带有数值的属性。具有最高值的文档将被保留,除了删除操作,删除操作总是获胜。\
- 自定义-用户定义过程,用户根据特定签名创建用户定义过程(UDP),允许实现用于处理冲突的自定义逻辑。\
- 自定义-异步,服务将所有冲突写入只读源。随后,应用程序可以使用任何可用的外部数据实现处理这些冲突的逻辑。\
由于允许全局写入多主数据,因此一致性问题变得非常重要。Cosmos DB提供了五个一致性级别,从强一致性(读取数据时始终返回文档的最新版本)一直到最终一致性(提供非常快的读取和写入速度,但可能导致无序数据)。
\\来源: https://docs.microsoft.com/nl-nl/azure/cosmos-db/consistency-levels
\\另一个发布的功能是新增了Cassandra支持API。Cosmos DB提供了几种与底层数据库服务通信的模型,包括SQL、Gremlin和MongoDB,现在也包括Cassandra。正如自由撰稿人Anne Pilon所提到的,这允许将现有的Cassandra应用程序切换到Azure Cosmos DB,只需要做出很少的更改,甚至不需要更改。
\\\\\你可以继续使用现有的应用程序和开源软件工具,而无需修改代码。你还可以在不被厂商锁定的情况下管理Cassandra应用程序。
\
最后,预留容量模型可以降低成本,特别是在预先知道所需计算能力(也称为请求单元)的情况下。Azure Cosmos DB的产品经理和架构师Rimma Nehme表示,通过预付一到三年的费用,成本可能会大幅下降。
\\\\\预留容量使你可以在一年或三年的期限内保留Cosmos DB中的预配置吞吐量,并且与按需付费的方式相比,可节省高达65%的成本。
\
任何人都可以通过免费试用Cosmos DB计划开始使用Cosmos DB。微软为此提供了30天免费试用,允许在三个区域创建全球分布式容器,同时提供产品的所有功能。
\\查看英文原文:Microsoft Announces Several Updates to Azure Cosmos DB Features