首页 > 数据库 > > 什么是DynamoDB?
DynamoDB 是一个你什么也不用管的 NoSql 数据库。记得给 AWS付账单就可以。
在2004年的时候, Amazon 发现 Oracle 数据库都不够用了。为了还能继续做生意。 AWS设计了一个 Key-Vale 存储系统。以希望能达到以下目的:高性能,可扩展性,可靠性。
DynamoDB是分布式数据库,设计成用来解决数据库管理、性能、可扩展性和可靠性等核心问题。开发人员可以创建一个数据库表,该表可以存储和检索任何数量的数据。
DynamoDB 用起来很简单,因为它的功能很简单,你想一个 Key-value 能什么花头可以搞的, 以至于你感觉它基本上没用处。 特别是你发现市场上 kev-value 的数据库已经多的性况下。如果你非要说好,也怕只有:你开箱就用,不需要自己去维护什么。要记得给钱。
Dynamodb 会说你在最开始做产品的开发的的时候,要用户没用户,要功能没功能,所以关系型数据库不合适,因为你不知道有什么 schema。 但是 DynamoDB 对你可能更没有用。因为根据它的文档:你只能对你的产品需求很熟悉的时候,你才能设计好表的 Partion key和Sort key, 以及 primary key。 从这个角度来说,还不如 MySQL。
Amazon DynamoDB 是一种完全托管的 NoSQL 数据库服务,提供快速而可预测的性能,能够实现无缝扩展。DynamoDB 可以从表中自动删除过期的项,从而帮助您降低存储用量,减少用于存储不相关数据的成本。
在DynamoDB中核心组件是表、项目和属性。表是项目的集合,项目是属性的集合,DynamoDB使用主键来标识表中的每个项目,还提供了二级索引来提供更大的查询灵活性,还可以使用DynamoDB流来捕获DynamoDB表中的数据修改事件。


Music表示例


创建表时除了指定表名外还必须指定表的主键,主键用于唯一标识表中的每一个项目,任意两个项目的主键都不能相同。
DynamoDB支持两种类型的主键:
可以在表上建立一个或多个二级索引,利用二级索引,除了可以用主键进行查询外,还可以使用替代键查询表中的数据。
DynamoDB支持两种索引:
每个表最多可以定义5个全局二级索引和5个本地二级索引。
前面的Music示例表中可以按Artist(分区键)或按Artist和SongTitle(分区键和排序键)进行数据查询。若要按Genre和AlbumTitle查询数据要该怎么做?
这时我们可以在Genre和AlbumTitle上创建一个二级索引,然后通过相同的方式查询索引。
下面的Music示例表包含了一个名为GenreAlbumTitle的新索引,索引中Genre是分区键,AlbumTitle是排序键。

DynamoDB流是一项可选功能,它用于捕获DynamoDB表中的数据修改事件。有关这些事件的数据将按事件发生的顺序近乎实时的出现在流中。
每个事件由一条流记录表示,若对表启用了流,每当以下事件之一 发生时,DynamoDB流都会写入一条流记录:
DynamoDB流可以和AWS Lambda结合使用以创建触发器,即在流中有你感兴趣的事件出现时自动执行Lambda中的代码。
例如,假设有一个包含某公司客户信息的 Customers 表。假设你希望向每位新客户发送一封“欢迎”电子邮件。你可对该表启用一个流,然后将该流与 Lambda 函数关联。Lambda 函数将在有新项目添加到Customers表的流记录发生时执行。若该新项目有EmailAddress属性,Lambda 函数将调用 Amazon Simple Email Service (Amazon SES) 以向该地址发送电子邮件。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70000523/viewspace-3138562/ ,如需转载,请注明出处,否则将追究法律责任。