如何充分利用Azure Cosmos DB的免费层

Azure的Cosmos DB是其最佳功能之一。 一个多模型分布式数据库,它为您构建具有一系列可映射到您的应用程序工作方式的一致性模型的真正云原生应用程序奠定了基础。 但是上手并不容易,配置或设计不当的应用程序很快就会变得昂贵。

很高兴看到Cosmos DB 现在具有免费层 ,可以帮助您开始在有限的开发环境之外部署应用程序。 新的层并不大:它基于Cosmos DB的最低配置,并提供400 RU / s(每秒的请求单位)和5GB的存储,在一个共享的吞吐量数据库中最多可以有25个容器。 例如,对于一个小型应用程序来说,这足以提供更多的读取次数而不是写入次数,并且不依赖于强一致性模型。

[ 同样在InfoWorld上:您不知道需要的7个Visual Studio Code扩展 ]

您确实需要注意,尽管Cosmos DB是多区域的,但您只能在免费层中运行单个400 RU / s的数据库。 在实践中,将您限制在一个区域内,因为其他区域每个都需要自己的400 RU / s实例,而这些区域将按每小时标准费率收费

免费Cosmos DB入门

您将需要创建一个新帐户以利用免费套餐; 在现有应用程序上,它不能作为计费选项使用。 免费套餐的400 RU / s是可在Cosmos DB数据库中设置的最小数量。 这使您每个月读取大约10亿次,这足以使您的应用程序起步,或者允许您在试点项目中部署和运行内部分布式数据库。 一旦达到免费RU / s配额的边缘,就可以按每小时100 RU / s的容量增加更多的容量。

值得了解什么是Cosmos数据库RU。 RU是一个请求单位 ,计费的RU / s是衡量数据库的预定吞吐量(涵盖其所有操作)的度量。 这包括读取,写入,更新,删除等等。 Microsoft建议1 RU / s等于每秒1KB项目的最终一致性(Cosmos DB上可用的最慢且处理强度最小的一致性级别)。 每秒写入相同的1KB项为5 RU / s。 操作越复杂,消耗的RU / s越多。

了解请求单位的消耗

很难确切说明一个应用程序将消耗多少RU / s 。 但是,您可以考虑可能会影响数据库使用的RU的Cosmos DB约束。 首先,您需要考虑项目的大小。 项目越大,用于读取或写入的RU / s越多。 同样,索引消耗RU / s,如果使用默认的索引模型,则在向数据库中添加更多项时,写入项目所需的资源将会增加。 然后,您可以选择一致性模型,强且陈旧的陈旧性大约需要Cosmos DB其他不那么严格的模型的两倍RU / s才能读取。

由于免费层中可用的RU / s数量有限,因此您可能需要解决这些限制,以将消耗降至最低。 一种选择是关闭数据库的所有索引,但实际上,您可能更喜欢将索引限制为每个存储的JSON文档的特定属性。 同时,您需要考虑应用程序的运行方式,以及使用会话一致性之类的方法来改善用户对性能的感知,同时减少所用的RU / s是否更好。

由于RU / s是基于活动的,因此您可以使用查询设计将消耗降至最低。 这可能需要限制每个查询的结果数,控制您存储的数据量,或使用尽可能少的用户定义函数,存储过程和触发器。

[ 同样在InfoWorld上:如何为您的应用程序选择合适的数据库 ]

设置数据库非常容易。 在Azure门户中创建一个新的Cosmos DB帐户,并从Azure数据资源管理器中创建一个新的数据库。 首先给它提供一个ID,然后提供其吞吐量 。 将此设置为400 RU / s。 更高的金额将显示成本估算,但是当您设置免费实例时,无需尝试。 您不仅限于门户网站; 您可以使用Azure CLI,PowerShell,甚至可以从Cosmos DB SDK内部以编程方式使用。

在Cosmos DB的免费层上构建应用

在Cosmos DB中,数据库是一组容器,用于处理Azure区域中的分区以及在使用数据库的区域中进行分布。每个数据库都可以配置为特定模型:NoSQL(MongoDB和Cassandra),SQL,Gremlin和表格。 大多数应用程序都可以将其用作存储JSON数据的NoSQL文档数据库。

建立数据库并选择模型后,您可以将Cosmos DB容器视为数据库的扩展方式。 在免费套餐之外,您可以基于容器以RU / s设置吞吐量。 在免费层中,您要在数据库中的所有容器之间共享该吞吐量,因此您无法预测任何特定容器的吞吐量。 付费实例具有关联的SLA,这就是为什么它们允许您基于每个容器设置吞吐量的原因。

以这种方式跨容器工作等同于在NoSQL数据库中使用群集,并且对于这种类型的工作负载非常有效。 通过在所有容器上使用相同的分区键,Cosmos DB将自动在它们之间共享吞吐量。 您可以将这种方法与免费层的25个容器一起使用,以减少应用程序用户的瓶颈。 如果将其视为分片的群集NoSQL数据库,则应该发现将它包含在应用程序中相对容易,使用它来承载指向其他内容而不是内容本身的指针。

[ 通过InfoWorld的Cloud Computing Report新闻通讯了解云计算的最新发展 ]

使用免费服务产品可能会很棘手,但是如果您采取明智的预防措施,那么应该有可能将Cosmos DB的新层用作应用程序后端的一部分。 您可能必须牺牲一些服务的可伸缩性功能,但是如果您在设计时做出谨慎的决定,那应该不会对应用程序产生重大影响。

考虑如何利用Cosmos DB之类的分布式数据库,而不是简单地将现有工作负载移植到该数据库上,这很重要-它们不太可能很好地匹配。 而是将其视为构建真正的云原生分布式应用程序的机会。 在这种情况下,400 RU / s足以引导新应用程序并使其与合理数量的用户一起使用。

From: https://www.infoworld.com/article/3531711/using-azure-cosmos-dbs-free-tier.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值