<Windows Azure Platform 系列文章目录> 绝大部分的商业分布式数据库,要求开发人员选择两个极端的数据库一致性:强一致性(Strong Consistency)和最终一致性(Eventual Consistency) 在笔者之前的文章中,我们介绍了Azure CosmosDB的五种一致性级别: - Strong (强一致性) - Bounded Staleness - Session (会话一致性) - Consistent prefix (一致性前缀) - 最终一致性 (…
<Windows Azure Platform 系列文章目录> 为了保证分布式数据库的高可用性和低延迟性,我们需要在可用性.延迟和吞吐量之间进行权衡. 绝大部分的商业分布式数据库,要求开发人员选择两个极端的数据库一致性:强一致性(Strong Consistency)和最终一致性(Eventual Consistency) 强一致性(Strong Consistency)是数据库编程的黄金标准.但是却需要更高的延迟,且在故障期间可用性较低. 另一方面,最终一致性(Eventual Consis…
<Windows Azure Platform 系列文章目录> 我个人感觉,这个概念和分布式系统中的CAP原则是类似的: CAP原则指的是在一个分布式系统中,Consistency(一致性). Availability(可用性).Partition tolerance(分区容错性),三者不可得兼 Azure CosmosDB有五种一致性级别,从数据一致性角度来说,我们按照最强的一致性,到最低的一致性,排序如下: 1.Strong (强一致性) 2.Bounded Staleness 3.Ses…
<Windows Azure Platform 系列文章目录> 本次将介绍Cosmos DB的性能指标RU (Request Unit). 总的来说,我们设置的Azure CosmosDB RU数值越高,则表示该CosmosDB的读写的性能越好.但是每个小时的单价越贵. Azure CosmosDB的价格=设置的RU+存储的容量,按照每小时进行收费的. Azure Cosmos DB支持多种API,比如SQL, MongoDB, Cassandra, Gremlin和Table.每种API 具…
<Windows Azure Platform 系列文章目录> Azure Cosmos DB 透明地复制与您的Cosmos帐户关联的所有Azure区域中的数据. Cosmos DB 对数据采用多层冗余,如下图所示: 1.CosmosDB容器中的数据已经水平分区 2.在每个区域中,每个分区受副本集的保护,该副本集中的大多数副本将复制并以持久方式提交所有写入内容. 副本分布在最多 10 到 20 个容错域中. 3.将复制所有区域中的每个分区. 每个区域包含某个 Cosmos 容器的所有数据分区,…
<Windows Azure Platform 系列文章目录> Azure Cosmos DB使用分区键(Partition Key),来对数据进行水平缩放(Horizon Scale),缩放后的数据子集被称为逻辑分区(Logical partitions).在同一个逻辑分区的数据都有相同的分区键(Partition Key). 举个例子,假设我们对上海市所有的人口数据都保存到CosmosDB中,选择不同的分区键Partition Key,则会产生不同的逻辑分区结果. 1.假设我们按照户籍区县…
<Windows Azure Platform 系列文章目录> 当我们为CosmosDB配置多个Azure Region写入,就需要考虑冲突类型和解决策略. 对于配置了多个写入区域的 Azure Cosmos DB 帐户,当写入者同时更新多个区域中的相同项时,可能会发生更新冲突. 更新冲突划分为以下三种类型: 插入冲突: 当应用程序同时从两个或更多个区域插入具有相同唯一索引的两个或更多个项时,可能会发生这些冲突. 例如,可能会因为 ID 属性而发生此冲突. 所有写入最初可能会在其各自的本地区域…
<Windows Azure Platform 系列文章目录> Azure CosmosDB是一个全球分布式数据库服务(Global Distributed Database),提供低延迟.可扩展的吞吐量,实现数据库的一致性和高可用. 简单来说,如果你的业务系统需要支持全世界访问且需要保证低延迟,同时保证数据库实时在线,和无限的横向扩展能力,这时候就需要Azure CosmosDB数据库服务 你可以将CosmosDB设置为全球分布.为了保证访问的低延迟,我们可以把CosmosDB所在的区域,离…
<Windows Azure Platform 系列文章目录> 今天研究了一下如何使用Postman访问Azure CosmosDB. CosmosDB API接口,可以参考:https://docs.microsoft.com/en-us/rest/api/cosmos-db/get-a-document 1.首先,我们登录https://portal.azure.cn,获得url和秘钥 2.安装Postman,导入下面两个文件: (1)环境变量 https://github.com/lei…
我们遇到了什么? 我们有这么一个业务场景,就是某供应商会去爬取某些数据,爬到后会发到一个FTP上,然后我们定时去获取这些数据 这个数据有大有小,小的30多M数据量百万级,大的数据量能到数百M上千万数据 然后当这些数据到达的时候,我们需要在有限的时间内把这些数据写入到我们自己的数据库里. 而写入的过程包括先进行一轮数据清洗,按照指定的规则映射到我们自己的数据后在写进去并不是简单无脑的数据来了就batch insert那么简单 原来的实现方案 传统的Sql Server硬抗,DBA叫苦连天,经常投诉…