Dynamo介绍

一、介绍

1、简介

Amazon DynamoDB 是由 AWS 提供的一种完全托管的 NoSQL 数据库服务,适用于高性能、可扩展的应用程序。它设计用于处理大规模的数据存储和高速数据访问,广泛应用于需要低延迟、高吞吐量的场景,如移动应用、电商、游戏后端、IoT(物联网)和社交媒体等。此外还可以使用 AWS 管理控制台来监控资源使用情况和各种性能指标。

2、特点
  • 高可扩展性: DynamoDB 能够自动扩展以处理大规模的数据和高并发的请求。它通过分区技术在多个服务器上自动分配数据,确保随着数据增长,性能不会下降。

  • 低延迟和高吞吐量: DynamoDB 提供毫秒级响应时间,支持数百万请求每秒,适用于需要低延迟和高并发的场景。

  • 完全托管: 用户无需管理硬件、数据库的安装、配置和维护等,AWS 会自动管理 DynamoDB 实例的运行、扩展、备份和恢复。

  • 无服务器架构: DynamoDB 支持无服务器(Serverless)模式,意味着用户不需要管理服务器的数量或规模,可以根据需要自动调整容量。

  • 多区域复制: DynamoDB 支持跨多个 AWS 区域复制,确保数据高可用和灾难恢复能力。

  • 灵活的数据模型: DynamoDB 是一个键值和文档存储数据库,可以根据业务需求选择适当的模式。它支持单表设计,并通过索引和查询操作提高数据检索的效率。

  • 强一致性与最终一致性: DynamoDB 支持强一致性读取和最终一致性读取两种模式。强一致性读取返回的结果是最新的,而最终一致性读取可能会稍微滞后,但可以提高吞吐量。

3、使用 DynamoDB 的场景

(1)高并发应用:如社交媒体平台、移动应用后端、实时分析等。

(2)快速增长的应用:如物联网设备数据存储、电商网站用户行为跟踪等。

(3)需要低延迟的应用:如金融服务、广告实时竞价系统、游戏排行榜等。

4、主要优点
  • 管理简单:无需手动配置数据库实例或进行硬件扩展,AWS 负责底层管理。
  • 高可用性:自动跨多个区域复制数据,避免单点故障。
  • 灵活扩展:支持处理大规模流量,适应需求变化。
5、主要限制
  • 查询功能有限:相比关系型数据库,DynamoDB 在复杂查询和联接操作上的能力有限。通常需要依赖设计好的索引和查询模式。
  • 成本:根据表的规模和访问模式,DynamoDB 的费用可能会根据读取、写入、存储和索引等项产生较高费用,特别是大规模操作时需要注意成本控制。
6、官方文档

DynamoDB 入门 - Amazon DynamoDB

7、aws dynamo

dynamo是aws完全托管的,无需安装任何服务,即可直接在aws控制台上操作dynamo。

(1)建表删表

点击create table即可建表;选中表后点击Delete即可删除表

(2) 查看表

(3)查看数据

先在Tables中选择表,之前点击Explore items,即可查看该表的数据

8、dynamo local

为了方便开发和测试,Amazon还提供了DynamoDB Local,这是一种轻量级的版本,不依赖远程aws,可以在本地机器上运行,所以需要手动下载和安装。

二、关键概念

1、表(Table)

DynamoDB中的数据是存储在表中的。每个表都需要一个主键来唯一标识记录。主键由两个部分组成:

(1)分区键(Partition Key):表中的每个项目都有一个分区键,决定了数据存储的位置。

(2)复合主键(Partition Key + Sort Key):允许对数据进行排序的键,复合主键使得每个分区可以存储多个项目。

2、项目(Item)

表中的一条记录是一个项目,类似于传统数据库中的一行。项目由多个属性(字段)组成。

3、属性(Attribute)

 每个项目都有一个或多个属性,类似于数据库中的列。属性的类型可以是基本数据类型,如字符串、数字、布尔值,也可以是嵌套的数据结构,如列表和映射。

4、主键

在 Amazon DynamoDB 中,每个表必须有主键 (Primary Key),这也是 DynamoDB 表结构的核心要求。主键用于唯一标识表中的每个项目,并决定如何将数据分布到不同的分区。主键由两种类型组成:分区键 (Partition Key,也叫Hash Key) 和 排序键 (Sort Key,也叫Range Key)。这两者可以用来定义数据的存储方式。

(1)Partition Key /Hash Key

是 DynamoDB 主键的一部分,负责将数据分布到不同的物理分区。根据分区键的值,DynamoDB 会使用哈希函数计算分区存储位置。如果你只定义了分区键,则数据表的主键是 单一分区键。每个分区键值都对应一个分区,其中存储着该键值下的所有数据项。

使用排序键,你可以执行类似范围查询、排序查询等操作。例如,你可以查找某个分区键值下,所有排序键在某个范围内的数据项。

 如在一个订单表中,UserId 可以作为分区键,而OrderDate 作为排序键。这样可以让同一个用户(分区键相同)拥有多个订单(排序键不相同)。

(2)Range Key / Sort Key

是可选的,用来进一步细分存储在同一分区下的项目。它允许在同一个分区键值下存储多项数据,并按照排序键的值进行排序。

DynamoDB 主键类型总结

单分区键:只有一个分区键,适用于数据量较小的情况(可以确保唯一性)。

分区键 + 排序键组合:一个分区键+一个排序键,注意排序键也最多只能有一个。适用于数据量较大、需要按排序键进行操作的情况。

5、流(Streams)

 DynamoDB Streams 可以记录表的数据变更,支持应用程序监听这些变更并执行相应操作。

6、容量单位(Capacity Units)

 DynamoDB 的吞吐量是基于容量单位来计算的。用户可以选择按预置容量模式(Provisioned Mode)或者按需容量模式(On-Demand Mode)计费:

(1)预置容量模式:事先设定表的吞吐量(读取和写入请求),适合预测负载的应用。

(2)按需容量模式:DynamoDB 根据实际负载动态调整吞吐量,适合负载波动较大的应用。

7、自动备份和恢复

DynamoDB 提供了自动备份、点-in-time 恢复(PITR),确保数据的持久性和恢复能力。

三、数据类型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

w_t_y_y

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值