AWS DynamoDB入门介绍

摘要:本文基于AWS官方文档和各方资料,整理了一些针对有一定经验的RDS程序员可能感兴趣的信息,旨在通过本文可以达到基本上手的程度。对于有一定经验的开发者来说,DynamoDB的一些操作和MongoDB的区别并不大,本文不再赘述,只重点写出一些不一样或值得注意的地方。

建议配合AWS官方文档阅读。

重要特征速览:DynamoDB中的各种操作都可以看做http(s)请求,请求中包括了操作的具体内容和需要的变量。http请求发出后,DynamoDB立刻执行这些请求。

DynamoDB最主要的特征来源于2007年的一篇论文:https://www.allthingsdistributed.com/files/amazon-dynamo-sosp2007.pdf,DynamoDB将consistent hashing的概念引入现实的数据库中,这为其带来了高可用,高弹性的特点,也为实际应用带来了新的变化。

DynamoDB的主键与我们熟悉的MySQL有很大的不同。DynamoDB的主键支持两种:(a):分区键;(b):分区键和排序键。其中,必须包括一个分区键。由前文我们知道,consistent hashing是DynamoDB的基础,这也决定了分区键必不可少。分区键是DynamoDB做hash的基础,它必须为一个值,只允许字符串、数字和二进制类型。排序键是经过分区后的一“块”数据排序的依据。

除了以上的特点,DynamoDB作为一种NoSQL,还具有NoSQL的基本特征,比如不支持表连接,灵活的schema等。

下面是具体的操作

读取数据:

注意: 利用关系数据库,您可以使用  SELECT  语句联接多个表中的数据并返回结果。联接是关系模型的基础。要确保联接高效执行,应持续优化数据库及其应用程序的性能。DynamoDB 是一个非关系 NoSQL 数据库且 不支持表联接。相反,应用程序一次从一个表中读取数据。
GetItem按照项目的主键检索,HASH和RANGE的key都要包括。
如果您将现有应用程序从关系数据库迁移到 DynamoDB,则需要非规范化数据模型以消除联接需要。
可以将 Query 用于任何具有复合主键 (分区键和排序键) 的表。您必须指定分区键的相等条件,并且可以选择性为排序键提供另一个条件。
Query方法:
Query方法是效率比较高的方法,用于主键或者索引。在使用Query方法时必须注意,必须有分区键相等的条件,否则DynamoDB将无法hash映射到数据所在的“块”,自然无法高效率地命中数据。
在 DynamoDB 中,您必须使用 ExpressionAttributeValues 作为表达式参数。 (如,KeyConditionExpression 和 FilterExpression) 中的占位符。这类似于在关系数据库中使用绑定变量,其中,您在运行时将实际值代入 SELECT 语句。
"Artist = :a and begins_with(SongTitle, :t)
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值