freeCodeCamp/guide/chinese/cloud-development/amazon-aws/dynamodb/index.md

33 lines
2.9 KiB
Markdown
Raw Normal View History

---
title: Amazon DynamoDB
localeTitle: 亚马逊DynamoDB
--- ## 亚马逊DynamoDB
Amazon DynamoDB是Amazon Web ServicesAWS提供的一项服务提供完全托管的NoSQL数据库。它的主要特征是根据所需的工作量无限扩展的能力。它是完全托管的用户无需担心底层基础架构例如如何根据工作负载进行扩展或缩小。它支持键值和基于文档的存储。
DynamoDB服务的基本组件是
* **表** DynamoDB将数据存储在表中类似于关系数据库。主要区别在于它是无模式的从创建之初就没有固定的结构。
* **项目** :项目是存储在表格中的数据,表格可以具有不确定数量的项目。与关系数据库相比,项目将是表格中的一行。
* **属性** 项具有属性类似于关系数据库中的列。但是由于DynamoDB是无模式的因此项目不需要具有相同的属性。此外属性可以是单个值也可以是类似JSON的文档其他字段也可以查询。
尽管DynamoDB不需要其表的固定结构但它确实需要表中每个项的主键。与关系数据库一样主键必须是唯一的。主键可以是简单的或组合的。简单主键仅由分区键组成。反过来组合主键由分区键和排序键组成。在简单主键中分区键必须是唯一的而在组合键中分区键可以相等但排序键必须不同。
分区键和排序键的概念非常重要因为它与DynamoDB存储数据的方式有关。 DynamoDB将数据存储在分区中分区键是分区的密钥。 DynamoDB使用分区键中的值作为哈希函数的输入以了解它存储数据的位置。对于组合键具有相同分区键的所有项都存储在同一分区中但它们按排序键排序。
Amazon DynamoDB也具有高可用性。它将数据复制到区域中不同可用区域中的许多服务器。可用区域是物理上隔开安全距离的数据中心。如果一台服务器发生灾难其他服务器会将数据复制到一个安全的距离并且不受影响。
由于其易于设置和无限的扩展能力,它适用于许多用例。它最适用于不知道所需负载或突然出现峰值的情况。一些用例是用于无服务器应用程序,微服务,移动后端,游戏,物联网等的数据存储。
### 资源:
* [关键价值数据库](https://guide.freecodecamp.org/computer-science/databases/key-value-databases)
* [关系数据库](https://guide.freecodecamp.org/computer-science/databases/relational-databases)
### 更多信息:
* “什么是Amazon DynamoDB”来自[AWS DynamoDB文档](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html?shortFooter=true)
* [AWS DynamoDB文档中的](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.CoreComponents.html?shortFooter=true) “DynamoDB核心组件”