`
XTU_xiaoxin
  • 浏览: 240731 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Amazon DynamoDB应用—为table指定Provisioned Throughput

 
阅读更多

本来想写一篇笔记,用来对整个Amazon DynamoDB作一个大概的描述的,后面在网上找了找,基本上都有了,再写的话对大家的帮助不大,所以就不记了,如果大家需要了解的话,我给大家推荐篇blog吧,当然,最详细的资料是在官方网站,但只有english。 http://www.programmer.com.cn/11081/

下面我主要说下DynamoDB中的Provisioned Throughput,这是一个非常重要的功能设置,使用前,你得清楚的了解它是什么,具有哪些特点。

当你在Amazon DynamoDB中申请创建一个table时,Amazon会针对该table提供一个Provisioned Throughput 输入框,让你指定该table的Throughput值,下面,我将详细介绍下有关Provisioned Throughput的一些特点。
什么是Provisioned Throughput?为什么需要Provisioned Throughput?
试想,你所创建的table是放在Amazon云平台上的某一台服务器上的,由于是云平台,而这台服务器不可能给你一个人用,还会提供给其他的用户使用(为了方便描述,我们称A吧),假如你突然想要访问你所创建的table,也就是从服务器上读写数据,而这时,很不巧的是用户A也在访问他所所创建的资源,而且访问量还很大,占用了该服务器几乎所有资源,如磁盘读写带宽什么的。此时,你就无法访问你的table,或者说访问效率很低。
所以,为了解决以上出现的问题,Amazon DynamoDB提供了Provisioned Throughput机制。当你在创建一个table后,Amazon会根据该table上所指定的Provisioned Throughput大小为你保留一定的资源和读写容量来满足你读写表的低延迟性。
怎么计算table的Provisioned Throughput
Provisioned Throughput包含了两个方面的度量设置,它们的单位分别是读容量单位和写容量单位:
读容量单位: 对于table中的一个大小小于1KB的item,每秒钟执行1次强一致性读操作,或者每秒执行2次最终一致性读操作;
写容量单位:对于table中的一个大小小于1KB的item,每秒钟执行1次写操作;
针对上面两个单位概念,我再详细描述下 : 假如你table中的item小于1KB,则每个读容量单位将会提供给你 1 read/秒 的容量,每个写容量单位将会提供给你 1 write/秒 的容量。 例如,你的item 是 512 bytes,你需要从table中每秒读取 100个item,则你需要为该table指定100个读容量单位; 假如你的table中的item大于1KB,你需要重新计算读容量单位数量。例如,如果table中国的item是1.5KB,你想要从table中每秒读取 100个item,此时,你需要为该table指定200 (2(向上调整到整数计算)*100)个读容量单位。
最后有一点,有两点比较重要,得注意:
1. DyanmoDB是一个分布式系统,你保存在DynamoDB table中的数据会分布在多台机器上,table的Provisioned Throughput并不是说你每台机器都有Provisioned Throughput所设的大小,每台机器为该table保留的Provisioned Throughput=Provisioned Throughput/N, N为机器的数量。
2. 就是 你为一个table指定一定数据量的Provisioned Throughput,假如为N,并不能保证你读写表时,它一秒钟就能为你写或读出N个item,它只是针对该表,为你保留能读写N个item的容量以及资源,具体能不能读出N个item,还与你的table的设计的合理性以及访问的数据有关联。假如你读去的数据全部都集中在某一台机器上,那它的实际Provisioned Throughput仅仅是此台机器上为该table保留的Provisioned Throughput。这就是所谓的没有充分利用好 table的Provisioned Throughput,所以在设计DynamoDB的table时,一定得根据业务数据的访问特性,尽量将你要同时访问的数据均匀的分布在多台服务器上。

版权声明:本文为博主原创文章,未经博主允许不得转载。

分享到:
评论

相关推荐

    dynamodb-onetable:使用NodeJS对一个表设计进行DynamoDB访问和管理

    DynamoDB OneTable(OneTable)是应用程序的访问库,应用程序与使用单表设计模式。 OneTable努力使DynamoDB和单表设计模式的处理变得非常容易,同时仍提供对完整DynamoDB API的轻松访问。 OneTable不是 。 相反,...

    Amazon DynamoDB构建NoSQL数据库驱动的应用程序:Amazon DynamoDB:构建NoSQL数据库驱动的应用程序(Coursera)

    Amazon DynamoDB:构建NoSQL数据库驱动的应用程序 Amazon DynamoDB是一个键值和文档数据库,可在任何规模上提供单位毫秒的性能。 它是一个完全托管的,多区域,多活动,持久的数据库,具有针对Internet规模应用程序...

    dynamodb_local_latest.zip

    Amazon DynamoDB 是一个键/值和文档数据库,可以在任何规模的环境中提供个位数的毫秒级性能。它是一个完全托管、多区域多主的持久数据库,具有适用于 Internet 规模的应用程序的内置安全性、备份和恢复和内存缓存。...

    amazon-dynamodb-design-patterns:此存储库包含示例数据模型以演示 Amazon DynamoDB 的设计模式

    在为 Amazon DynamoDB 设计数据模型时,了解用例和要求,然后确定实体及其之间的关系非常重要。 说明关系的一种方法是绘制实体关系图 (ERD)。 还建议预先确定满足要求所需的访问模式,然后一一通过它们以可以处理...

    aws-sessionstore-dynamodb-ruby:使用DynamoDB作为后端处理Ruby Web应用程序的会话

    安装对于Rack应用程序,您可以使用以下方法在Ruby文件中创建Amazon DynamoDB表: require 'aws-sessionstore-dynamodb'Aws::SessionStore::DynamoDB::Table.create_table通过以下方式将会话存储作为Rack中间件运行:...

    go-dynamodb-create-table-example:使用golang在DynamoDB上创建表

    在本文中,我们将深入探讨如何使用Golang(Go语言)与Amazon DynamoDB进行交互,特别是如何创建表。DynamoDB是AWS(亚马逊网络服务)提供的一款高性能、完全托管的NoSQL数据库服务,它以键值对和文档存储的形式提供...

    dynamodb-dg.pdf

    Amazon DynamoDB 是一种完全托管的 NoSQL 数据库服务,提供快速且可预测的性能,同时还能够实现无缝扩展。使用 DynamoDB,您可以免除操作和扩展分布式数据库的管理工作负担,因而无需担心硬件预置、设置和配置、复制...

    dynamodb-data-mapper-js:Amazon DynamoDB的基于架构的数据映射器

    该存储库托管着几个软件包,这些软件包共同构成一个对象,以使用Amazon DynamoDB为JavaScript应用程序提供文档映射器。 入门 提供了一种简单的方法来持久存储应用程序的域对象以及将其域对象与Amazon DynamoDB进行...

    dynamodb-table-partitions:确定DynamoDB表中分区数量的简单工具

    dynamodb:DescribeTable dynamodb:DescribeStream dynamodb:UpdateTable 安全 该工具仅调用AWS DynamoDB和DynamoDB Streams API。 它完全是客户端,不会在其他地方发送任何数据或密钥。 安全 该工具是只读的,...

    copy-dynamodb-table:将Dynamodb表复制到相同或不同区域中的另一个表,这是100%安全的。 速度取决于目标表用户定义的写入预配置吞吐量

    var copy = require ( 'copy-dynamodb-table' ) . copy copy ( { source : { tableName : 'source_table_name' , // required } , destination : { tableName : 'destination_table_name' , // required } , ...

    aws-dynamodb-scala:Amazon DynamoDB的Scala客户端

    而`aws-dynamodb-scala`是为Amazon DynamoDB设计的一个Scala库,它为开发人员提供了简洁、类型安全的API,使得在Scala应用程序中使用DynamoDB变得更加便捷。 这个库的主要特点包括: 1. **类型安全的API**:`aws-...

    Laravel开发-dynamodb

    DynamoDB是Amazon Web Services(AWS)提供的一款无服务器、高性能的NoSQL数据库服务,而laravel-dynamodb是一个第三方Laravel包,它为Laravel应用提供了与DynamoDB集成的便利。 首先,我们需要了解Laravel框架。...

    Go-dynago-Go的DynamoDB客户端

    在现代的云原生应用开发中,Amazon DynamoDB作为一款高性能、完全托管的NoSQL数据库服务,被广泛应用于存储和检索大规模数据。针对Go语言的开发者,亚马逊AWS提供了一个官方的SDK,然而,对于一些特定需求或性能优化...

    export-dynamodb:将Amazon DynamoDb导出为CSV或JSON

    export_dynamodb 出口dynamodb的cli。 pypi上的 主要特征 在单线程或并行线程中扫描表。 输出文件可以是json或csv。 从yaml文件获取表列表。 假设 凭据和区域在〜/ .aws / config文件中配置。 如何使用 $ pip ...

    dynamodb-gsg

    DynamoDB是亚马逊网络服务(Amazon Web Services, AWS)提供的一个完全托管的NoSQL数据库服务, 它提供了快速且灵活的性能,能够存储和检索任何规模的数据。DynamoDB支持文档和键值对数据结构,适合需要高性能、灵活...

    DynamoDB Cookbook

    DynamoDB Cookbook by Tanmay Deshpande, Over 90 hands-on recipes to design Internet scalable web and mobile applications with Amazon DynamoDB

    spring-data-dynamodb-demo:使用Spring-Data-Rest的Amazon DynamoDB Spring-Data存储库演示

    弹簧数据动力学模型使用Spring-Data-Rest的Amazon DynamoDB Spring-Data存储库演示开始按照Amazon示例教程中的描述创建并填充Amazon DynamoDB“论坛”,“线程”和“回复”表: 使用您的DynamoDB终端节点和AWS凭证...

    DynamoDB开发人员指南

    DynamoDB是亚马逊提供的完全托管的NoSQL数据库服务,允许用户无需管理服务器即可存储和检索任意量的数据。DynamoDB支持多种数据类型,包括标量值、文档和集合类型。它能够为数据提供快速的访问速度,并且能够自动...

    激增:适用于Elixir的Amazon DynamoDB

    【标题】:“激增:适用于Elixir的Amazon DynamoDB”是指一个Elixir库,它为开发者提供了方便的接口,用于与Amazon的NoSQL数据库服务DynamoDB进行交互。这个库的目标是让Elixir开发者能够充分利用DynamoDB的强大功能...

    SimpleDynamo:Amazon DynamoDB 的原型

    简单发电机Amazon DynamoDB 的原型Dynamo(键值存储)的简化版,涵盖: ID 空间分区/重新分区。 基于环的路由 节点加入基于仲裁的复制 失败后从复制存储中恢复 SHA-1 哈希函数用于按词法排列环中的节点并找到要存储...

Global site tag (gtag.js) - Google Analytics