当前位置: 首页 > 科技观察

AWSDynamoDB的几个基本功能简析_0

时间:2023-03-19 18:31:55 科技观察

【.com速译】AWSDynamoDB是一个完全托管的无服务器(Serverless)类型的NoSQL数据库。本文将和大家一起探讨DynamoDB的基本功能、使用场景、计费、设置、查询、扫描等,让大家更好的在自己的应用中使用。什么是AWSDynamoDB?一般来说,DynamoDB是一个键值(key-value)和文档的数据库,基本可以做到毫秒级的响应时间。作为一个持久性数据库,它具有内置的安全性、备份和恢复等功能。在DynamoDB中,你经常听到的一个关键词是:NoSQL数据库。这表明它并没有使用关系数据库(https://aws.amazon.com/relational-database/)的传统SQL查询语言,而是设计用于将对象合并到NoSQL数据库中的公共集合中,或无模式表,以降低复杂性。这些对象将根据共同的主题组合在一起,以满足应用程序预设的共同查询条件。关键术语:?表(Table):一个可以容纳几乎无限数量条目的集合,具有二级索引。?二级索引(SecondaryIndex):使用不同的主键和排序键来复制表项。?主键(PrimaryKey):是一种特殊形式的属性,可以用来引用表项,类似于表项的ID。?排序键(SortKey):它是另一种特殊形式的属性,可用于组织不同类别的条目。?项目(Item):作为AWSDynamoDB中最基本的单位,是一种JSON形式的结构化数据属性。?属性(Attribute):是一个键值对,它包含关于数据表中一个项目的信息数据点(data-point)。?流:是对表执行状态更改操作的恒定流。?查询(Query):检索特定条目(或条目集)的操作。?扫描(Scan):用于扫描整个表或表的一部分。?过滤器(Filter):查询或扫描完成后,在将结果返回给请求者之前应用规则。如何存储数据?键值存储是一个按比例放大的分布式哈希表。该表中的项目可以通过键值对的属性来唯一标识。此属性对可用于GET、SET、UPDATE和DELETE等操作。该属性通常有两种类型:主键(如表项的ID)和排序键(可用于对表项进行排序)。哈希表众所周知的优点是无论表的大小如何,它们始终可靠、一致且快速。缺点是一次只能检索一条记录。在这方面,DynamoDB可以采取宽列存储的形式,即每一行在任何时候都会有任意数量的列。这种B树(B-tree)数据结构和二级索引不仅提供了查找表条目的选项,还允许用户执行范围查询。同时,它们可用于通过不同的主键和排序键来引用和排序表条目。此外,由于DynamoDB是无模式数据库,因此其中的条目可以具有不同的属性集。如何自动缩放?无服务器计算的最大好处之一是开发人员可以在预算内按时采用自动化方法,以确保容量不受限制。DynamoDB可以自动扩容以应对激增的需求,避免当前节流或响应速度突然下降,合理利用资源。通过使用AWSApplicationAutoScaling(应用程序自动缩放),DynamoDB允许用户对数据表采用自定义扩展策略,按需增加读写能力。通常,此类策略包括指定最小和最大预购容量单位,以及目标利用率(例如,消耗的预购吞吐量的百分比)。目标利用率与目标跟踪算法结合使用,以确保无论工作负载如何变化,吞吐量都与设定的目标相匹配。功能及使用场景DynamoDB除了数据库的基本功能外,还有其他功能包括:备份与恢复、全局存储、DynamoDB加速器(DAX)、DynamoDB流、数据传输。作为AWS的顶级服务之一,DynamoDB每天可以处理超过10tr个请求,可以支持每秒超过2000万个请求的峰值。因此,它适用于需要低延迟数据访问的任何规模的应用程序。由于非常适合HTTP和AWSIAM应用场景,DynamoDB数据库不仅可以时刻受到保护,还可以快速验证请求并安全完成各种任务,而无需复杂的网络配置(如网络分区)。初始化步骤。由于使用场景广泛,DynamoDB拥有丰富的用例。从Lyft和Airbnb这样的成长型公司到CapitalOne和Nike这样的成熟企业,DynamoDB都被用于他们的架构中。计费DynamoDB通过以下两种容量模式对目标数据表的读写操作进行计费。?On-demand这种模式是指不需要预先指定读写吞吐量,可以按需扩展。所以如果你有不可预测的数据表或流量,这是一个不错的选择。?配置容量配置允许您指定所需的每秒读取和写入次数。这里的自动缩放功能可以根据指定的利用率通过自动调整来保证高性能和预算管理。当然,这两种模式的成本根据实际使用情况也会有巨大的差异,所以我们需要提前做出相应的预估。具体而言,对于按需模式,DynamoDB将按百万单位收费;对于预购模型,DynamoDB将按小时收费。值得一提的是:ReservedCapacity作为预购模式的附加项,不仅可以节省成本,而且通过支付一次性的预付费用,可以保证在预留容量期限内按小时支付的最低吞吐量水平。花费。但是,任何未使用的容量都不会滚动到下个月。读取和写入请求的计费在写入端,DynamoDB将每个写入请求计为一个单元(最多1KB),并将每个事务性写入计为两个写入请求单元。在读取端,DynamoDB将每个强一致性读取请求计为一个单元(最多4KB),每个事务性读取计为两个读取请求单元,每个最终一致性读取只计为一半的读取请求单元。AWS免费套餐在AWS免费套餐中,DynamoDB可以提供以下“好处”。当然,它们中的每一个都按月、区域和帐户计费。?预购容量为25个WCU和25个RCU。?25GB的数据存储,之后按每GB每月收费。?25个rWCU可用于在两个AWS区域部署全局表。?250万个流式读取请求源自DynamoDBStreams。?1GB的数据输出(前12个月为15GB),可以跨AWS服务聚合。如何在DynamoDB表上省钱?“按需”模式灵活自主,但成本高达“按需”模式的七倍。相比之下,使用预获取模型将不可避免地给开发人员带来更多的容量估算任务,并且可扩展性可能更差。以下是关于如何为您的应用程序选择正确的模式以及如何优化您的数据表的三个建议:1.自动扩展需要基准测试并且难以适应快速变化的需求。因此,用户需要在尽可能靠近系统的分布式环境中运行测试,以确保自动化伸缩能够满足真正的业务需求。2.对于按需读取密集型数据表,DAX是基于使用的经济选择。小型DAX实例(如:t2.medium)的成本与“按需”模式下200M以上的读操作基本相同。也就是说,“按需”模式只有在高吞吐量的情况下才会显示节省。3.对于那些写入密集型工作负载,SQS是管理高吞吐量和不可预测的流量峰值的理想选择。各种消息由将数据写入DynamoDB的Lambda函数轮询。数据库使用节流来更好地分配容量,从而充分利用“预购”容量模型。如何设置AWSDynamoDB总的来说,设置DynamoDB并不困难。下面,我们将展示如何使用AWS免费套餐中的各种参数和功能。创建NoSQL表1.单击DynamoDB控制台上的创建表。2.自定义表格名称。3.将主键或分区键(PartitionKey)应用于跨分区的分布式数据,实现可伸缩性。由此,您可以在不同的访问模式之间平均分配一个范围的值。4、由于sortkey只能对以上数据进行排序,所以需要对表进行数据挖掘。5.要启用“AutoScale”功能,请取消选中“DefaultSettings”框以自动创建一个名为DynamoDBAutoScaleRole的AWSIAM角色来管理自动扩展过程。6、最后请将界面滑到最下方,点击“创建”。添加数据1.在项目选项卡上,单击创建项目。2、为每个数据表项添加主键和排序键的相关数据,每次点击“保存”。DynamoDBstreamDynamoDBstream可以在数据发生变化的时间点捕获表的变化,然后将这些变化存储在日志中,保存24小时。我们可以将变化的表项的主键属性实时写成流式记录,保证变化的时序性。此外,我们还可以配置它来捕获变化前后的状态等其他数据。这些流式记录可以被其他应用程序使用,例如:?聚合来自多个操作的指标,例如:记录某个社交平台在某一时间段内的一次“赞”数。?当客户向DynamoDB表中添加数据时,会触发一封电子邮件以确认输入数据的正确性。?在移动应用程序的数据表中,数据往往每分钟变化数千次。这需要另一个应用程序来存储更改的详细信息,以便提供实时指标,如“参与度”。此外,值得注意的是,尽管AWSDynamoDB和DynamoDBStream使用不同的端点,但两者必须属于同一区域。DynamoDB查询您可以根据主键查询表中的一个或一组条目,并快速检索它们。查询数据表的操作步骤如下:1、在“表项”选项卡的下拉框中选择“查询”。2、在主键或排序键的搜索框中输入关键字,根据需要进行搜索。DynamoDB扫描DynamoDB扫描可以通过读取数据表或二级索引中的每个条目来返回结果集。使用排序键,您还可以决定扫描的顺序。此外,过滤器表达式可用于确定要从扫描中返回的条目。当然,扫描可能会影响应用程序的整体性能,所以除非你真的需要扫描每个表条目,否则请改用DynamoDB查询。原标题:AWSDynamoDB终极指南,作者:TaaviRehem?gi