

# 适用于 DynamoDB 的备忘单
<a name="CheatSheet"></a>

本备忘单提供有关使用 Amazon DynamoDB 及其各种 AWS SDK 的快速参考。

## 初始设置
<a name="CheatSheet.InitialSetup"></a>

1. [注册 AWS](SettingUp.DynamoWebService.html#SettingUp.DynamoWebService.SignUpForAWS)。

1. [获取 AWS 访问密钥](SettingUp.DynamoWebService.html#SettingUp.DynamoWebService.GetCredentials)以编程方式访问 DynamoDB。

1. [配置您的 DynamoDB 凭证](SettingUp.DynamoWebService.html#SettingUp.DynamoWebService.ConfigureCredentials)。

**另请参见：**
+ [设置 DynamoDB（Web 服务）](SettingUp.DynamoWebService.html)
+ [DynamoDB 入门](GettingStartedDynamoDB.html)
+ [核心组件的基本概述](HowItWorks.CoreComponents.html)

 

## SDK 或 CLI
<a name="CheatSheet.Platform"></a>

选择您的首选 [SDK](sdk-general-information-section.html)，或设置 [AWS CLI](/cli/latest/index.html)。

**注意**  
在 Windows 上使用 AWS CLI 时，引号之外的反斜杠 (\$1) 被视为回车。另外，您必须转义其他引号内的任何引号和大括号。有关示例，请参阅下一节中“创建表”中的 **Windows** 选项卡。

**另请参见：**
+ [AWS CLIDynamoDB 中的](Tools.CLI.html) 
+ [DynamoDB 入门 - 第 2 步](getting-started-step-2.html)

## 基本操作
<a name="CheatSheet.BasicActions"></a>

本节提供基本 DynamoDB 任务的代码。有关这些任务的更多信息，请参阅 [DynamoDB 入门和 AWS SDK](GettingStarted.html)。

### 创建表
<a name="CheatSheet.BasicActions.CreateTable"></a>

------
#### [ Default ]

```
aws dynamodb create-table \
    --table-name Music \
    --attribute-definitions \
        AttributeName=Artist,AttributeType=S \
        AttributeName=SongTitle,AttributeType=S \
    --key-schema AttributeName=Artist,KeyType=HASH AttributeName=SongTitle,KeyType=RANGE \
    --billing-mode PAY_PER_REQUEST \
    --table-class STANDARD
```

------
#### [ Windows ]

```
aws dynamodb create-table ^
    --table-name Music ^
    --attribute-definitions ^
        AttributeName=Artist,AttributeType=S ^
        AttributeName=SongTitle,AttributeType=S ^
    --key-schema AttributeName=Artist,KeyType=HASH AttributeName=SongTitle,KeyType=RANGE ^
    --billing-mode PAY_PER_REQUEST ^
    --table-class STANDARD
```

------

### 在表中写入项目
<a name="CheatSheet.BasicActions.WriteItem"></a>

```
aws dynamodb put-item \ --table-name Music \ --item file://item.json
```

### 从表中读取项目
<a name="CheatSheet.BasicActions.ReadItem"></a>

```
aws dynamodb get-item \ --table-name Music \ --item file://item.json
```

### 从表中删除项目
<a name="CheatSheet.BasicActions.DeleteItem"></a>

```
aws dynamodb delete-item --table-name Music --key file://key.json
```

### 查询表
<a name="CheatSheet.BasicActions.QueryTable"></a>

```
aws dynamodb query --table-name Music 
--key-condition-expression "ArtistName=:Artist and SongName=:Songtitle"
```

### 删除表
<a name="CheatSheet.BasicActions.DeleteTable"></a>

```
aws dynamodb delete-table --table-name Music
```

### 列出表名
<a name="CheatSheet.BasicActions.ListTableNames"></a>

```
aws dynamodb list-tables
```

## 命名规则
<a name="CheatSheet.NamingRules"></a>
+ 所有名称都必须使用 UTF-8 进行编码，并且区分大小写。
+ 表名称和索引名称的长度必须介于 3 到 255 个字符之间，而且只能包含以下字符：
  + `a-z`
  + `A-Z`
  + `0-9`
  + `_`（下划线）
  + `-`（连字符）
  + `.`（圆点）
+ 属性名称的长度必须至少为 1 个字符，但大小小于 64KB。

有关更多信息，请参阅[命名规则](HowItWorks.NamingRulesDataTypes.html)。

## 服务配额基础知识
<a name="CheatSheet.ServiceBasics"></a>

**读取和写入单位**
+ **读取容量单位 (RCU)** – 对于 4KB 及以下数据量的项目，每秒一次强一致性读取，或每秒两次最终一致性读取。
+ **写入容量单位 (WCU)** – 对于 1KB 及以下数据量的项目，每秒一次写入。

**表限制**
+ **表限制** – 表的大小实际上没有限制。表的项目数和字节数是无限制的。
+ **表数** – 对于任何 AWS 账户，每个 AWS 区域的初始配额为 2,500 个表。
+ **查询和扫描的页面大小限制** – 每个查询或扫描的每页大小限制为 1MB。如果您在一个表上的查询参数或扫描操作产生的数据超过 1MB，DynamoDB 将返回初始匹配项。它还返回一个 `LastEvaluatedKey` 属性，可用于阅读下一页的新请求中。

**索引**
+ **本地二级索引 (LSI)** - 您最多可以定义五个本地二级索引。当索引必须与基表存在强一致性时，LSI 相当有用。
+ **全局二级索引 (GSI)** – 每个表默认具有 20 个全局二级索引配额。
+ **每个表的投影二级索引属性** – 您最多可将总共 100 个属性投影到一个表的所有本地和全局二级索引，此限制只适用于用户指定的投影属性。

**分区键**
+ 分区键值的最小长度为 1 个字节，最大长度为 2048 个字节。
+ 表和二级索引的不同分区键值的数量没有实际限制。
+ 排序键值的最小长度为 1 个字节。最大长度为 1024 个字节。
+ 一般情况下，每个分区键值的不同排序键值的数量没有实际限制。具有二级索引的表则例外。

有关二级索引、分区键设计和排序键设计的更多信息，请参阅[最佳实践](best-practices.html)。

**常用数据类型的限制**
+ **字符串** – 字符串的长度受到项目大小最多为 400KB 的约束。字符串是使用 UTF-8 二进制编码的 Unicode。
+ **数值** – 数值可具有最多 38 位精度，并且可以是正数、负数或零。
+ **二进制** – 二进制的长度受到项目大小最多为 400KB 的约束。使用二进制属性的应用程序必须先用 Base64 格式对数据进行编码，然后才能将数据发送至 DynamoDB。

有关受支持的数据类型的完整列表，请参阅[数据类型](HowItWorks.NamingRulesDataTypes.html#HowItWorks.DataTypes)。有关更多信息，请参阅[服务配额](ServiceQuotas.html#limits-items)。

### 项目、属性和表达式参数
<a name="CheatSheet.ServiceBasics.Misc"></a>

DynamoDB 中的项目大小最多为 400KB，包括属性名称二进制长度加上属性值二进制长度，二者均为 UTF-8 长度。属性名称也包含在此大小限制之内。

列表、映射或集中值的数量没有限制，只要包含值的项目大小不超过 400KB 的限制即可。

关于表达式参数，任何表达式字符串的最大长度为 4KB。

有关项目大小、属性和表达式参数的更多信息，请参阅[服务配额](ServiceQuotas.html#limits-items)。

## 更多信息
<a name="CheatSheet.FurtherInfo"></a>
+ [安全性](security.html)。
+ [监控和日志记录](monitoring.html)
+ [处理流](streamsmain.html)
+ [备份](Backup-and-Restore.html)和[时间点故障恢复](Point-in-time-recovery.html)
+ [与其他 AWS 服务集成](OtherServices.html) 
+ [API 参考](/amazondynamodb/latest/APIReference/Welcome.html)
+ [架构中心：数据库最佳实践](https://aws.amazon.com/architecture/databases/)
+ [教程视频](https://youtu.be/Mw8wCj0gkRc)
+ [DynamoDB 论坛](https://repost.aws/search/questions?globalSearch=dynamodb)